我们知道,区块链分叉分为两种:硬分叉和软分叉。在解释“硬分叉”和“软分叉”这两个概念之前,先解释“向前兼容”和“向后兼容”这两个概念
向前兼容和向后兼容
向前兼容的英文为:Forwards Compatibility,Forward有“将来”的含义。因此向前兼容就是指:以前的版本支持现在版本生成的数据,现在的版本支持以后的版本数据。比如你的CD盘可以放在CD光驱播放,也可以放在DVD光驱播放。
向后兼容的英文为:Backwards Compatibility,Backward有“回头”的意思。所以向后兼容就是指现在的版本可以支持以前的版本数据。比如你的PC的DVD光驱也可以播放CD盘。
新节点和旧节点
区块链升级过程中,一部分节点会进行区块链代码升级,本文这里暂称为新节点。一部分节点不愿意进行区块链代码升级,继续运行原有的旧版本的区块链代码,本文这里暂称为旧节点。
硬分叉和软分叉
硬分叉:旧节点不能识别新节点产生的区块(旧节点没有向前兼容新节点产生的区块),导致把一条链直接分成了两条完全不同的链,一条是旧链(运行原有的旧版本的区块链代码,由旧节点运行),一条是新链(运行升级后的新版本的区块链代码,由新节点运行)。
软分叉:新旧节点并存,但是不会影响整个系统的稳定性和有效性。旧节点会兼容新节点(旧节点是向前兼容新节点产生的区块),只是新节点不兼容旧节点而已(即新节点不向后兼容旧节点产生的区块),二者依然可以共存在一条链上
这里有一篇介绍硬分叉和软分叉的好文:https://www.8btc.com/article/1