主页 > imtoken钱包怎么下载 > 深入比特币原理(十三)——硬分叉和软分叉

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

imtoken钱包怎么下载 2023-01-18 18:32:05

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

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

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

硬分叉

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

image.png

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

image.png

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

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

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

运行旧版本的矿工会因为无法接受新规则而拒绝Block 7b,并开采Block 7b。 Block 7a 基于旧规则;

此时,区块链将经历一次硬分叉,新老矿工将在各自的区块链上挖矿,他们的命运将决定两条链的生死和价值。

硬分叉的过程

1.开发者发布新客户端,改变了区块链的共识规则,不受旧客户端兼容,所以客户端软件有分叉(software fork)。

民国双旗币现在的价值_前景理论中的价值函数_lbtc币价值前景

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

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

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

硬分叉的两侧

一个硬分叉很可能在没有得到生态系统几乎所有参与者同意的情况下分裂整个比特币生态系统,所以这是一个极具争议和危险的区块链升级技术。整个比特币社区对硬分叉都非常谨慎。迄今为止,比特币经历了两次软件升级导致的硬分叉。分叉是由意外(软件bug)引起的,最终矿工通过回滚或整体升级达成共识,使情况影响没有扩大。

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

可以预见,当比特币即将遭遇重大风险,甚至濒临灭绝时,整个比特币生态很容易达成共识,升级比特币客户端,避免危机。

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

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

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

IFO(初始分叉产品)

IFO是ICO之后的一个新概念。一些社区或团体为了完善比特币的机制,分叉出一个新的区域。区块链,其实就是硬分叉场景。

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

民国双旗币现在的价值_前景理论中的价值函数_lbtc币价值前景

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

IFO本可以是比特币改造的一个很好的实验方法,但是BTG(比特币黄金)、BCD(比特币钻石)、SBTC(比特币黄金)、BTG(比特币钻石)、十几个分叉链如作为超级比特币)已经成为许多利益集团赚钱的工具。

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%

民国双旗币现在的价值_前景理论中的价值函数_lbtc币价值前景

BCX:下跌 67%

LBTC:下跌 86%

BCK:下降 99.75%

上帝:下降 90%

QBTC:下跌 88%

WBTC:下跌 9 2.92%

ABTC:下跌 99.99%

BIFI:下降 99.1%

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

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

软分叉

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

image.png

前景理论中的价值函数_民国双旗币现在的价值_lbtc币价值前景

实际上,软分叉通常不会以两条区块链开始lbtc币价值前景,因为在新规则下生成的区块会被旧节点接受,旧节点只是不认识新规则的真正含义。因此,新旧节点仍然在同一个区块链上,对整个系统的影响较小。

在比特币的历史上,软分叉已经发生过多次。以下是 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-34,还有BIP-65、BIP-66、BIP -9等功能已经软升级fork,它们的升级方式也不同。感兴趣的朋友可以到文首提供的BIP链接查看具体升级内容和方法。

分叉的软分叉之争

与硬分叉相比,软分叉要“温柔”很多,但由于软分叉必须是前向兼容的,也就是说不能添加新的字段,只能添加已有的结构。因此,升级空间有限。而且软分叉也存在一些争议,比如:

技术债

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

前景理论中的价值函数_民国双旗币现在的价值_lbtc币价值前景

验证放宽

未升级的客户端视图 新规则下的块是有效的,但新规则没有经过验证。对于老节点,已经无法完全验证,这似乎违背了去中心化的理念。

不可逆

硬分叉通常是为了扩大共识规则,而软分叉是为了收紧共识规则,所以一旦软分叉后很难回滚,很可能造成硬分叉和导致资金损失。

分叉游戏

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

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

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

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

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

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

目前,前三者在比特币分叉游戏中影响力较大。例如,社区开发者和矿工在扩容问题上存在长期争议。 BCH是矿工的单边分叉行为。我理解矿工是那些想要扩大区块的人,这样他们可以收取更多的交易费用,而区块的增加会淘汰一些小矿工(需要更大的存储和更好的带宽条件);而社区开发者希望通过第二层协议(我们稍后会单独解释闪电网络)来解决扩容问题,将一些交易从链上放到链下,将比特币主网作为“清算网络” ”。显然,这对矿工不利。 .

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

本文部分图片来自知乎茅本聪:[block #9] Fork、Sleep Education 和 SegWit2X

作者 |张继航

点击了解:《深入区块链原理》系列