区块链技术中,硬分叉(Hard Fork)和软分叉(Soft Fork)是两种不同的升级和更新网络协议的方法。它们在实现上有一些显著的区别,都会影响到区块链网络的结构和操作。
硬分叉
「硬分叉」是指规则变更后,新版网络不再与旧版网络兼容,区块链出现两个分支(平行互不影响的)。
软分叉
「软分叉」是指规则变更后,部署了新规则的节点仍能与未部署的节点互动,新版网络可与旧版兼容。
硬分叉 | 软分叉 |
---|---|
新旧区块分别遵循各自协议 | 新旧区块共享一种协议 |
新旧互不兼容 | 新旧兼容 |
实例:2016 年 DAO 硬分叉 | 实例:2017 年比特币网络 Segwit 分叉 |
情况分析
假设现在半数的网络节点想将区块容量从 2MB 扩大至 3MB。 如果将 3MB 区块发送至旧版节点,区块将被拒绝;因为旧版节点的规则明确表示,2MB 是有效区块的上限。 此时,网络协议有两种,各自使用不同的货币。 所有账户的余额从原始记录中克隆到新链;用户若在分叉前拥有20BTC,将在两条支链上各拥有一个账户,余额分别为 20BTC 和 20新 BTC。
假设原区块容量为 2MB,从现在起,半数的网络节点实行区块容量为1MB 的新限制,将过大区块视为无效。 旧版节点仍可接收或广播区块。在这种情况下,新网络可覆盖所有节点而不受规则版本的限制。 比特币的隔离见证(又称“SegWit”)是软分叉的例子之一。此次分叉巧妙地引入区块和交易的新格式。未更新的节点可以继续接收区块信息,但不参与新交易的验证。