In the beginning, everyone (nodes) ran the same software, following the same consensus rules, maintaining the same chain. Later, some people (nodes) upgraded to the new version of the software, with new consensus rules, which resulted in two situations:
- The new rules for the upgrade are still recognized in the old version of the software that has not been upgraded (forward compatibility);
- The new rules for the upgrade are not recognized in the old software that has not been upgraded (not forward compatible).
前者被称为软分叉，这种分叉并不会产生两条链。因为新规则下产生的区块会被旧节点接受，所以新旧节点仍然处于同一条区块链上，对整个系统的影响也较小。就好比升级office软件后，当我们保存Word 2013文档的同时，仍然可以用Word 2010 打开原来的Word 2013的文件，这就是向前兼容。
The former is called a soft fork, and this fork does not produce two chains. Because the blocks generated under the new rules are accepted by the old nodes, the old and new nodes are still in the same blockchain and have less impact on the entire system. Just like after upgrading the office software, when we save the Word 2013 document, we can still open the original Word 2013 file with Word 2010, which is forward compatibility.
The latter is called a hard fork, and this fork produces two different chains. Because the old node will reject the block generated by the new rule, the new node and the old node will start to run on different chains. Since the old and new nodes may exist for a long time, the fork may continue for a long time.