分叉(Fork)
区块链的分叉指的是区块链网络中由于协议升级或社区意见分歧,导致区块链历史产生分裂的现象。
分叉可以分为临时的、永久的、可逆的或不可逆的。最常见的分叉类型有软分叉(Soft Fork)和硬分叉(Hard Fork),它们分别有不同的技术特点和社区影响。
一、形成原因
- 挖矿时两个节点差不多同时挖出矿,都会发布区块(对比特币系统当前状态产生分歧导致的分叉——state fork);
- 分叉攻击,同样也会导致分叉(forking attack,人为故意造成);
- 比特币协议改变,在分布式系统中不能保证所有节点同时升级软件,假设存在少数节点未升级,导致出现分叉(protocal fork);
二、硬分叉
硬分叉是对区块链协议的不向后兼容的升级。在硬分叉发生后,旧的节点无法识别并接受新的区块。因此,网络可能会分裂为两个不同的链,分别遵循不同的规则。
- 过程:硬分叉通常涉及到两个不同版本的区块链软件。如果只有一部分矿工和节点接受新的规则,网络会分裂为两条链,形成两个独立的区块链。这两条链从分叉点之前拥有相同的历史记录,但从分叉点之后,链条内容各不相同。
- 实例:
- 比特币现金(Bitcoin Cash, BCH):2017 年,由于比特币社区关于如何提升网络扩展性的意见分歧,一部分社区选择增加区块大小,最终比特币现金通过硬分叉从比特币网络中分离出来。
- 比特币现金(Bitcoin Cash, BCH):2017 年,由于比特币社区关于如何提升网络扩展性的意见分歧,一部分社区选择增加区块大小,最终比特币现金通过硬分叉从比特币网络中分离出来。
- 以太坊和以太坊经典(Ethereum vs Ethereum Classic):2016 年,以太坊的一个智能合约平台 The DAO 被黑客攻击,导致资金损失。为了解决问题,社区选择通过硬分叉逆转被盗的交易记录,但一部分人认为区块链数据不应被修改,进而形成了以太坊经典(Ethereum Classic)。
三、软分叉 (soft fork)
软分叉是向后兼容的协议升级,意味着即使部分节点没有升级到新规则,它们仍然可以继续参与网络,并遵守老的共识规则。软分叉通常只需要大多数矿工的支持,无需所有用户升级。
- 过程:软分叉通过对区块链现有规则做出限制或调整,让矿工遵守新的规则。即使某些节点没有立即升级,它们仍然可以继续参与网络,直到它们决定更新软件。