专栏名称: 闪电HSL
读书分享
目录
相关文章推荐
巴比特资讯  ·  微软论文意外「走光」,OpenAI参数全泄密 ... ·  4 天前  
巴比特资讯  ·  全面打破GPT-4垄断、DeepSeek打下 ... ·  4 天前  
51好读  ›  专栏  ›  闪电HSL

分析软分叉和硬分叉分裂比特币的风险

闪电HSL  · 公众号  · 比特币  · 2017-06-08 22:44

正文

0 引言

软分叉一样有分裂比特币区块链的风险,社区一贯认为的硬分叉才有分裂的风险是错的,因为UASF让我看清了事实。让我们认真来分析下硬分叉和软分叉的风险。

 

1 硬分叉和软分叉的定义

硬分叉和软分叉都是比特币协议升级的部署方式。

比特币协议不作更改时,即绝大多数时间里比特币系统运行时,所有节点追随最长链。请记住这一条规则,这是所有节点都应当遵守的规则,除非最长链在节点看来是包含了非法的区块。

硬分叉是指协议规则放宽。这样新规则部署后,如果有节点没有升级,针对新的规则的区块未升级的节点会认定其为非法。这个时候,旧节点就会放弃追随这条包含非法规则的链,哪怕它是最长链也一样会放弃。这种情况下,未升级的节点就会主动分裂出去。

软分叉是指协议规则收紧。这样新规则部署后,新规则是旧规则的一个子集,未升级的节点并不会认为新规则的区块是非法的。所以简单想,软分叉不升级的节点并不会主动分裂出去,并且依然追随最长链规则。

但软分叉也有可能会造成区块链分裂。只要加上追随最长链这个规则就可以想明白。

 

2 软分叉如何造成比特币区块链分裂

能造成比特币区块链分裂的因素就是共识失败,所谓的共识第一是所有节点认可的区块规则,第二条就是追随最长链。

如果所有节点对规则达成了共识,那就追随最长链,如果有两个矿工节点挖出相同的区块,那就看接下来谁是处在最长链了,这就是孤块的原理。如果对规则达不成共识,则节点会无视和自己共识不相同的最长链。

软分叉是规则收紧,即新规则是旧规则的子集。所以未升级的节点会视已经升级的节点打包的区块是合法的区块。但已升级的节点却会视未升级的节点打包的区块是非法的区块。所以未升级的节点继续坚持最长链原则,但已经升级的节点则会无视未升级的节点是否是最长链。

如果已经升级的节点的算力更大,那未升级的节点打包出的区块会因为它们追随最长链而被孤立。但如果是已经升级的节点的算力更小呢?结局就是已经升级的节点会独立挖一条链而分裂出去。

软分叉造成区块链分裂的风险主要是升级过程中支持的算力过小。只要执行软分叉的算力不占有绝对的优势,无法使用追随最长链规则孤立掉不升级的算力打包的区块,那就会分裂。

这和硬分叉造成分裂的风险是一样的。因为从原理上,硬分叉中不升级的节点就是对已经升级的节点发起的一次软分叉(规则收紧)。

避免硬分叉和软分叉造成分裂的办法也都是一样——使用更大的算力阈值才允许部署。考虑到出块幸运值的原因,至少要75%算力才可以保持安全。

 

3 软分叉和硬分叉风险

谎言说多了,相信的人就多了。现在绝大多数人都相信软分叉比硬分叉更安全,其实这句话是不对的。

要想清楚这一点,我们需要知道区块重组的概念。

重组就是区块链出现分裂后,在分裂点后,两条链看区块高度对比,我们称为短链和长链。如果短链在接下来的出块过程竟然形成了比长链更长,那长链上的算力将有可能会回到短链来挖矿,并且长链将抛弃掉分裂点到重组点的所有区块。

重组的风险是在规则更宽的那一侧。软分叉造成的分裂,重组就在原链上。硬分叉造成的分裂,重组是在发起分叉的这一侧。

这个过程类似于孤块。但孤块往往只有一个块,重组有可能孤立掉多个区块。

软分叉无论多小的算力都是可以成功发起对比特币的分裂,并且因为分裂出去本身是没有重组的风险,但分裂的另一侧则有重组的风险。

而因为硬分叉的重组风险在于发起分叉的这一侧,硬分叉除非你有绝对的算力优势,否则发起分叉就时刻有重组的风险。

从博弈论来讲,软分叉的发起方占优势,因为重组风险在于原链;而硬分叉的发起方处于劣势,因为重组的风险在自己。

 

3 结束语

这只是一个开头,接下来我会对比特币协议升级过程——包括硬分叉、软分叉、UASF——的风险做一个全面的分析。



(如果您觉得好,欢迎关注我的公众号: 闪电HSL,也欢迎加我微信号:13116885)