比特币硬分叉时间 深入比特币原理(十三)——硬分叉与软分叉

在上一节中,我们了解了比特币如何达成最终共识,在这种情况下,区块链分叉通常会自然发生并自然终止。

比特币目前有100多项改进建议(请参阅详细信息)。可以看出,比特币社区中的开发人员一直在努力改善比特币。但是,与传统软件升级不同,分布式共识系统的升级非常困难,需要所有系统参与者的协调。

每次升级可能会伴随着区块链共识规则的改变,这将导致整个网络中已升级软件的节点和未升级软件的节点在不同的规则下运行,因此发生分叉。

硬叉

如果更改了区块链软件的共识规则,并且此规则更改不向前兼容,则旧节点将无法识别新节点生成的块,这是硬分叉。

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

上图中的区块4a和区块4b是自然分叉的结果,最终在区块5的整个区块链中达到了最终一致性(有关详细信息,请参见“深入比特币原理(十二)”))。

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

运行新版本的矿工将接受根据新规则生成的区块7b;

由于运行旧版本的矿工无法识别新规则,因此他们将拒绝旧区块7b,并根据旧规则开采区块7a;

这时,区块链经历了一次艰难的分叉。新老矿工将在各自的区块链上进行采矿,他们的逗留将决定两条链的生死与价值。

硬分叉过程

1.开发人员发布了一个新客户端。新客户端更改了区块链的共识规则,并且与旧客户端不兼容,因此客户端软件出现了软件分叉。

2.区块链网络中的某些节点开始运行新客户端,在新规则下生成的交易和区块将被旧节点拒绝,旧节点将开始短暂断开连接,而那些发送节点将被自己拒绝交易连接到该区块的新节点,因此整个区块链网络都有一个网络分支。

3.运行新客户端的矿工开始根据新规则进行挖掘,并且将接受新规则下的交易和冻结,因此运行不同客户端版本的矿工具有挖掘叉。

4.运行新客户端的矿工开始根据新规则挖掘区块,而旧客户端的矿工仍将根据旧规则挖掘区块,因此链叉出现在整个区块链中。

硬叉的两侧

未经生态系统中几乎所有参与者的同意,硬分叉可能会分裂整个比特币生态系统,因此这是一个极富争议性和危险性的区块链升级技术。整个比特币社区对硬分叉非常谨慎。到目前为止,比特币中的软件升级导致了两次硬分叉,但它们都是由事故(软件错误)引起的。最后,矿工们通过了回滚或所有升级。已达成共识,因此局势的影响没有扩大。

但是我认为,硬分叉将在未来的关键时刻扮演重要角色,这是比特币长期发展的基础。

可以预见的是,当比特币将要面临重大风险甚至灭绝时,整个比特币生态系统都将因股权而轻易达成共识,并升级比特币客户以避免危机。

举一个生动的例子,如果有一天人类可以移居火星,那么肯定有人会站起来说人类不应移居火星,因为那样会分裂人类社会。但是,如果有一天地球的资源用尽了,人类的生存无法满足,我相信几乎每个人都会达成共识。

如今,我们经常听到各种各样的比特币死亡理论,例如量子计算机的发展,比特币密码算法的破解等。许多专家发誓要声明“如果XXX发生,比特币将死亡,因此比特币将没有未来”。

现在您了解硬分叉的存在,我相信您可以理解解决这些问题在技术上并不困难。在分散的系统中,很难达成共识。在大多数情况下,达成共识可能很困难,但有时却很简单。

IFO(初始叉产品)

IFO是在ICO之后创建的新概念。一些社区或团体分叉了一个新的区块链,以改善比特币的机制。这实际上是一个艰难的场景。

例如,2017年8月1日,比特币现金(BCH)区块链成功从主链上以区块高度478559分离。此新加密货币的默认区块大小为8MB,并且可以动态调整区块容量。

由于旧节点仅识别小于1MB的块,因此通过运行BCH客户端节点生成的块不向前兼容,并且将被旧节点拒绝。最后,运行不同客户端的矿工将在两个不同的区块链(BTC和BCH)上运行。

IFO可能是比特币转换的一种非常好的实验方法,但是BTG(比特币黄金),BCD(比特币钻石),SBTC(超级比特币)在BCH之后的短时间内连续出现。它们已成为许多利益集团赚钱的工具。

2018年3月18日,著名的自媒体报道了叉子硬币上市后市值的下跌,这表明了市场对其的态度:

生物安全信息交换所:减少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:下降9 2. 92%

