区块链分叉

2025年1月20日 | 9分钟阅读

像以太坊和比特币这样的公共区块链是去中心化的,允许网络用户就区块链的共同状态达成一致,其中包括共享公共账本、区块和区块链协议。当网络中的所有节点达成一致共识时,就会创建一个包含已确认交易(网络认为准确的数据)的单一区块链。然而,网络节点无法就区块链的未来状态达成一致的情况经常发生。这导致了分叉,分叉被定义为理想的“单一”区块链分裂成两个或更多有效链的时刻(就像实验科学中使用的音叉一样)。

区块链分叉

简而言之,区块链中的分叉是指复制和修改代码以生成新软件或产品。分叉经常被使用,尤其在开源项目中很常见。由于以太坊和比特币等加密货币是开源和去中心化的,任何人都可以参与。因为它们是开源的,它们的社区有助于提高软件的安全性和可靠性。此外,通过使用分叉使用户界面更具美观性和动态性,开源可以帮助其在全球范围内扩大用户群。由于此类操作没有版权保护,任何人都可以查看、更改和修改开源代码。

区块链分叉的图示

由于其去中心化的结构,公共区块链需要网络用户就区块链的共享状态达成共识。网络中的每个节点都同意,因此,只有一个包含网络认为准确的已确认信息的区块链。

然而,网络节点无法就区块链的未来发展达成一致的情况经常发生。由此事件导致分叉,理想的单一区块链分裂成两个或更多有效链。

Forking Blockchain

分叉可大致分为两种类型

代码库分叉和实时区块链分叉

实时区块链分叉又进一步分为两个部分:有意分叉和意外分叉。如上图所示,有意分叉又进一步分为两个部分:软分叉和硬分叉。

分叉类型

1. 代码库分叉

您可以在代码库区块链分叉中复制软件的完整代码。让我们以比特币为例。假设您获取了完整的区块链代码并根据您的需求进行了更改。假设您缩短了创建区块的时间,进行了一些重要调整,并生成了一个比比特币更快的程序。然后,在完成白皮书流程后,您发布或启动了一个以您命名的程序。因此,一个新的区块链将以这种方式从一个空白的账本中生成。

众所周知,目前许多运行在区块链上的山寨币都是通过代码库分叉建立的,这意味着它们对比特币代码进行了微小调整,并产生了全新的山寨币。

2. 实时区块链分叉

实时区块链分叉是活跃区块链分成两个段或方向。因此,对于实时区块链,软件在给定页面上是相同的,并且链从该点分成两个段。鉴于此,实时区块链分叉发生有两种可能的原因

  • 临时/意外分叉: 当多个矿工几乎同时挖出新区块时,网络可能无法就新区块达成共识。虽然有些人可以就可用的各种选项(区块)达成一致,但另一些人可以接受某人挖出的区块,从而从那时起形成一个单独的区块链。由于信息需要一定时间才能在整个区块链网络中传播,因此可能会出现对事件时间顺序的冲突观点。此分叉中的两个或多个区块具有相同的区块高度。因为大多数完整节点选择另一个链来添加新区块并与之同步,所以临时分叉最终会自行解决,当其中一个链消亡(成为孤块)时。
    示例(意外/临时分叉): 临时分叉经常发生,通常是由多方几乎同时挖出一个区块引起的。
  • 有意分叉: 在有意分叉中,软件代码被有意修改,从而允许修改区块链的规则。这导致两种不同类型的分裂,具体取决于新区块被挖出的时间以及区块链协议是否向后兼容。因此,有两种类型的有意分叉
    1. 软分叉: 软分叉是对区块链协议的更改,但仍与以前的版本兼容。在向软分叉添加新规则时,您通常会确保它们不与现有规则冲突。这表明新旧规则之间没有关联。软分叉的规则已收紧。软件更改导致基于新规则(在区块链协议中)挖出的新区块也被网络中属于节点(更好地称为“完整节点”)的旧版本软件接受。此功能也称为向后兼容性。
      例如(软分叉): 随着比特币网络的 SegWit 更新,添加了一类新地址(Bech32)。然而,这并没有使当前的 P2SH 地址失效。具有 P2SH 样式地址的完整节点可以与 Bech32 样式节点进行合法交易。
    2. 硬分叉: 对区块链协议的不向后兼容更改。硬分叉是软分叉的对立面,其规定更宽松。当软件更新时,旧版本的软件不再识别基于区块链协议新规则的新挖区块,因此使节点无法参与网络。正如比特币(原始:比特币,新:比特币现金)和以太坊(原始:以太坊,新:以太坊经典)的情况一样,硬分叉导致创建新的货币,这些货币仍然由原始货币支持。所有决定更新其软件的节点都会收到等量的货币,因此没有实质性损失。这些硬分叉经常在社区内引发争议。整个节点对是否加入给定链做出最终判断。选择不升级其软件的节点继续正常运行,而那些希望加入新链的节点必须更新其软件才能接受更新的交易。
      示例(硬分叉): 以太坊区块链最近的 Casper 更新,将共识机制从工作量证明(PoW)模型切换到权益证明(PoS)模型。安装 Casper 更新的节点将使用新的共识协议。如果完整节点决定不应用 Casper 更新,它们将无法再相互通信。

