硬分叉与软分叉——区块链版本更新的必经之路_NFT:web3.0币种有哪些

区块链是一个存在于互连网中的大型分散式系统,存在于每一个网路参与者的电脑中。

换句话说,一但区块链要进行版本更新或系统修改,所有网路参与都必须下载并运行新版本的区块链客户端,区块链系统才能完成版本更新。

然而,分布式共识系统升级时困难的地方在于,很难要求网路参与者在同一时间完成更新,只要有参与者没有即时更新客户端,网路上就会存在不同版本的区块链,换句话说,区块链会出现分叉。

区块链更新产生的共识问题

因此,区块链进行更新时,必须协调好所有的系统参与者,否则可能会影响到区块链系统的安全性。

另一个分布式共识系统升级困难的地方在于,必须让所有网路参与者达成共识。

如果只有一部分矿工同意更新,另外一部分旧矿工不同意更新,矿工之间便会产生共识问题。

而区块链更新时的共识问题大致上会有以下四种可能:

BNB Chain将于本周执行硬分叉以修复10月6日的漏洞利用:金色财经报道,BNB Chain (BSC) 将于本周执行硬分叉,以修复10月6日的漏洞利用,该漏洞估计该平台损失了1亿美元。根据周二 GitHub 上的一篇帖子,?临时紧急补丁版本将于10月12日UTC时间08:00左右发布。

硬分叉是对区块链协议的更改,它使旧版本无效。它可以在网络对其机制或治理进行根本性更改时执行,或者在这种情况下,作为修复导致黑客或漏洞利用的弱点的一种手段。[2022/10/12 10:31:27]

1)新矿工接受旧矿工挖出的区块

2)新矿工不接受旧矿工挖出的区块

3)旧矿工接受新矿工挖出的区块

4)旧矿工不接受新矿工挖出的区块

硬分叉

新矿工产生的区块可以兼容旧矿工产出的区块,而旧矿工产生的区块无法兼容新矿工产出的区块。

轻量级区块链协议Mina Protocol已完成公共测试网硬分叉:12月17日消息,轻量级区块链协议Mina Protocol(原名为Coda Protocol)官方推特称,其公共测试网硬分叉已完成,当前的测试网4.1运行顺利,数百名社区成员已连接到新网络。据此前报道,今年9月,Coda Protocol更名为Mina重新启动,名称更改在其开发公司O(1)Labs与区块链联盟R3间达成保密协议后进行,双方曾因商标问题诉诸法律,随后和解。[2020/12/17 15:28:20]

硬分叉与软分叉-硬分叉

当系统中出现了新版本的更新,并且和前版本不能兼容,旧矿工无法接受新矿工挖出的全部或部分区块,区块链就会出现硬分叉。

以比特币为例,若更改协议的重要参数,例如区块大小、挖矿题目的难度或出块速度等,这些规则中的任何一个的更改都可能导致新区块无法被前版本的共识规则接受。

分析 | 以太坊在进行“缪尔冰川”硬分叉计划后 通胀将上升逾20%:以太坊基金会的开发者确认预计于1月1日进行的硬分叉升级会增加ETH的通货膨胀,由于供应增加约20%,这将形成强大的抛售局面。供应冲击预计将使1月初的日抛压增加约30万美元。比特币编程人员Udi Werthemier对此进行了批判并强调了以太坊网络令人不安的状态。更糟糕的是,以太坊核心开发人员只是“忘记”或“错误计算”了项目日程安排。以太坊的一个项目负责人Peter Szilagyi在推特上表示:“没有人会忘记冰河时代。有人做了一些粗略的计算,认为有足够的时间,但计算是错误的。比起重复检查,开发者显然还有更重要的事情要做。当有人意识到冰川时代真的已经来临,我们就会尽快采取行动。”Werthemier的批判受到了以太坊社区的回击。该项目的一名程序员Iuri Matis回复Werthemier称:“听你这么说,就好像硬分叉增加通货膨胀是我们既定目标似的,而实际上它只是把出块时间恢复到‘正常’。是的,从技术上讲,更快的出块时间(当恢复正常时)意味着更高的通胀,但这不是硬分叉的目标。”(CoinGape)[2019/12/24]

例如,如果更新后,区块容量限制从1MB增加到4MB,则运行新版本的矿工将接受4MB的区块,但运行旧版本的矿工则会拒绝该块。

