先决条件 – 区块链技术简介、区块链技术如何工作、区块链简介
公共区块链(例如比特币和以太坊)的去中心化性质意味着网络上的参与者必须能够就区块链的共享状态(共享公共账本和区块以及区块链协议)达成一致。网络节点之间的一致共识会产生一个单一的区块链,其中包含网络断言是正确的经过验证的数据(交易)。然而,很多时候,网络中的节点无法就区块链的未来状态达成一致的共识。此事件导致分叉(如实验科学中使用的音叉),这意味着理想的“单个”区块链被拆分为两个或多个均有效的链。
根据区块链协议的向后兼容性和挖掘新块的时间,这会产生三种类型的分叉。这些类型如下:
- 软分叉:当区块链协议以向后兼容的方式改变时
- 硬分叉:当区块链协议以非向后兼容的方式改变时
- 临时分叉:当两个矿工同时挖掘一个新区块时
现在,是时候深入挖掘了!
- 软分叉 –
当在软件中的变化,所述节点(更好称为“满节点”)以函数网络参与者上运行时,所述变化是这样的,开采的新规则的基础上,新的块(在Blockchain协议)旧版本的软件也认为有效。此功能也称为向后兼容性。例子:
比特币网络的 SegWit 更新添加了一类新的地址 (Bech32)。然而,这并没有使现有的 P2SH 地址无效。具有 P2SH 类型地址的完整节点可以与 Bech32 类型地址的节点进行有效交易。 - 硬分叉 –
当有在函数网络参与者的全部节点上运行的软件的变化,这种变化是这样的,开采的新规则的基础(在Blockchain协议)的新块不被老版本视为有效的软件。当硬分叉发生时,新货币就会出现(具有有效的原始货币),就像以太坊(原始:以太坊,新:以太坊经典)和比特币(原始:比特币,新:比特币现金)一样。等量的货币分配给选择升级其软件的全节点,以免发生物质损失。这种硬分叉通常是有争议的(在社区中产生冲突)。加入特定链的最终决定取决于完整节点。如果选择加入新链,则必须升级软件以使较新的交易有效,而未选择升级其软件的节点继续工作。
例子:
以太坊区块链中的新 Casper 更新,其中共识协议将从一种工作量证明 (PoS) 更改为一种权益证明 (PoS)。安装 Casper 更新的节点将使用新的共识协议。不选择安装 Casper 更新的完整节点将与安装的完整节点不兼容。 - 临时叉 / 意外叉 –
当多个矿工几乎同时挖掘一个新区块时,整个网络可能不会就新区块的选择达成一致。有些人可以接受一方挖掘的区块,从那时起导致不同的区块链,而其他人可以就其他可用的(区块)替代方案达成一致。出现这种情况是因为信息在整个区块链网络中传播需要一些有限的时间,因此关于事件的时间顺序可能存在相互矛盾的意见。在这个分叉中,两个或多个区块具有相同的区块高度。临时分叉最终会在其中一个链消亡(变得孤立)时自行解决,因为大多数完整节点选择另一条链添加新块并与之同步。
例子:
临时分叉经常发生,触发此分叉的常见事件是由多个方几乎同时挖掘一个区块。
发生区块链分叉的原因——
- 添加新功能:
区块链代码定期升级。由于大多数公共区块链是开源的,它是由来自世界各地的人们开发的。在适当的时候,改进、问题被创建、解决并发布新版本。 - 修复安全问题:
与传统货币(纸币、硬币、支票)相比,区块链(以及其上的加密货币)是一项相对较新的技术,研究仍在进行中以充分了解它。因此,版本被颠簸并发布更新以修复在此过程中出现的安全问题。 - 反向交易:
如果发现它们被破坏和恶意,社区实际上可以使特定时期的所有交易无效。