Stephen Pair是BitPay的首席执行官。BitPay是比特币区块链行业顶尖的支付技术供应商,同时还有一款同名钱包。BitPay还负责Bitcore和Copay这两大开源项目的研发工作。
近期,有关比特币硬分叉的讨论逐渐升温,我认为目前是分享我个人意见的最佳时机。这并不是一个全新的概念。很多人都已经开始讨论类似观点,但我想最好还是和大家分享一下完整的内容:主要是对比特币进行一次谨慎、安全并且不具有争议性的更新过程。一旦这一过程能够完成,对比特币社区来说绝对是一项重大成就。
我看好比特币的其中一个原因是它目前面临着大量的扩容以及管理挑战,这是其它数字货币数年后都不会遇到的问题(或许永远不会)。市场对比特币的需求为我们创造了应对这些挑战的机会。我们当中的很多人已经开始以此为生。比特币也不再是一场实验。
我很有信心,我们最终能够解决这些问题,比特币也能因此获益。比特币将经历不可估量的发展以及普及过程。但这并不代表着我们可以什么都不做,就能得到最想要的结果。过程是很艰难的。需要耐心和毅力。而且你必须收敛自己的锋芒,承认自己的错误。当然这不代表我现在说的都是错的……我只是说将来有可能会犯错。;)
我们面临的最大挑战就是,如何成功在安全、谨慎以及不具争议性的情况下升级比特币。我们必须升级比特币,因为没有任何一个系统能够依靠其废弃产品继续生存下去。我将在文章中描述一种可行的方法。我会尽量解释清楚,让不太了解比特币区块链的人也能读懂。
任何新的共识规则都能以附加数据(哈希)的形式被部署到比特币区块中,然后将这些数据传播到网络节点中,接着节点会根据规则验证这项数据。如果数据验证失败,节点就不会进行传播。不包含新规则的节点将忽视这些额外的数据,矿工也会做出同样的回应。
到了某一时刻,大部分网络节点都会验证通过新规则,矿工就会开始挖符合新规则的区块。一旦大多数区块都满足新的规则,节点就会开始拒绝条件不符的区块。这就是软分叉执行的基本过程。
我们可以把这类数据看成是二级区块。二级区块能够包含所有需要的数据,并且容量没有限制。
经过了原理分析,现在我们来说说安全升级比特币的步骤。希望你们在读完这篇文章之后可以明白,硬分叉绝对不能存在任何争议。硬分叉是很无聊的,在执行过程中你甚至可以先去看一场电影,或许我们应该称它们为“简单的分叉”。
在下述3个阶段中,首先应该保证新的共识规则的部署是以软分叉的方式进行的。
第一步:网络的接受
在这一步骤中,节点将开始升级并支持新规则。节点会验证和传播能够纳入二级区块(可以把它当成是新的交易形式,不过它可以是任意类型的数据)的有效数据。根据新规则的设定,节点不会传播无效数据。
不过,它们会接受不存在二级区块数据或者包含无效二级区块数据的比特币区块。传统的比特币共识规则和数据形式不受节点影响,忽视新规则的节点也根本不会在意多余的哈希。矿工不会太在意这一步,参与或者不参与都要看他们自己的选择。
第二步:矿工的接受
在网络普遍接受新规则之后,矿工就可以开始启动激活过程了。这一过程或多或少和BIP-9软分叉类似。首先,矿工创建执行新规则的区块,但他们还是会承认遵循传统规则但在新规则中已经无效的区块。直到达到特定的阈值,矿工和节点就会开始拒绝与新规则不符的区块。
然后,新规则就彻底生效了。首先要记住,二级区块能够接受并部署几乎所有新的共识规则。你可以在这类区块中放入14G的数据,还能启用新的签名算法,或者直接支付给矿工10亿个新的比特币作为奖励(严格意义上来说这些是“二级比特币”)。上述情景完全可以用可选择的、自愿的并且没有分歧的软分叉完成。矿工和矿池会决定这些额外数据以及验证过程带来的网络负担是否能够产生相应的经济效益。如果他们能够因此获利,那么他们就会执行新的规则。
必须记住,矿工有可能会接受并执行不明智的方案。没关系,市场会决定新的共识规则是否有价值。一开始,矿工可能很喜欢这种方案:每挖出一个区块就能收到十亿个新比特币做奖励,接着他们就会在二级区块执行规则。然而,一旦他们意识到自己依靠的二级区块价值不大,他们就会达成共识,不再在二级区块中浪费时间。这一过程可以被视为一个有序的失活过程(虽然并不是完全有必要经历这一过程)。
最后,二级区块不会取代主区块的功能。可能永远只是二级区块。当矿工发行执行二级区块规则有利可图时,他们一定会付诸行动。我们可以在二级区块中做各种疯狂的事,但我们的主要目的还是升级主区块。顺便提一句,我们不应该称这一过程为“软分叉”,因为这根本不算分叉。
在第二阶段,我们会执行第二次软分叉,具体方法和第一阶段完全一致。但这次不是为了引入新的共识规则,而是为了弃用旧区块。假设新的二级区块能够承载旧区块同等级别的负荷,我们就可以直接停止旧区块中的交易。至于一些年代久远的节点就直接表现为空块(但到了这个时候,基本上所有节点都已经升级完毕了)。
软分叉弃用初始区块之后,所有的交易和数据就会出现在新的二级区块中。到了这个时候,我们就可以计划一次硬分叉,直接丢弃旧区块并接纳二级区块为主区块架构。任何无法及时升级的节点都不再有效。但这些节点还是会收到大量的消息,提醒他们进行更新和升级。
移除旧的、未使用的数据结构就是最安全的、不受争议的硬分叉。这也可能是比特币需要的唯一一种硬分叉可能。我们还可以用这种方法来去除比特币的“废弃产品”——也就是技术债务。
来源:巴比特资讯
本文仅代表作者本人观点,不代表火币网立场。
对于比特币的扩容方案,你怎么看?
安全可信赖的数字货币交易平台
每日资讯·实时行情·互动讨论