区块链分叉的原因

以下是区块链分叉的原因

  • 包含新功能: 区块链的代码经常更新。大多数公共区块链由全球个人构建,因为它们是开源的。时机成熟时,新版本发布,问题得到解决、修复和改进。
  • 解决安全问题: 与传统现金(纸币、硬币和支票)相比,区块链技术和加密货币非常新颖,仍在进行研究以正确理解它们。因此,提供更新并推动版本以解决可能出现的任何安全漏洞。
  • 逆转交易: 如果确定某笔交易被恶意入侵,社区有权取消该时期的所有交易。

分叉区块链能带来什么好处?

区块链分叉可以以多种方式使受益者受益,尽管不总是惠及原始链上的用户。

  • 今年早些时候,以太坊交易所的成员能够通过名为上海升级的硬分叉从信标链中取消其 ETH(以太币)持有,当时交易所的兑现政策被修改。本质上,该分叉促进了社区验证者将 ETH 币兑换成其他货币。
  • 同时,比特币协议中最近的软分叉,称为 SegWit(隔离见证),通过将交易的数字签名与交易数据本身分离,增加了比特币区块的交易容量。
  • 因此,每个区块的交易数量可以增加,而不会影响区块大小。用户可以自由选择是否采用 SegWit,并且该分叉以这种方式与父网络保持兼容。

存在哪些负面方面?

除非它们能为消费者提供切实的优势,否则大多数分叉不会持续很长时间。然而,即使是强大的分支链有时也可能危及原始链。

例如,在上海升级中,验证者可以比旧规定更快地将其 ETH 持有量转换为现金,但他们只能通过相对复杂的过程一次兑换少量代币。目前尚不清楚这是否以及如何影响 ETH 的价格。

当今区块链分叉如何使用?

大多数分叉的主要目标是改善区块链的功能,尽管分叉链创建的新规则可以解决各种问题。正如以上示例所示,获得对金融资产的更多控制通常是主要动机。大多数硬分叉专注于生产全新的代币或其他资产,这些资产可以根据修订后的规则进行挖矿和交易。

其他分支试图改进在典型中断或网络攻击后恢复的选项。特别是,硬分叉本质上是逆转交易,可以用于恢复在 DAO(去中心化自治组织)攻击中丢失的资金。由于软分叉与原始链兼容,它们无法实现此目的。此外,在限制对整个链的暴露的同时,分叉可能允许成员探索新的商业想法或尝试新技术和算法。分叉也可能由于网络问题、软件缺陷或基本节点配置错误而意外发生。

无论区块链分裂如何发生,它都将始终影响加密货币和其他数字资产在全球经济中的地位。与任何其他类型的业务一样,每次分叉都可能有利有弊。

为什么理解区块链分叉很重要?

当区块链升级与以前的版本不兼容时,就会发生分叉。理解区块链分叉至关重要,因为那些不更新的人将停留在过时的、完全无用的链版本上。如果大部分开发人员支持升级,则可以轻松完成。

什么导致和描述区块链分叉?

三个主要因素可能导致区块链分叉

  • 包含更多功能
  • 解决与安全相关的问题
  • 逆转交易

分叉如何仍在改变加密货币格局?

“智能合约”是旨在以太坊区块链上运行的代码片段,当特定条件满足时,它们会自动执行一系列预定义操作。智能合约的应用范围广泛,从 DeFi dapps 到游戏和物流软件。

您可以将以太坊区块链视为计算机的操作系统,为所有这些应用程序提供动力。根据该比较,许多以太坊分叉——以太坊、以太坊经典和以太坊 2.0——类似于升级后的操作系统,它们提供了旧版本可能缺乏的功能或效率。

较新的分叉可能为开发人员提供与平台交互的全新方法,而较旧的分叉可能仍然是一个可靠、完善的平台。

将硬分叉视为一个全新的操作系统,类似于 Linux 和 Mac OS 是半个世纪前 UNIX 平台的发展,而软分叉则类似于“软件升级”,就像您的手机邀请您更新到最新操作系统一样。

区块链分叉的未来

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

  • 未来的软分叉可能会变得更加普遍,因为它们通常会减少网络中断,并且需要更少的共识才能实施。无需生成新币,软分叉可以增强区块链的功能或引入新功能。
  • 另一种可能性是,由于社区内不同群体对区块链的发展方向有不同看法,我们未来可能会看到更多有争议的硬分叉。这可能导致社区内出现更多分歧,因为一些用户决定坚持使用旧的区块链,而另一些用户则迁移到更新的版本。
  • 最近,多链系统和互操作性协议的创建也变得流行起来,这可以减少分叉的必要性。这些解决方案的目标是促进不同区块链网络之间的数据共享和通信,而无需硬分叉。
  • 同样重要的是要记住,随着区块链生态系统的发展,可能需要较小的更新或需要分叉的调整。或者,重点可能会转向可以通过软分叉或其他方法进行的小规模增强和调整。
  • 总体而言,技术进步、社区动态和市场因素的结合可能会影响区块链分叉的未来。随着区块链技术的进一步发展,分叉的功能将如何变化将是很有趣的。