“Soft Forks” and “Hard Forks”
You may have not seen the two words on the Bitcoin forums.In my random chatting with Bitcoin fans,I find many of them just forget the two words.I have met these persons time and time again who don’t understand the two words but should understand.
It is not odd.The concept “soft forks” is pretty new,which appeared in the discussion of IRC, not in BIT or other type of standard files.It is odd that even developers also defined it wrongly.
Hard forks is the situation when the Bitcoin Protocol is changed, the old nodes refuse to accept the block created by new nodes.Blocks breaking the rule will be ignored,the miners will create blocks according to their rule sets after the last block they verify.
Soft forks is when the Bitcoin Protocol is changed,the old nodes can’t be aware of the differences,they will continue to accept blocks created by new nodes.The miners may work on the blocks which they don’t fully understand or verify.
It is called “backward compatibility” by some Bitcoin core developers,which is actually not correct and may confuse some people.The definition of backward compatibility is that new version will accept the data or codes from old version,like Windows 10 can run the applications of Windows XP. Two types of forks need backward compatibility or else new nodes can’t verify blockchains from beginning.
The correct description should be “forward compatibility”,which means old version continue to accept the data or codes from new version.For example,when you save a file of Word 2013,you can still open it with Word 2011,that is the forward compatibility.
It is worth mentioning that Satoshi Nakamoto himself has not used the phrase “hard forks”.I think he has never encountered forks before.Still don’t understand soft forks? That’s right,because there is a big defect in this concept.Soft forks will never happen in a normal Bitcoin network.