This article is a rewrite in English of one written in October 2017.
Forking is all the rage these days. The word "fork" means "permanent split" in the crypto world. We thought Bitcoin activated SegWit with a soft fork, Bitcoin Cash hard forked to create BCH, and a Bitcoin Gold hard fork is coming this month.
It's not just Bitcoin that is forking; all coins are forking; Ethereum also had a hard fork this month for a version update. It is Byzantium, the first half of the codename Metropolis (Ethereum has a cool name for every update).
Even if we speak of forks in one word, a Bitcoin Cash hard fork and an Ethereum hard fork are different in quality. Likewise, the soft fork of SegWit and the hard fork of SegWit2X are also different. I will not discuss the details of the individual forks in this article, but the fact is that there are many different forks.
I would like to briefly explain the difference between a soft fork and a hard fork in this article.
Many people may think that a soft fork is somehow preferable to a hard fork, especially in the context of Bitcoin, and that, therefore, a hard fork is dangerous. It is not wrong to be wary of hard forks because hard forks have potential network fragmentation. However, we cannot say soft forks are safe because they are "soft" and hard forks are dangerous because they are "hard."
Nor is hard or soft fork determined by subjective criteria such as "the scope of specification changes is wide" or "there are radical design changes."
We will now play the Word Chain Game. These rules correspond to the protocols (=rules) in the blockchain.
Rule #1 Only words that describe animals can be used.
Three judges(a), (b), (c) are prepared to confirm that the participants in the game are following the rules. These judges correspond to the nodes that verify transactions.
Word Chain flows according to rule #1 Gorilla -> Ant -> Tiger -> Rabbit -> Tortoise -> ...
Judges (a), (b), (c) "All clear."
Now change the rule to rule #2.
Rule #2 Only words that describe mammals can be used. This rule is valid after "Tortoise."
Note that Rule #2 is a stricter version of Rule 1. If you follow rule #2, you automatically follow rule #1. This is a soft fork.
The flow according to rule #2 Gorilla -> Ant -> Tiger -> Rabbit -> Tortoise -> Elephant -> Tasmanian Devil -> ...
Here is the judgment by the judges. Suppose that judge (c) ignores rule #2 and continues judging under rule #1. In other words, judge (c) will make a judgment based only on rule #1, "The only words that can be used are words that describe animals. But since both Elephant and Tasmanian Devil are animals, ...
Judges (a), (b), (c) "All clear."
Again, rule #2 is a stricter version of rule #1. If you abide by rule #2, you will inevitably abide by rule #1. It is important to note that in a case where the judges (a) and (b), who have updated the rule, have determined "All clear," there is no possibility that the judge (c) will make a "Fault!" decision.
This is a soft fork.
Rule #3 Only words that describe living things can be used This rule is valid after "Tasmanian Devil"
Note that unlike the change to rule #2, adherence to rule #3 does not mean adherence to rule #1. This is because rule #3 allows game participants to use any living organism, a plant or a fungus. Easing the rule, this is the hard fork.
The flow according to rule #3 Gorilla -> Ant -> Tiger -> Rabbit -> Tortoise -> Elephant -> Tasmanian Devil -> Lavender -> Rose -> ...
Lavender and Rose are on the scene because rule #1 has been eased, and they do not have to be animals as long as they are living organisms. Suppose now that judge (c) forgets to update to rule #3 and judges based on rule #1.
Judges (a), (b) "All clear."
Judges (a) and (b) make judgments based on rule #3 (the only words that can be used are words that describe living organisms), so there is no problem with either Lavender or Rose. However
Judge (3) "Fault!"
Since judge (c) makes a judgment based on rule #1, "only words that represent animals can be used." Lavender and Rose are not animals, so they do not follow the rule. Judgments were divided among the judges. This is a network split.
As in the above example, if some judges do not switch to the new rules, judging will be split when a word that is not a problem under the new rules but would be disqualified under the old rules appears.
This potential for network fragmentation is what makes hard forks so alarming. In contrast to hard forks, soft forks are done by tightening the rules so that disqualification decision is not made solely by judges who did not tighten the rules.
Thus, while hard forks have risks, it is by no means that all hard forks are dangerous, and hard forks with consensus are relatively smooth. Some of you might remember a user-activated soft fork (UASF), which could have ended disastrously. In this area, Ethereum has devised ways to make hard forks safer by removing the incentive to stick to the old rules, such as by setting up defective bombs (a measure that sharply increases the difficulty of mining the Ethereum network).
While a difficulty bomb will not prevent the network from splitting, it will prevent accidental splits that most nodes do not intentionally support.
