跳过正文

9. 比特币分叉

·28 字·1 分钟
Chuck Chan
作者
Chuck Chan
分享技术、思考与生活

什么是分叉
#

比特币分叉的本质是区块链因规则变更数据一致性冲突,导致原本单一的区块链分裂成为两条甚至多条独立的链。分叉的核心原因是比特币网络中不同节点对 “交易验证规则”“区块结构” 等核心协议产生分歧,且无法达成统一共识,最终各自遵循新规则继续记账,形成并行的区块链。

软分叉与硬分叉
#

根据分叉的性质、触发方式及对网络的影响,主要分为两大类:软分叉硬分叉

硬分叉
#

hard fork 即硬分叉,是对现有协议的非向后兼容式修改,新规则与旧规则完全冲突,遵循旧规则的节点无法识别新规则的区块,最终网络会永久分裂为两条独立的链,各自拥有独立的代币、交易历史和社区。

例如,当比特币中出现协议更新,但并非所有节点都认同这个协议更新时,就会出现硬分叉。我们前面提过,每个区块的大小的上限是1MB,假设每笔交易大小占250KB,那么一个区块大概能容纳4000个交易。按照每10分钟出一个区块,那么每秒仅能写入7个交易,这跟现有的中心化的金融体系的每秒交易数量差了好几个数量级。

假设有人提议修改比特币协议,将每个区块的容量上限从1MB改成4MB,那么同意新协议的节点跟不同意的节点将会产生硬分叉。

在上图中,上限1MB的节点收到上限4MB的节点不会认同,会认为他是一个非法的区块,下面这条链永远不会认同上限4MB的区块。而上限4MB的节点收到一个上限1MB的区块会认同(因为其上限没有超过4MB),但下面的链永远不会认可上面这条链,因为其始终认为上面的链是非法的。

典型案例

  • 2017 年因 “区块大小扩容” 争议引发的硬分叉。原比特币区块大小上限为 1MB,部分社区认为这一限制导致交易拥堵,主张将区块大小提升至 8MB。由于与另一部分社区无法达成共识,支持扩容的节点和算力分裂出去,基于原比特币区块链在特定高度分叉,形成新的加密货币 BCH,原链则继续作为比特币(BTC)存在。

软分叉
#

软分叉是对现有协议的向后兼容式修改,新规则发布后,遵循旧规则的节点仍能识别和验证遵循新规则的区块,不会导致网络永久分裂

同样以上面协议变更为例子,假设现在新协议由上限1MB改成0.5MB。