博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解区块链分叉
阅读量:6316 次
发布时间:2019-06-22

本文共 1187 字,大约阅读时间需要 3 分钟。

<font color=gray>

原文: 节选
作者: Alphonse Pace
译者: 187J3X1 
</font>

分叉的分类

矿工们可以通过故意将一些区块孤儿化(译者注:从其他节点收到但是不将它记录到主链上)来让区块链产生分叉。用户们也可以通过遵守不同的共识规则最终走向不同的分支。为了简化讨论,我们忽略第一类情况,只考虑第二类。并且约定红色规则代表旧的共识规则, 黄色规则表示新的共识规则。

不兼容型硬分叉

这种类型的分叉是最容易理解的了。在区块链发展到某个高度时,一部分用户决定实现一种和原来完全不同的共识规则。

Incompatible Hard Fork
在网络中一部分矿工决定按新的共识算法挖掘新区块,而另一部分还是按原来的规则(译者注:与原来算法完全不兼容)挖掘时,硬分叉就出现了。此时按旧规则产生的区块在遵守新规则的矿工节点不能验证通过,反之亦然。以太坊以太坊经典就是这样的一个例子。

半兼容型硬分叉

部分兼容硬分叉发生在新旧两套规则有部分重叠(橙色),但有部分又独立的情形

Semi-Compatible Hard Forks
此时,矿工可以按橙色规则挖掘新区块以避免区块链产生分叉。然而,一旦一个矿工挖掘出了一个红色区块或者一个黄色区块,区块链就出现了分叉点(译注:因为采用另一套规则的节点不会承认这个区块)。注意,该分叉点有可能消除,什么时候呢?就是一个橙色区块被挖出,替代了这个红色或者黄色区块(译注:即使分叉点之后还有区块也有可能如此,举例来说,假设区块难度更高的区块会成为主链区块,只要这个橙色区块的难度超过了分叉点之后的红橙/黄橙链,那么红橙/黄橙链上的区块都会被孤儿化,但实际上,这种可能性并不高,而且这样的分叉消除并不能阻止下次分叉)

兼容型硬分叉

如果新规则是旧规则的扩充(译注:采用旧规则产生的区块完全被采用新规则的节点承认,反之不行),那么称这种分叉为兼容型硬分叉。

Compatible Hard Fork

当有一个矿工挖出一个图中黄色规则的区块(译注:不被采用旧规则的节点承认),那么就开始了区块分叉。这种分叉会只要黄色区块链的工作量多过橙色区块链,这种分叉才成立。否则,还是存在一种可能性,就是橙色区块链的工作量多过黄色区块链,黄色区块链久会被孤儿化,分叉久失败了。所以采用黄色规则的节点一开始并不能确认分叉成功,只有当经过多个区块确认后,才能说分叉成功了。比特币XT、比特币经典(classic)和比特币无限(unlimited)便是这种例子.

软分叉

与兼容型硬分叉的规则扩大正好相反,软分叉的定义是规则紧缩,即新规则完全时旧规则的子集(黄色圈在红色圈里面,重叠部分表现为橙色)

soft fork

红色区块被挖掘出来吼,分叉便开始了。采用旧规则的用户识别红色规则下的区块,采用新规则的用户识别橙色规则下的区块。当矿工的大多数hash算力都按橙色规则挖矿时,红色链变被孤儿化了。这种分叉在比特币的历史上发生过多次,比如BIP66,CSV,CLTC和 SegWit软分叉。


转载地址:http://fyuaa.baihongyu.com/

你可能感兴趣的文章
css定位概述
查看>>
segment
查看>>
Linux信号 编程
查看>>
Box2D自定义重力
查看>>
python购物车
查看>>
面试/编程
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
iOS横竖屏
查看>>
thinkphp判断更新是否成功
查看>>
Do While ... Loop 与 Do Until ... Loop 的区别
查看>>
【Linux】查询某个字符串出现次数
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
冲刺第一周第三天
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>
IIS 发布网站遇到的问题
查看>>
NuGet学习笔记(2)——使用图形化界面打包自己的类库
查看>>
xcode中没有autoSizing的设置
查看>>
字符编码
查看>>
企业应用:应用层查询接口设计
查看>>