分岔不是区块链的恰当术语。
在软件工程中,当开发人员从软件包中获得源代码的副本并开始基于它进行独立开发,从而创建另一个软件程序时,就会出现一个独立的项目分支。
区块链分叉类似于应用程序的更新。
对于中心化式系统,其升级相对简单,可分为服务器升级和终端升级。对于服务器升级,只要部署在后台,就可以一键升级;对于终端升级,可以选择直接在软件库或app store中升级。此外,终端版本的不一致性并不影响用户对其服务的使用。
对于区块链这样的去中心化系统,其升级更为复杂。由于它没有中心组织和中央服务器,每次“代码升级”都需要得到网络参与者的一致认可。如果大家不能达成一致,区块链就会形成分叉,即终端版本不一致。这里需要注意的是,终端版本的不一致可能会影响客户对其服务的使用。
简言之,分叉发生在:
在任何时候,两个“矿工”(簿记竞争者)几乎同时发现一个区块。
开发人员,尝试更改确定事务是否有效的规则。
当然,并不是所有的分岔都会成功。不同的矿工在大致相同的时间生产一个区块是很常见的,这在区块链中形成了一个明显的分叉,如下图所示。但当一个不可靠的矿工生成一个新的替换块时,系统会同意该块是无效的,“孤立块”很快就会被其他矿工放弃。新协议只有得到一些人的一致认可,才能真正形成分叉链。
从本质上讲,区块链分岔是对协议的一种改变。因为区块链是建立在共同规则之上的,改进它们的最简单方法似乎是引入新规则或更改现有规则。长期以来,这种机制被认为是危险的,或者至少是破坏性的,但它也是一种更直观的区块链升级机制。
在我们面前,就像在岔路口。我们可以选择其中一条路线,不会影响之前的行程。由于两条岔路的性质不同,不同的选择会把我们带到不同的目的地。
硬分岔与软分岔
虽然有相似的名称,但根据新旧版本是否可以交互,区块链分叉可以分为两种类:硬分叉和软分叉。
硬分岔
硬分岔是引入一组新的规则,这些规则与旧的网络协议不兼容。换句话说,硬分叉是向后不兼容的升级。所有网络参与者必须升级到新版本并遵循新的一致性规则,才能继续验证和验证新的事务块。当然,在硬分叉的情况下,如果有人仍然持续支持旧版本,那么两个区块链可以同时存在:一个使用旧规则,另一个使用新规则。
“硬叉”可以是计划中的“硬叉”:这通常意味着在“硬叉”出现之前,项目开发者和社区已经达成了高度的共识,并且事先有明确的升级协议。例如,monero在2017年1月推出了“hard fork”,它增加了一个新的隐私功能,ring机密交易(ringct)。
它也可能是一个有争议的硬分叉:这种类的硬分叉发生在项目涉及的各方(包括项目开发人员、网络用户和节点)之间存在严重分歧时。**的例子是比特币现金硬叉,2017年比特币分为两个独立的链条——原始比特币(BTC)和新比特币现金(BCH)。这是因为一些社区人士认为,将比特币的区块大小从1MB增加到8MB,将使网络上的交易更快。
软分岔
一般来说,软分叉是向后兼容的升级。这意味着软分叉不需要升级网络上的节点来保持一致性。它通常只是添加一个与旧规则不冲突的新规则。因此,软叉区块链中的所有区块都遵循旧的一致性规则集和新的一致性规则集。
例如,块大小(每个块中保存的数据量)的更改可以通过软分叉来实现。如果只想接受小于某个大小的块,只需拒绝较大的块。
然而,事实上,符合旧规则集的节点生成的块会违反新规则集,因此很可能随着新节点的增加而过时。这是因为为了让“软叉”发挥作用,人们会认识到并实施一套新的共识规则。如果达到这个比例,旧的区块链将被淘汰,新的区块链将被认定为“真正的”区块链。
可以看出,硬分岔和软分岔的持续性取决于规则变化的性质和资源的相对配置。但分岔本身带来的创新突破将有助于区块链技术的发展。
文章标题:破坏或升级区块链是不可避免的吗?
文章链接:https://www.btchangqing.cn/102904.html
更新时间:2020年09月13日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。