动态 | ?ternity核心开发团队已执行LIMA硬分叉:开源区块链?ternity核心开发团队近日宣布激活其LIMA硬分叉,向矿工发布最新软件,事实上将治理移交给社区。LIMA是今年第三次主要的协议升级,它增加一个精密的、改进的虚拟机、治理和命名系统,以挑战以太坊和其他区块链平台。核心开发人员向矿工提出了硬分叉,并发布LIMA软件版本,他们将选择是否挖掘aeternity区块链的分叉。(Globe Newswire)[2019/11/5]

1

社群达成共识

硬分叉与软分叉-达成共识

在新矿工占有大部分算力的情况下,旧矿工有两个选择,第一种就是接受更新并升级客户端软体,这个情况意味著社群对版本更新达成共识,区块链可以安全且顺利完成更新。

2

社群无法达成共识

硬分叉与软分叉-无法达成共识

如果就矿工坚持维护旧版本的系统,那区块链将因此分裂为两条链。(在这个情况下,新矿工与旧矿工已经无法达成共识了,即便接受更新的新矿工算力>51%,旧矿工依然不愿意接受新版本,因此不适用“最长链共识”。)

若大部分的人都选择更新,那新版本的算力势必比较强,剩下的就看旧版本的算力够不够支持维护一条链的安全,倘若还是有一定数量的矿工坚持维护旧版本,那区块链就会分裂成两条链。

当区块链分裂为两条链,且在有各自的矿工维护各自的链的情况下,就会产生两种不一样的币,这就是所谓的“分叉币”。

例如比特币社群在2017年的扩容方案理念产生分歧,无法达成共识导致硬分叉,比特币现金(BitcoinCash)因此诞生。

对用户而言,这种社群分裂的硬分叉,最有感的就是可以领分叉币,举个例子,分叉前你在钱包有“1BTC”,分叉后你将拥有“1BTC+1BCH”。

在没有得到所有生态中的参与者同意的情况下,硬分叉有很大的风险,很容易导致该区块链的生态系分裂、算力分裂以及陷入重放攻击的危险中。

所以这是一种极具争议和危险的区块链升级技术,因此区块链社群对于硬分叉非常谨慎。

软分叉

在新矿工算力>51%时,新矿工产生的区块不能兼容旧矿工产出的区块,旧矿工可以兼容新矿工产出的区块。

硬分叉与软分叉-软分叉

如果以“更严格的规则”进行更新,实现协议修改或添加不影响结构的功能时,则旧矿工将接受新矿工所产的区块;

相反的,由于新矿工所认定的协议较严格,新矿工将会拒绝旧矿工所产的区块,此时旧矿工在正常情况下,会选择升级,否则其所产的区块会无法被新矿工接受,无法获得挖矿奖励。

遇到例如意识形态或开发观点不同等特殊情况时,旧矿工仍然有可能会选择不接受新矿工产出的区块,继续维护旧版本的链,进而导致硬分叉甚至分裂。

以比特币为例,理想的情况是,旧矿工会意识到他们的区块被拒绝了,便会选择升级。

随著越来越多的矿工升级,这将进一步孤立旧版本的区块,在利益的驱使下,会诱使更多旧矿工升级,于是,系统便能以较温和的方式完成更新。

例如,社区决定将块大小从目前的1MB限制减少到0.5MB。

占多数的新矿工会拒绝旧矿工产出的1MB区块,并选择其他矿工产出的符合条件的区块。

软分叉的更新时常发生。

最初比特币没有区块大小的限制,是在之后透过软分叉引入1MB的限制,还通过软分叉成功添加了pay-to-script-hash函数,该函数在不改变结构的情况下增强了代码。

这种类型的更新通常只需要大多数矿工进行升级,其他矿工便会随之升级,这使得它更可行,破坏性更小。

链金研究员总结

软分叉与硬分叉相比,软分叉的过程中,在正常情况下,只会存在一条链,没有分成两条链的风险,且软分叉不要求所有矿工同一时间升级,而是以较温和的方式逐步升级,不影响软分叉过程中的系统稳定性和有效性。

然而两者并没有孰优孰劣之分,而是适用性的问题,假如进行大规模的区块链更新,势必会牵涉到不被旧协议接受的规则。

即便我们都知道软分叉比硬分叉来的安全,还是只能选择以硬分叉进行区块链升级。

不过也不需要把硬分叉想得太过可怕,因为只要全网矿工对升级有相同的共识,就不会分叉成两条区块链,影响到安全性。

总归一句,对区块链升级而言,重要的不是硬分叉还是软分叉,而是矿工与矿工之间的共识是否一致,这部分称之为“区块链治理”。

若共识处理不好则容易导致革命,这也是为什么区块链的升级相较传统软体还要来的困难。

投资有风险,本文观点和意见仅代表作者本人,并不构成任何建议。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-4:471ms