Skip to content

分叉(Fork)

区块链的分叉指的是区块链网络中由于协议升级或社区意见分歧,导致区块链历史产生分裂的现象。

分叉可以分为临时的、永久的、可逆的或不可逆的。最常见的分叉类型有软分叉(Soft Fork)和硬分叉(Hard Fork),它们分别有不同的技术特点和社区影响。

形成原因

  • 挖矿时两个节点差不多同时挖出矿,都会发布区块(对比特币系统当前状态产生分歧导致的分叉——state fork);
  • 分叉攻击,同样也会导致分叉(forking attack,人为故意造成);
  • 比特币协议改变,在分布式系统中不能保证所有节点同时升级软件,假设存在少数节点未升级,导致出现分叉(protocal fork);

硬分叉

硬分叉是对区块链协议的不向后兼容的升级。在硬分叉发生后,旧的节点无法识别并接受新的区块。因此,网络可能会分裂为两个不同的链,分别遵循不同的规则。

  • 过程:硬分叉通常涉及到两个不同版本的区块链软件。如果只有一部分矿工和节点接受新的规则,网络会分裂为两条链,形成两个独立的区块链。这两条链从分叉点之前拥有相同的历史记录,但从分叉点之后,链条内容各不相同。
  • 实例:
    • 比特币现金(Bitcoin Cash, BCH):2017 年,由于比特币社区关于如何提升网络扩展性的意见分歧,一部分社区选择增加区块大小,最终比特币现金通过硬分叉从比特币网络中分离出来。 alt text
  • 以太坊和以太坊经典(Ethereum vs Ethereum Classic):2016 年,以太坊的一个智能合约平台 The DAO 被黑客攻击,导致资金损失。为了解决问题,社区选择通过硬分叉逆转被盗的交易记录,但一部分人认为区块链数据不应被修改,进而形成了以太坊经典(Ethereum Classic)。

软分叉 (soft fork)

软分叉是向后兼容的协议升级,意味着即使部分节点没有升级到新规则,它们仍然可以继续参与网络,并遵守老的共识规则。软分叉通常只需要大多数矿工的支持,无需所有用户升级。

  • 过程:软分叉通过对区块链现有规则做出限制或调整,让矿工遵守新的规则。即使某些节点没有立即升级,它们仍然可以继续参与网络,直到它们决定更新软件。

总结

soft fork

特点:只要系统中拥有半数以上算力节点更新软件,系统就不会产生永久性分叉

hard fork

特点:必须系统中所有节点更新软件,系统才不会产生永久性分叉

参考

北京大学肖臻老师《区块链技术与应用》

君子慎独