分叉(英文:fork)是一个表示区块链协议变更或更新的术语。由于区块链是一个去中心化的系统,进行更改需要大多数参与者的同意。根据这些更改如何实施以及它们是否与旧规则兼容,分叉分为两种类型:软分叉和硬分叉。
软分叉:向后兼容的更新
软分叉是协议的更新,它不破坏旧规则,只是对其进行收紧或添加新规则。未更新的节点仍然可以与网络交互,因为根据新规则创建的新区块与旧规则不冲突。
类比:语言规则的更新。
想象一下,英语中引入了一个新规则:现在“color”这个词只能写成“colour”。
- 接受新规则的人(更新的节点)会将“color”的写法视为错误。
- 继续沿用旧规则的人(旧节点)仍然能够理解那些写“colour”的人,因为这个词以前也存在。
因此,网络不会分裂。随着时间的推移,大多数参与者会转向新的、更严格的规则,并且整个网络都会接受更新。要接受软分叉,只需大多数矿工开始根据新规则创建区块即可。
比特币的例子:2017年SegWit(隔离见证)的激活就是一个软分叉。这个更新改变了交易结构,但与旧版本的软件兼容。
硬分叉:根本性改变和链分裂
硬分叉是协议的更新,它从根本上改变了规则,并且与以前的版本不兼容。根据新规则创建的区块将被旧节点拒绝,视为无效。
类比:切换到另一种语言。
想象一下,社区的一部分决定从明天起官方语言不是英语,而是西班牙语。
- 那些转向西班牙语的人(更新的节点)将无法再与那些仍然使用英语的人(旧节点)交流。
- 结果将形成两个独立的、互不兼容的群体。
如果在硬分叉之后,社区的一部分(矿工和用户)决定不接受新规则并继续支持旧版本的协议,就会发生链分裂(chain split)。结果,一种加密货币会分裂成两种,它们在分叉之前拥有共同的历史。
比特币的例子:2017年比特币现金(BCH)的创建。社区的一部分希望增加区块大小,这需要硬分叉。另一部分则反对。最终发生了分裂,新的代币BCH出现了,而原始的比特币继续存在。
对比表格
| 参数 | 软分叉(Soft Fork) | 硬分叉(Hard Fork) |
|---|---|---|
| 兼容性 | ✅ 向后兼容旧规则。 | ❌ 不兼容。 |
| 结果 | 具有更新协议的统一网络。 | 网络可能分裂成两个。 |
| 接受要求 | 需要大多数矿工的同意。 | 需要整个社区(矿工、节点、开发者、交易所)的同意。 |
| 风险 | 低。 | 高。分裂风险、混乱、价格波动。 |
理解这两种更新类型之间的区别有助于更好地了解加密行业的C-Chain,并评估对某种加密货币发展的潜在影响。