完整的比特币共识分叉史

摘要:本文列出了我们认为的比特币史上几乎所有的重大分叉事件,共19个比特币共识规则更改(或者说是18个,因为有一个偶发的“失败”分叉)。在这些事件中,至少有三次分叉引起了区块链分裂,分别于2010年、2013年和2015年,持续了51、24和6个区块。

术语表

注:这些术语最早于2012年4月提出,并在BIP99和BIP123里正式确定下来。

比特币共识分叉列表

信息来源:BitMEX Research、Github、Bitcoin Blockchain

注:

1.除了1 MB区块限制,在2012年BIP16软分叉之前还没有激活使用的升级方法,因此,如果顺利进行分叉,而又没有产生区块链分裂,不一定会有特定的区块高度,或是发生共识分叉的特定日期。

2.“如果你现在无法升级到版本0.3.6,建议你在升级成功之前关闭比特币节点。”——中本聪

3.在移除OP_VER之前,每次软件升级都有可能被认为是非确定性的硬分叉,这些硬分叉并不包含在这个列表里。尽管硬分叉的定义将其包括在内,但是这过分拘泥于细节的定义。

4.上文的表格没有一致性的定义,因为举例来说,分叉日期的定义不同,更多是与各个事件有关,这要视情况而定。

5.有人还提到,如果他们由于不能再连接网络,使之前的软件版本无法使用,那么P2P协议更改也可以视为硬分叉。但是,严格来说,这些更改并没有放宽有效区块的规则。这些更改不会列在上面的表格上。

6.有些人认为BIP90是一项硬分叉,但是,由于它只是放宽了过去的激活软分叉相关的规则,它并不具备通常与共识分叉相关的很多特点或是风险。

7. 2010年7月,区块链的选举规则改成了积累的最大挖矿难度。从技术上来说,这不是对区块有效性的规则更改,但是这项更改确实存在某些与共识规则更改相同的风险。

2013事件是硬分叉吗?

我们认为,总的来说,2013年3月11日后的几个月,增加DBD锁定限制是一个硬分叉。这项有问题的规则是,增加了10000万个DBD锁定限制。这项规则在2013年5月15日软件版本0.8.1中被放宽了,而该软件版本于2013年3月18日发布。最终在2013年8月17日挖出了一个超过这个限制的区块。因此,这次硬分叉的日期,要么是2013年5月15日,要么是2013年8月16日,这取决于你如何定义它。

虽然出于各种各样的原因,有些人认为这不是一个硬分叉,这些原因包括这项规则“算作是非确定性的”,或者说BDB配置设置是可以手动更改的。确实,由于锁定限制的非确定性的特性,理论上,通过本地系统设置,BDB锁定限制决不会被打破。因此,有人可能会称,“这不是一个比特币硬分叉”,因为在严格的定义里,硬分叉必须是确定性的,甚至是要与比特币数据例如交易或区块头直接关联的。

谈论到这一事件时,比特币开发者Gregory Maxwell是这么说的:

这里有点混杂,实际上你可以接受一个预BIP-50节点,并完全同步区块链,几个月前我用版本0.3.24这么操作过。当涉及到大区块的时候,这样处理reorgs是不可靠的,除非你对BDB config也进行更改。因此,这是否为一个硬分叉也是有争议的,因为它算作是非确定性的。有些bug之前作了修补,旧版本可能会受阻并停止同步之前的区块链……因此,我认为,根据已有的创建区块链的明确定义:新的区块链违反旧版本执行的规则,我们并没有进行硬分叉。

来源:https://bitcointalk.org/index.php?topic=702755.msg8116032#msg8116032

2015年的区块链分裂事件

在上面的共识规则列表中,有三个事件引发了区块链分裂。最近的一次发生于2015年7月4日,在BIP66软分叉升级期间。

BIP66激活之后,立即产生了一条有6个区块的孤链,因为有些矿池不验证新的区块,矿工生产的无效区块,这些矿池并不认为是无效的。

在这种情况下,有些矿工信号支持BIP66软分叉,但是实际上并没有升级节点进行验证,我们将这些矿工称之为“假旗行动”。如果矿工验证了区块,他们应该已经发现区块是无效的,并拒绝接受,但是有些矿工仍在无效的区块上挖矿,这时区块链分裂就产生了。

下图演示了这6个区块和区块链分裂:

来源:Blockchain.info (http://archive.is/WqGRp,http://archive.is/LHlF7)

声明

虽然文中引用了很多声明,但是我们不保证其准确性。我们可能也存在错误或是遗漏了其他的共识规则更改。我们欢迎大家指正。

本文发表之后,Bitcoin Wiki上发布了另一个共识版本的汇总表格。

更新时间:2017年12月29日

分类:研究

原文作者:

BITMEX RESEARCH 12. 28. 2017

本文来自企鹅号 - 闪电HSL媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华仔的技术笔记

ugChain技术测评

3935
来自专栏申龙斌的程序人生

以太坊代币取出到imtoken钱包

最近半个月币圈发生了许多事,“I吸O”一刀切、交易所全关,真是币圈一周人间一年。还有一些坚定地活在未来的人们恶补区块链知识,开始忙着把一些token拼命地往钱包...

1.1K9
来自专栏WindCoder

Time-locked Wallets:一个以太坊智能合约的教程

本次推荐的是一篇关于通过以太坊了解区块链的教程,能力有限,本身没接触过,各位尽量看原文吧。

3622
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–资产会计(162)-8 ABNAN后资本化

4.5.2 ABNAN后资本化 后资本化是指对固定资产的购置和生产成本 (APC)进行后续更正。例如:如果您在正结算的会计年度中忘记将与资产购置或装配有关的费用...

3367
来自专栏汇智网教程

原 区块链是什么?彻底理解只需40行pyt

尽管有人认为区块链目前还是个不成熟的解决方案,但它无疑称得上是计算机发展历史上 的一个奇迹。但是,到底区块链是什么呢? 我们将通过动手实现一个迷你的区块链来帮你...

2899
来自专栏区块链大本营

大年初二已憋不住想写代码的心!来来来教你仅用15分钟在以太坊编写一个区块链Web应用

3307
来自专栏区块链大本营

《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了

ConsenSys产品经理认为,区块链新手和经验丰富的区块链开发人员,需要共享工具、开发模式和组件。

1683
来自专栏区块链中本聪

区块链技术分布式数据库解决隐私

​ 主链侧链开发数字货币交易所白皮书区块链浏览器跨境支付场内场外宠物挖矿游戏基金会牌照 181-4069-6008 微信电话同号

1463

内部区块链的优缺点

我经常转发与银行或大型企业实施的区块链实验有关的新闻,并提出这样的疑问:”他们为什么会在这种内部场景使用区块链呢?“

4547
来自专栏极客编程

以太坊如何估计估算计算gas?

以太坊如何估计估算计算gas?Etherscan上transaction info中有个gas used by txn,结果跟remix给的结果以及geth中g...

1601

扫码关注云+社区

领取腾讯云代金券