时间:2022-02-26|浏览:446
区块链是一个存在于每个网络参与者(矿工)电脑中的大型分散系统。
换句话说,一旦区块链需要更新版本或修改系统,所有网络参与都必须下载并运行新版本的区块链客户端,以完成版本更新。
然而,比特币 用比安交易所购买并祝愿策略升级分布式共识系统的困难在于,网络参与者很难同时完成更新。只要参与者不立即更新客户端,网络上就会有不同版本的区块链。换句话说,区块链就会分叉。
区块链更新产生的共识问题
因此,区块链更新时,必须协调所有系统参与者,否则可能会影响区块链系统的安全。
升级分布式共识系统的另一个困难在于,所有网络参与者必须达成共识。
如果只有一部分矿工同意更新,另一部分旧矿工不同意更新,矿工之间就会有共识。
区块链更新中的共识问题大致有四种可能性:
1)新矿工接受旧矿工挖出的区块
2)新矿工不接受旧矿工挖出的区块
3)旧矿工接受新矿工挖出的块
4)旧矿工不接受新矿工挖出的区块
硬分叉
新矿工产生的块可与旧矿工产生的块兼容,而旧矿工产生的块不能与新矿工产生的块兼容。
硬分叉和软分叉-硬分叉
当新版本在系统中更新,与前版本不兼容,旧矿工无法接受新矿工挖出的全部或部分块时,区块链就会出现硬分叉。
以比特币为例,如果协议的重要参数发生变化,如块的大小、采矿主题的难度或块的速度,这些规则中的任何变化都可能导致新块不被之前版本的共识规则所接受。
例如,如果区块容量限制在更新后从1开始MB增加到4MB,新版本的矿工将接受4MB但是运行旧版本的矿工会拒绝这个块。
1
社区达成共识
硬分叉和软分叉-达成共识
在新矿工占据大部分计算能力的情况下,旧矿工有两种选择。第一种是接受更新和升级客户软件。这种情况意味着社区对版本更新达成共识,区块链可以安全顺利地完成更新。
2
社区无法达成共识
硬分叉和软分叉-无法达成共识
如果就矿工坚持维护旧版本的系统,那区块链将因此分裂为两条链。(在这个情况下,新矿工与旧矿工已经无法达成共识了,即便接受更新的新矿工算力>51%,旧矿工依然不愿意接受新版本,因此不适用“最长链共识”。)
若大部分的人都选择更新,那新版本的算力势必比较强,剩下的就看旧版本的算力够不够支持维护一条链的安全,倘若还是有一定数量的矿工坚持维护旧版本,那区块链就会分裂成两条链。
当区块链分裂为两条链,且在有各自的矿工维护各自的链的情况下,就会产生两种不一样的币(大部分硬分叉,例如以太坊的君士坦丁堡硬分叉,矿工都会愿意接受新版本的区块链,矿工之间没有共识问题,就不会有分裂的情况),这就是所谓的“分叉币”。
例如比特币社群在2017年的扩容方案理念产生分歧,无法达成共识导致硬分叉,比特币现金 (Bitcoin Cash) 因此诞生。
对用户而言,这种社群分裂的硬分叉,最有感的就是可以领分叉币,举个例子,分叉前你在钱包有 “1BTC”,分叉后你将拥有 “1BTC+1BCH ”。
在没有得到所有生态中的参与者同意的情况下,硬分叉有很大的风险,很容易导致该区块链的生态系分裂、算力分裂以及陷入重放攻击的危险中。
所以这是一种极具争议和危险的区块链升级技术,因此区块链社群对于硬分叉非常谨慎。
软分叉
在新矿工算力>51%时,新矿工产生的区块不能兼容旧矿工产出的区块,旧矿工可以兼容新矿工产出的区块。
硬分叉与软分叉-软分叉
如果以“更严格的规则”进行更新,实现协议修改或添加不影响结构的功能时,则旧矿工将接受新矿工所产的区块;
相反的,由于新矿工所认定的协议较严格,新矿工将会拒绝旧矿工所产的区块,此时旧矿工在正常情况下,会选择升级,否则其所产的区块会无法被新矿工接受,无法获得挖矿奖励。
遇到例如意识形态或开发观点不同等特殊情况时,旧矿工仍然有可能会选择不接受新矿工产出的区块,继续维护旧版本的链,进而导致硬分叉甚至分裂。
以比特币为例,理想的情况是,旧矿工会意识到他们的区块被拒绝了,便会选择升级。
随著越来越多的矿工升级,这将进一步孤立旧版本的区块,在利益的驱使下,会诱使更多旧矿工升级,于是,系统便能以较温和的方式完成更新。
例如,社区决定将块大小从目前的1MB限制减少到0.5MB。
占多数的新矿工会拒绝旧矿工产出的1MB区块,并选择其他矿工产出的符合条件的区块。
软分叉的更新时常发生。
最初比特币没有区块大小的限制,是在之后透过软分叉引入1MB的限制,还通过软分叉成功添加了pay-to-script-hash函数,该函数在不改变结构的情况下增强了代码。
这种类型的更新通常只需要大多数矿工进行升级,其他矿工便会随之升级,这使得它更可行,破坏性更小。
链金研究员总结
软分叉与硬分叉相比,软分叉的过程中,在正常情况下,只会存在一条链,没有分成两条链的风险,且软分叉不要求所有矿工同一时间升级,而是以较温和的方式逐步升级,不影响软分叉过程中的系统稳定性和有效性。
然而两者并没有孰优孰劣之分,而是适用性的问题,假如进行大规模的区块链更新,势必会牵涉到不被旧协议接受的规则。
即便我们都知道软分叉比硬分叉来的安全,还是只能选择以硬分叉进行区块链升级。
不过也不需要把硬分叉想得太过可怕,因为只要全网矿工对升级有相同的共识,就不会分叉成两条区块链,影响到安全性。
总归一句,对区块链升级而言,重要的不是硬分叉还是软分叉,而是矿工与矿工之间的共识是否一致,这部分称之为“区块链治理”。
若共识处理不好则容易导致革命,这也是为什么区块链的升级相较传统软体还要来的困难。
用戶喜愛的交易所
已有账号登陆后会弹出下载