Stephen Pair是BitPay的首席执行官。BitPay是比特币区块链行业顶尖的支付技术供应商,同时还有一款同名钱包。BitPay还负责Bitcore和Copay这两大开源项目的研发工作。

近期,有关比特币硬分叉的讨论逐渐升温,我认为目前是分享我个人意见的最佳时机。这并不是一个全新的概念。很多人都已经开始讨论类似观点,但?#34433;?#26368;好还是和大家分享一下完整的内容:主要是对比特币进行一次谨慎、安全并且不具有争议性的更新过程。一旦这一过程能够完成,对比特币社区来说绝对是一项重大成就。

我看好比特币的其中一个原因是它目前面临着大量的扩容以及管理挑战,这是其它数字货币数年后都不会遇到的问题(或许永远不会)。市场对比特币的需求为我们创造了应对这些挑战的机会。我们当中的很多人已经开始?#28304;?#20026;生。比特币也不再是一场实验。

我很?#34892;?#24515;,我们最终能够解决这些问题,比特币也能因此获益。比特币将经历不可估量的发展以及普及过程。但这并不代表着我们可以什么都不做,就能得到最想要的结果。过程是很艰难的。需要耐心和毅力。而且你必须收敛自己的锋芒,承认自己的错误。?#27604;?#36825;不代表?#34433;?#22312;说的都是错的……我只是说将来有可能会犯错。;)


那么,问题出在哪里?


我们面临的最大挑战就是,如何成功在安全、谨慎以及不具争议性的情况下升级比特币。我们必须升级比特币,因为没有任何一个系统能够依靠其废弃产品继续生存下去。我将在文章中描述一种可行的方法。?#19968;?#23613;量解释清楚,让不太了解比特币区块链的人也能读懂。

任何新的共识规则都能以附加数据(哈希)的?#38382;?#34987;部署到比特币区块中,然后将这些数据传播到网络节点中,接着节点会根据规则验证这项数据。如果数据验证失败,节点就不会进行传播。不包含新规则的节点将忽视这些额外的数据,矿工?#19981;?#20570;出同样的回应。

到了某一时刻,大部分网络节点都会验证通过新规则,矿工就会开始挖符合新规则的区块。一旦大多数区块都满足新的规则,节点就会开始拒绝条件不符的区块。这就是软分叉执行的基本过程。

我们可以把这类数据看成是二级区块。二级区块能够包含所?#34892;?#35201;的数据,并且容量没有限制。


安全,不具争议的硬分叉


经过了原理分析,现在我们来说说安全升级比特币的步骤。希望你们在读完这篇文章之后可以明白,硬分叉绝对不能存在任何争议。硬分叉是很无聊的,在执行过?#35752;心?#29978;?#37327;?#20197;先去看一场电影,或许我们应该称它们为“简单的分叉”。


第一阶段:软分叉接受新规则


在下述3个阶段中,首先应该保证新的共识规则的部署是以软分叉的方式进行的。

第一步?#21644;?#32476;的接受

在这一步骤中,节点将开始升级并支持新规则。节点会验证和传播能够纳入二级区块(可以把它当成是新的交易?#38382;劍还?#23427;可以是?#25105;?#31867;型的数据)的?#34892;?#25968;据。根据新规则的设定,节点不会传播无效数据。?#36824;?#23427;们会接受不存在二级区块数据或者包含无效二级区块数据的比特币区块。传统的比特币共识规则和数据?#38382;?#19981;受节点影响,忽?#26377;?#35268;则的节点也根本不会在意多余的哈希。矿工不会太在意这一步,参与或者不参与都要看他们自己的选择。

第二步:矿工的接受

在网络普遍接受新规则之后,矿工就可以开始启动激活过程了。这一过程或多或少和BIP-9软分叉类似。首先,矿工创建执行新规则的区块,但他们还是会承认遵循传统规则但在新规则中已经无效的区块。直到达到特定的阈值,矿工和节点就会开始拒绝与新规则不符的区块。

然后,新规则就彻底生效了。首先要记住,二级区块能够接受并部署?#36127;?#25152;?#34892;?#30340;共识规则。你可以在这类区块中放入14G的数据,还能启用新的签名算法,或者直接支付给矿工10亿个新的比特币作为奖励(严格意义上来说这些是“二级比特币?#20445;?#19978;述情景完全可以用可选择的、自愿的并且没有分歧的软分叉完成。矿工和矿池会决定这些额外数据以及验证过程带来的网络负担是否能够产生相应的经济效益。如果他们能够因此获利,那?#27492;?#20204;就会执行新的规则。

必须记住,矿工有可能会接受并执行不明智的方案。?#36824;?#31995;,市场会决定新的共识规则是否有价值。一开始,矿工可能很?#19981;?#36825;种方案?#22909;?#25366;出一个区块就能收到十亿个新比特币做奖励,接着他们就会在二级区块执行规则。然而,一旦他们意识到自己依靠的二级区块价值不大,他们就会达成共识,不再在二级区块中浪费时间。这一过程可以被视为一个?#34892;?#30340;失活过程(虽然并不是完全有必要经历这一过程)。

最后,二级区块不会取代主区块的功能。可能永远只是二级区块。当矿工发行执行二级区块规则有利可图时,他们一定会付诸行动。我们可以在二级区块中做各种疯狂的事,但我们的主要目的还是升级主区块。顺便提一句,我们不应该称这一过程为“软分叉?#20445;?#22240;为这根本不算分叉。


第二阶段:弃用


在第二阶段,我们会执行第二次软分叉,具体方法和第一阶段完全一?#38534;?#20294;这次不是为了引入新的共识规则,而是为?#20284;?#29992;旧区块。假设新的二级区块能够?#24615;?#26087;区块同等级别的负荷,我们就可以直接停止旧区块中的交易。至于一些年代久远的节点就直接表现为空块(但到了这个时候,基本上所有节点都已经升级完毕了)。


第三阶段:一次无聊的硬分叉


软分叉弃用初始区块之后,所有的交易和数据就会出现在新的二级区块中。到了这个时候,我们就可以计划一次硬分叉,直接丢弃旧区块并接纳二级区块为主区块架构。任何无法及时升级的节点都不再?#34892;А?#20294;这些节点还是会收到大量的消息,提醒他们进行更新和升级。

移除旧的、未使用的数据结构就是最安全的、不受争议的硬分叉。这也可能是比特币需要的唯一一种硬分叉可能。我们还可以用这种方法来去除比特币的“废弃产品”——也就是技术债务。

发文时比特币标?#25216;?#26684; 买价:¥7611.00 卖价:¥7505.00

原文:https://medium.com/@spair/a-better-way-to-upgrade-bitcoin-ce5c51a2426f#.vbk0objj1
作者:Stephen Pair
编译:Wendy
稿源(译):巴比特资讯()
版权声明: