主页 > 下载imtoken被盗 > 深入比特币原理(十三) - 硬分叉和软分叉

深入比特币原理(十三) - 硬分叉和软分叉

下载imtoken被盗 2023-03-31 06:23:27

在上一节中,我们研究了比特币如何实现最终一致性,其中可能的区块链分叉通常自然发生并自然结束。

比特币目前有 100 多个改进提案(见详情),可以看到比特币社区的开发者一直在致力于改进比特币。但与传统软件的升级不同,分布式共识系统的升级难度很大,需要所有系统参与者的协调。

每次升级都可能伴随着区块链共识规则的变化,会导致已经升级软件的节点和未升级软件的节点在全网运行在不同的规则下,从而出现分叉。

硬分叉

如果区块链软件的共识规则发生了改变,而这个规则的改变是不向前兼容的,那么老节点就无法识别新节点产生的区块,这就是硬分叉。

image.png

这时,旧节点会拒绝新规则的区块,因此新节点和旧节点将开始在不同的区块链上运行(挖矿、交易、验证等)。由于新旧节点可能存在很长时间,这个分叉也可能会持续很长时间。

image.png

上图中的Block 4a和Block 4b是自然分叉的结果,最终Block 5中的整个区块链达到了最终一致性(详见《深入比特币原理(十二)》)

假设当区块链扩展至 Block 6 时,发布了更改共识规则的新客户端版本,运行不同客户端的节点出现分歧:

运行新版本的矿工将接受新规则下产生的 Block 7b;

运行旧版本的矿工将拒绝 Block 7b,并根据旧规则开采 Block 7a,因为他们无法批准新规则;

至此,区块链经历了一次硬分叉,新老矿工将在各自的区块链上挖矿,他们的离开和留存将决定两条链的生死和价值。

硬分叉过程

1.开发者发布了一个新的客户端。新客户端改变了区块链的共识规则,与老客户端不兼容,所以客户端软件有软件分叉。

2.区块链网络中的一些节点开始运行新的客户端,在新规则下产生的交易和区块会被老节点拒绝,老节点开始与这些被自己拒绝的交易短暂地断开连接。与区块的新节点连接,因此整个区块链网络有一个网络分叉。

3.运行新客户端的矿工根据新规则开始挖矿,并会接受新规则下的交易和区块,因此运行不同客户端版本的矿工的算力被分叉(mining fork)。

4.运行新客户端的矿工根据新规则开始挖块,而老客户端上的矿工仍然会根据旧规则挖块,所以整个区块链有一个链分叉。

硬分叉的两侧

未经生态系统几乎所有参与者的同意,一次硬分叉很可能分裂整个比特币生态系统,因此这是一项极具争议且危险的区块链升级技术。整个比特币社区对硬分叉都非常谨慎。到目前为止,比特币已经出现了两次软件升级导致的硬分叉,但都是由意外情况(软件错误)引起的。最终,矿工们回滚或升级了所有协议,使局势的影响没有扩大。

但我认为硬分叉会在未来的关键时刻发挥巨大的作用,是比特币长期发展的基础。

可以预见,当比特币即将遭遇重大风险甚至灭绝之际,此时整个比特币生态系统将因相关利益而轻易达成共识,升级比特币客户端以规避危机。

比如,如果有一天人类可以移民到火星,那么有人会站出来说人类不应该移民到火星,因为那样会分裂人类社会。但如果有一天地球资源枯竭,人类无法生存,相信几乎所有人都会在移民问题上达成共识。

现在我们经常听到各种比特币死亡理论,比如量子计算机的发展、比特币密码算法的破解等等。很多专家发誓并宣称“如果发生XXX,比特币就会死亡,所以比特币没有未来。” .

既然你了解了硬分叉的存在,相信你也能明白,解决这些问题在技术上并不难,去中心化系统的难点在于达成共识。在大多数情况下达成共识可能很困难,但有时也很容易。

IFO(初始分叉产品)

IFO是ICO之后的一个新概念。一些社区或团体为了完善比特币的机制而分叉了一条新的区块链,这实际上是一种硬分叉的场景。

例如,2017 年 8 月 1 日,比特币现金(BCH)区块链在区块高度 478559 处成功脱离主链。新加密货币默认区块大小为 8MB,可以动态调整区块大小。

由于老节点只识别小于1MB的区块,运行BCH客户端节点产生的区块无法前向兼容,会被老节点拒绝。最后,运行不同客户端的矿工将在两个不同的区块链上运行很长时间。向上(BTC 和 BCH)。

IFO本可以是比特币改造的一个非常好的实验方法,但是在BCH之后的很短的时间内,出现了十几个BTG(比特币黄金)、BCD(比特币钻石)、SBTC(超级比特币)等。分叉链已经成为许多利益集团赚钱的工具。

2018年3月18日,某知名自媒体给出了分叉币上市后市值的跌幅,由此可见市场对其的态度:

BCH:下跌 78%

BTG:下降 84%

BCD:下跌 96%

SBTC:下跌 98%

BTF:下降 90%

BTN:下跌 99.96%

BTP:下降 89%

BTV:下降 99.47%

UBTC:下跌 97%

BTH:下降 99%

BCX:下跌 67%

LBTC:下跌 86%

BCK:下降 99.75%

上帝:下降 90%

QBTC:下跌 88%

WBTC:下跌 92.92%

ABTC:下跌 99.99%

BIFI:下跌 99.1%

这些分叉的币不仅对比特币的价值和地位没有丝毫影响,而且它们本身似乎大多即将归零。

在《区块链谈:比特币有价值吗》中,很多朋友问我,比特币可以无限复制无数加密货币,为什么只有比特币有价值?现在事实已经给了你一些答案。你可以复制比特币的代码,创造出无数的比特币,但你无法复制比特币背后的生态(开发者、矿工、交易所、商家、用户)。就像给你淘宝和微信的源码,你能不能再造一个淘宝和微信?

软叉

如果区块链的共识规则发生变化,则该变化是前向兼容的,老节点可以兼容新节点产生的区块,这就是软分叉。

image.png

事实上,一个软分叉一开始通常不会产生两条区块链,因为在新规则下产生的区块会被旧节点接受,而旧节点只是无法识别新规则的真正含义。因此,新旧节点仍然在同一个区块链上,对整个系统的影响较小。

在比特币的历史上,软分叉已经发生过多次。这是 BIP-34 的示例:

在《深入比特币原理(十))》中,我们说过在Coinbase交易的输入中有一个字段coinbase数据内容可以自定义。BIP-34 要求 coinbase 数据必须包含区块高度(Block Height)信息,并将区块版本(Block version)从“1”更改为“2”。

显然,在旧规则下,节点并不关心coinbase数据是什么,并且完全兼容包含区块高度信息的区块,因此不会有分叉。

BIP-34的升级过程如下:

1.一开始,矿工将区块版本号改为“2”,表示准备升级。此时,coinbase 数据不需要包含区块高度信息。

2.当最后 1000 个区块中超过 75% 的版本号为“2”时,整个系统开始强制要求版本号为“2”的区块 coinbase 数据必须包含区块高度信息。但是版本号为“1”的块仍然被所有节点接受。

3.当最后 1000 个区块中超过 95% 的版本号为“2”时,版本号为“1”的区块开始被视为无效,节点将拒绝版本号为“2”的区块1" ,这将强制最后少量节点升级。(否则完成挖矿的奖励将失去价值)。

软分叉提供了一种逐步升级比特币的方法。除了 BIP-34btc扩容硬分叉,还有 BIP-65、BIP-66、BIP-9 等通过软分叉升级的特性。的升级方法也有一些差异。感兴趣的朋友可以到文首提供的BIP链接查看具体升级内容和方法。

软分叉争议

相比硬分叉,软分叉要“温柔”很多,但是因为软分叉必须是前向兼容的,也就是说不能增加新的字段,只能在现有结构下进行修改,所以升级空间是有限的。而软分叉也有一些争议,比如:

技术债

与硬分叉相比,软分叉实现起来要复杂得多,这会使区块链的代码更加复杂,不利于以后的代码维护,更容易出现bug。

验证放松

未升级的客户端将新规则下的区块视为有效,但不对新规则进行验证。对于老节点,它不再能够进行完整的验证,这似乎违背了去中心化的概念。

不可逆转

硬分叉通常会扩展共识规则,而软分叉则是收紧共识规则。因此,一旦进行了软分叉,就很难回滚,很可能造成硬分叉,造成资金损失。

分叉游戏

最后,我们来谈谈比特币升级(分叉)中存在的不同“角色”。每个人都可以考虑各自的游戏关系。

社区开发者:这是比特币的核心群体。如果没有他们对高质量代码的不懈贡献,比特币可能不会存在很久,任何比特币核心客户端的升级都需要他们发起。可以说,比特币的未来主要是由这些开发者决定的。

矿工:比特币的主要既得利益者,矿工算力的支撑对比特币的升级(分叉)至关重要。没有矿工的支持btc扩容硬分叉,任何升级都无法成功。矿工越多,算力越大,去中心化程度越高,安全性越强。通常,矿工的数量与数字货币的规模和价值呈正相关。

交易所:早期没有交易所,现在交易所对于数字货币的发展越来越重要。对于区块链分叉来说,如果没有交易所的支持,矿工获得的数字货币将难以兑现。价值将大大降低,因此交易所支持对于分叉币或山寨币非常关键。

商户:也是早期不存在的“角色”,但商户的支持对于比特币的商业化进程非常重要。如果没有商家愿意支持比特币,比特币成为货币的理想就无法实现,所以商家的支持也是未来数字货币生死存亡的关键因素。

终端用户:数字货币的推广离不开广大终端用户的支持。如果没有人愿意使用数字货币,它最终会消亡。

目前,前三者在比特币分叉游戏中影响力较大。例如,社区开发者和矿工在扩容问题上存在长期争议。BCH是矿工的单边分叉行为。我理解矿工想要扩大区块,这样他们可以收取更多的交易费用,而区块大小会淘汰一些小矿工(需要更大的存储和更好的带宽条件);而社区开发者想要使用Layer 2协议(我们后面会跟进的闪电网络)来解决扩容问题,把一些链上的交易放到链下,让比特币主网充当“清算网络”,显然这对矿工不利。

后两者目前影响力有限,但一旦数字货币技术等方面成熟,商户和终端用户的选择将变得极为重要,互联网的“网络效应”将开始发挥作用,数字化可能会出现不同领域的货币。赢家通吃的局面。

本文中的部分图片来自 Satoshi the Cat:[block #9] Fork、Sleep Education 和 SegWit2X