区块链分叉

2025年4月9日 | 阅读 6 分钟

链上的成员需要愿意就区块链的共同状态达成一致,其中包括共同的公共账本、区块和区块链协议。这是因为以太坊和比特币等公共区块链是无状态的。当网络中的所有节点达成一致共识时,就会创建一个包含已确认交易的单一区块链——网络认为这些交易是准确的。然而,网络节点常常无法就区块链的未来状态达成一致。这导致了分叉,分叉被定义为原本“完美”的区块链分裂成两个或多个合法网络的那一刻(就像实验探究中使用的音叉一样)。

区块链分叉

简单来说,区块链中的分叉是指复制和修改代码以生成新软件或产品的行为。分叉在开源项目中非常常用且普遍。由于以太坊和比特币等加密货币是开源且去中心化的,任何人都可以参与。由于它们是开源的,其社区有助于提高软件的安全性与可靠性。此外,通过利用分叉来使用户界面更具美观性和动态性,开源有助于其用户群的全球增长。由于此类操作没有版权保护,任何人都可以查看、修改和调整开源代码。

举例来说,开源的 Tor 浏览器运行在 Linux 上,而 Linux 是最流行的 操作系统之一。与比特币和以太坊协议一样,该操作系统也以开源 软件的形式提供。

区块链分叉类型

分叉大致可分为两大类:实时区块链分叉和代码库分叉。实时区块链分叉随后又分为两种:有意分叉和意外分叉,有意分叉进一步分为两种:软分叉和硬分叉。

实时区块链分叉

当一个正在运行的区块链被分裂成两半或两个方向时,就会发生实时区块链分叉。因此,在实时区块链中,软件在给定页面上是相同的,并且链从该点开始分裂成两个段。鉴于此,实时区块链分叉的发生可能有两个原因:

有意分叉:在有意分叉中,软件的源代码被故意修改,从而允许修改区块链的规则。这会导致两种不同类型的分割,具体取决于最后一个区块被开采的时间,以及区块链协议是否向后兼容。因此,有意分叉有两种类型:

  • 软分叉:软分叉是对区块链协议的更改,但仍与旧版本兼容。在为软分叉添加新规则时,通常会确保它们与现有规则不冲突。这表明新旧规则之间没有关联。软分叉的规则已被收紧。当添加新规则时,当网络中的节点(通常称为“完整节点”)接收到基于更新规则(在区块链协议中)开采的新区块时,旧版本的软件也能接受这些新区块。这种特性也称为向后兼容。
    示例:比特币网络中的 SegWit 补丁引入了 Bech32 地址类别。然而,这并没有使当前的 P2SH 地址失效。拥有 P2SH 地址的完整节点可以与 Bech32 地址节点进行合法交易。
  • 硬分叉:当对区块链协议进行更改,导致不再向后兼容时。硬分叉与软分叉相反,其规则更宽松。当进行软件更新时,旧版本的软件将不再识别基于更新规则(在区块链协议中)开采的新区块,从而导致节点无法参与网络。正如比特币(原版:Bitcoin,新版:Bitcoin cash)和以太坊(原版:Ethereum,新版:Ethereum Classic)的案例一样,硬分叉会导致创建仍然由原版支持的新货币。为了防止任何实质性损失,会向所有选择升级其软件的节点按比例分配现金。这些硬分叉经常在社区内引发争论。完整节点最终决定是否加入给定的链。选择不升级软件的节点可以继续正常运行,而希望加入新链的节点则必须更新其软件才能接受最新的交易。
    示例:以太坊区块链的最新 Casper 更新将把共识机制从工作量证明(Proof of Work (PoW))模型切换到权益证明(Proof of Stake (PoS))模型。安装了 Casper 更新的节点将使用新的共识协议。如果完整节点选择不应用 Casper 更新,它们将无法相互通信。

临时/意外分叉:当多个矿工几乎同时开采出最新的区块时,网络可能无法就该区块达成共识。虽然有些人可能在可用的不同区块(版本)之间进行妥协,但其他人可能会接受一个人生成的区块,从而在该点上形成不同的区块序列。由于信息需要一定时间才能传播到整个区块链网络,因此可能会出现对事件时间顺序的冲突看法。此分叉中的两个或多个区块具有相同的区块高度。由于许多完整节点选择不同的链来添加新区块并进行同步,因此当任何一条链消亡(成为孤链)时,临时分叉最终会自行修复。

示例:临时分叉很常见,而通常由多个方几乎同时开采出一个区块引发。

代码库分叉:代码库区块链分叉允许您复制软件的所有源代码。以比特币为例。假设您获取了整个区块链代码并根据您的需求进行了修改。假设您减少了创建区块所需的时间,进行了一些重要的调整,并生成了一个比比特币更快的程序。然后,在完成白皮书过程后,您将其以您的名字命名的新程序发布或推出。这样,一个新的区块链将从一个空的分类账本开始生成。众所周知,目前在区块链上运行的许多山寨币都是通过代码库分叉建立的,也就是说,它们对比特币代码进行了少量修改,就生成了全新的山寨币。

区块链分叉的原因

以下是区块链分叉的原因:

  1. 包含新功能:区块链的代码会经常更新。大多数公共区块链由全球个人构建,因为它们是开源的。时机成熟时,会发布新版本,并修复和改进存在的问题。
  2. 解决安全问题:与传统货币(纸币、硬币和支票)相比,区块链技术——以及在其之上的加密货币——相对较新。目前正在进行研究以对其进行充分理解。因此,会提供更新并推送版本以解决可能出现的任何安全漏洞。
  3. 撤销交易:如果一笔交易被确定为恶意或被泄露,社区有权在特定时间段内将该交易的所有交易作废。

区块链分叉的可能性

许多区块链专家和爱好者对区块链分叉的未来非常感兴趣。尽管无法确切知道未来会发生什么,但一些模式和进展可能有助于我们预测可能发生的情况。

  1. 未来的软分叉可能会变得更加普遍,因为它们通常会造成更少的网络中断,并且执行所需的共识更少。在不创建新币的情况下,软分叉可以增强区块链的功能或引入新功能。
  2. 另一种潜在情景是,由于许多社区团体对区块链的发展方向持有不同看法,未来可能会出现更多分裂性的硬分叉。这可能会导致社区内的更大分裂,因为一些用户决定坚持使用旧的区块链,而另一些用户则迁移到更新的版本。

最终,技术进步、社区动态和市场因素的结合可能会影响区块链分叉的未来。随着区块链技术的不断发展,观察分叉功能如何演变将会很有趣。


下一主题区块链的未来