ABTC:下降99.99%

BIFI:下降99.1%

这些分叉的硬币不仅不会丝毫影响比特币的价值和地位,而且它们本身似乎大多将恢复为零。

在“区块链谈话:比特币很有价值”中,许多朋友问我,比特币可以无限复制无数种加密货币。为什么比特币仅是有价值的?现在,事实为您提供了一些答案。您可以复制比特币的代码并创建无数的比特币,但不能复制比特币背后的生态(开发人员,矿工,交易所,商人,用户)。就像您提供淘宝和微信的源代码一样,您可以制作另一个淘宝和微信吗?

软叉

如果更改了区块链的共识规则,则该更改是前向兼容的,并且旧节点可以与新节点生成的块(软叉)兼容。

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

软叉在比特币的历史上已经发生过很多次,这里以BIP-34为例:

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

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

BIP-34的升级过程如下:

1.首先,矿工将块版本号更改为“ 2”,以表示他们已准备好升级。这时,coinbase数据不需要包含块高度信息。

2.当最新的1000个块中超过75%的版本号为“ 2”时,整个系统将开始强制版本号为“ 2”的块在币库数据中包含块高度信息。但是版本号为“ 1”的块仍被所有节点接受。

3.当最新的1000个块中超过95%的版本号为“ 2”时,则将版本号为“ 1”的块视为无效,并且节点将拒绝版本号为“ 1”的块。 ”,这将迫使最后少数节点升级。 (否则,完成采矿的奖励将失去价值。

软叉提供了一种逐步升级比特币的方法。除了BIP-34之外,还具有已通过软叉升级的功能,例如BIP-65、BIP-66、BIP-9。升级方法也有某些差异。有兴趣的朋友可以转到第一篇文章中提供的BIP链接,以查看特定的升级内容和方法。

软叉之争

与硬叉相比,软叉更加“温和”,但是由于软叉必须是前向兼容的,也就是说,不能添加新字段,并且只能在现有结构下进行修改,因此升级空间有限。此外,有关软叉的争议也很多,例如:

技术债务

软叉子的实现比硬叉子要复杂得多,这将使区块链的代码更加复杂,不利于将来的代码维护,并且更容易出现错误。

验证放松

尚未升级的客户端将新规则下的块视为有效,但不验证新规则。对于旧节点,它无法再进行完整的验证,这似乎与分散的概念背道而驰。

不可逆

硬叉通常是共识规则的扩展,而软叉是共识规则的加强,因此一旦执行软叉,回滚就非常困难,并且很可能导致硬分叉并造成资金损失。

叉子游戏

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

社区开发人员:这是比特币的核心群体。没有高质量代码的不懈贡献,比特币可能早就不复存在了。比特币核心客户端的任何升级都需要由他们启动。可以说,比特币的未来主要由这些开发商决定。

矿工:比特币的主要既得利益,矿工计算能力的支持对于比特币的升级(分叉)至关重要。没有矿工的支持,升级将不会成功。矿工越多,计算能力越大,分散程度越高,安全性越强。通常,矿工人数与数字货币的规模和价值呈正相关。

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

商人:这也是早期没有的“角色”,但是商人的支持对于比特币的商业化非常重要。如果没有商人愿意支持比特币,那么实现比特币成为货币的理想就不会实现,因此商人对数字货币的支持也是未来数字货币的关键因素。

最终用户:数字货币的推广与最终用户的支持密不可分。如果没有人想要使用数字货币,它将最终死亡。

当前比特币分叉游戏中的前三个具有更大的影响力。例如,社区开发商和矿工在扩展方面存在着长期的争议。 BCH是矿工的单方面叉行为。我知道矿工们想扩大规模。是的,这样他们可以收取更多的交易费,而增加区块数将消除一些小型矿工(需要更多存储空间和更好的带宽条件);而社区开发人员则希望通过第二层协议(闪电网络,我们将在后面进行解释)来解决扩展问题,将一些交易从链上转移到链外,让比特币主网成为一种“清算”方式。网络”,显然这对矿工不利。

后两者目前影响有限,但是一旦数字货币技术和其他方面的条件成熟,商人和最终用户之间的选择将变得极为重要,互联网的“网络效应”将开始发挥作用。职务。货币可能会出现赢家通吃的情况。

本文中的某些图片来自Zhihu Mao Ben Cong:[9号区块] Fork,Sleep Education和SegWit2X

作者|张继航

点击了解:“深度区块链原理”系列序列化