快捷搜索:

BTC应该包含在主根升级中。你会选择多少种不一样的方法?

Taproot是一个旨在提升 BTC 隐私性及灵活性的拟议协议升级,现在该策略正处于开发的后期阶段,比特币 Core的贡献者一致觉得,Taproot升级将使得 BTC 受益,截至现在,该策略好像也遭到了更广泛的 BTC 生态的欢迎。因此,Taproot非常可能会被纳入比特币 Core协议,而其它 BTC 建议也会会随之推出。但仍有一个问题: BTC 互联网应该怎么样进行升级?Taproot是共识协议层的一个改变,这意味着 BTC 节点需要以某种方法从旧规则切换到新规则,并且要防止互联网的分裂。因为各种缘由,这在过去被觉得是一个挑战。现在, BTC 开发者们正在考虑改进激活协议升级的方案。
好消息是Taproot的推行会是一次软分岔。这类型的升级增加或收紧了规则,而硬分叉则是删除或放松规则。添加或收紧规则有哪些好处是,升级节点觉得有效的任何内容,在非升级节点看来也会是有效的。(假如旧节点同时同意事务类A和B,但新规则只允许事务类A,则旧节点将在达成新规则的互联网上维持兼容。) BTC 最早的软分叉是通过截止日(flag days)机制激活的。开发者(尤其是中本聪)在一个新的 BTC 软件推广客户端的代码中嵌入了一个将来日期,指定了升级后的节点将实行新规则的时间点。矿工和用户被鼓励在此日期之前升级,以防止互联网分裂。(注:在那个年代,矿工和用户常常重叠,这与今天不同)因为未升级的节点仍然与新规则兼容,因此软分叉的一个好处是,假如大多数算力强制升级,整个 BTC 互联网会就其区块链版本达成协议。这也意味着,在推行新的协议规则时,无需立即升级所有节点,从而允许用户具备肯定的灵活性。自2012年左右以来,软分叉已愈加多地借助算力作为协调机制,以协调向新规则的转换。通过在区块中嵌入一些数据,矿工可以向其它矿工和互联网的其余部分发出信号,告知他们已升级软件的信息,从而筹备好推行新的规则。一旦有足够的算力信号支持,所有升级的节点都会被触发以实行新规则。经过几次升级,这一策略演变成BIP 9( BTC 改进建议)。比如,BIP 9就是用来激活 BTC 上一次隔离见证(SegWit)软分叉升级的机制。矿工们有一年的时间来启动升级,需要在任何困难程度区间内95%的区块都包含就绪信号位。假如一年后没发生这样的情况,激活期就会过期,升级就会失败。(当然,可以容易地再试一次)然而,对于隔离见证(SegWit)来讲,BIP 9的运行并不顺利。与以前的某些升级一样,有的矿工可能因为漠不关心而在一段时间内没进行升级(一般没太大的动力促进矿工迅速升级)。但一个更大的问题是,一些矿工已开始将这一信号传递过程理解为对升级的投票,而不是发出筹备就绪的信号,而是投票决定是不是支持升级。更糟糕的是,一些矿工最后借助这一“投票权”阻止升级,以试图在 BTC 开发过程中获得政治影响力,或者他们可“投票”反对升级,以暗中获益。经过长期的激烈争吵,隔离见证(SegWit)最后确实激活了,但只有在其他 BTC 推广客户端包含新的激活策略之后。一些用户运行的BIP 148推广客户端中包含的BIP 148,被编程为仅同意截止日(flag day)后支持协议升级的区块。同时,btc1推广客户端中包含的BIP 91,有效地将算力需要从95%减少到75%。面对潜在的互联网分裂和可能的收入损失状况,一直在阻挠的矿工们让步了。但对于大部分比特币 Core开发者来讲,BIP 9已暴露出它是一个次优的解决方法,因此,开发者们已开始考虑替代策略。

BIP 8是BIP 9的早期替代策略,它是由BIP 148的作者Shainfry和比特币 Knots,与比特币 Core贡献者Luke-jr提出的,它刚开始与BIP 9相似,但重要有什么区别在于:一年后若算力支持不足,升级并不会因此失败,它会做完全相反的事情,即在那个时间点激活软分叉。与截止日(flag day)类似,所有升级的节点将从那时起开始推行新规则。而那些仍未能升级的矿工,其挖取的区块,将冒着被升级的矿工和用户拒绝的风险。bip9背后的主要思想是,假设用户升级,矿工没办法阻止软叉,因此他们没办法借助这种投票权。它们可以加速激活并帮协调协议的顺利升级,但即便它们自己不激活升级,升级最后还是会发生的。BIP 8的最新草案,包含了一些显著的变化。第一,当信号期马上到期时,BIP 8允许为节点配置两种不一样的方案:如前两段所述,强制激活,或者像BIP 9一样不强制激活。除此之外,节点(假如如此配置的话)事实上并没激活升级本身,而是为升级发出信号。而不表示支持升级的区块,将被拒绝。这两个变化的结合有一个有趣的特质,即假如 BTC 算力的大多数都被迫发出信号支持升级,即便没配置为强制实行信号的BIP 8节点也将随升级一块进行。反对BIP 8及其强制信号(或自动激活)的一个论点是,它可能会有风险,特别是在较短的时间内。假如算力占多数,且至少有部分用户不升级,则该策略会导致升级节点互联网和未升级节点互联网分裂。假设大部分用户支持升级,这可能最后会有益于互联网的升级部分。但在此期间,未升级的用户将面临资金损失的风险,而未升级的矿工将浪费掉算力,从而有损 BTC 的安全性。最好的方法是提供足够的时间进行升级。不幸的是,每一个人对时间的长度怎么看是不一样的,一些人觉得强制信号可能在一年内开始,另一些人则觉得需要几年时间。BIP 8存在的另一个复杂问题是,设置强制信号的默认值。假如在默认状况下关闭强制信号,用户可能会发现自己不协调,从而增加互联网分裂的风险。另一方面,假如在比特币 Core推广客户端中,强制信号被选为默认设置,则历史上广泛使用的比特币 Core事实上就保证了升级将会发生。一些人觉得,这会使比特币 Core开发者对 BTC 的协议规则产生太大的影响。出于这个缘由,BIP 8的合著者Luke-jr倾向于通过特殊的推广客户端专门部署带有强制信号的BIP 8,像BIP 148推广客户端。另一些人则觉得,比特币 Core开发者一直会依据我们的最好判断发布软件,同时牢记用户需要并防止有争议的升级,设置BIP 8默认值也不例外。假如有人不认可比特币 Core开发职员的最后选择,他们可选择不升级到新版本,甚至分叉比特币 Core代码,以推出角逐版推广客户端。

虽然比特币 Core开发者确实会考虑用户需要,并尝试防止有争议的升级,但并非所有人都相信这是可能的。或许在这次发布之后,会出现全新的问题。或者,比特币 Core开发者可能遗漏了一些东西。这就是为何比特币 Core贡献者Matt Corallo提出了一项被叫做“现代软分叉激活”方案是什么原因。现代软分叉激活包括三个步骤,它基本上达成了BIP 9(或没强制信号的BIP 8)和带有截止日激活的BIP 8的组合(尽管强制信号可能是一种选择)。作为第一步,BIP 9将允许矿工通过算力激活软分叉。假如矿工们在一年内没激活它,第一个激活窗口就会过期。然后,作为第二步,开发者们需要一些时间来剖析激活失败是什么原因,假如他们确实发现了问题,就重新考虑这个建议。但,假如他们发现策略没问题,则第三步是重新部署软分叉,这一次用BIP8和flag day激活:矿工们有另一次机会用算力激活策略,但假如他们第三失败,软分叉将在第二个信号周期结束时激活。(比特币 Core贡献者AJ Towns表示,在第二个信号周期内,算力激活阈值也会伴随时间的推移渐渐减少)Corallo相信,假如建议没错的话,这种策略将提供BIP9有哪些好处,而不会带来负面影响。假如矿工想,他们可以协调一次平稳的升级,并且没强制激活,假如激活刚开始失败,开发者可以花时间重新考虑建议。同时,因为没充分的原因,矿工从阻止升级中获得的收益要少得多,由于大家都知道,升级最后仍将继续进行。反对现代软叉激活的主要论点是,假如没矿工的合作,这个过程将花费相对较长的时间,有的人觉得BIP 9步骤完全是在费时。Corallo刚开始的建议,包含1年的BIP 9信号,与随后6个月的重新考虑期,最后是在自动激活前2年的BIP 8信号期,也就是说,总共有3年半的时间。虽然这个时间表尚未确定,但将不同步骤缩短太多,会降低重新考虑或升级的时间(即会增加互联网分裂的风险)。因为距离潜在的强制激活还有很久,一些人觉得,矿工终究可以尝试获得一些政治权力,他们可以将升级推迟数年的时间。

另一个近期被提出来的建议,或许最好被描述为BIP 8和现代软分叉激活的一个组合,至少在精神上是如此的。这项不具名的建议,将部署一个非常长的BIP 8信号周期,可能与现代软分叉激活的三年半时间一样长,之后强制触发信号。然而,假如一年后升级还没启动,开发者将需要一些时间重新考虑这个建议,就像他们用现代软分叉激活一样。假如开发者发现该提案没问题,并判定该提案只不过因为矿工的漠不关心或其他无效缘由而没激活,则他们可以选择部署隔离见证(SegWit)激活期间用的BIP 91风格的新软分叉。这或有效地减少激活的算力阈值,从而可能加快过程。另一方面,假如开发职员最后发现提案是有问题的,他们可以部署一个新的软分叉来解决问题,甚至完全撤销原来的软分叉(这里是指Taproot)。假设现代软分叉激活在强制信号发出之前有三年半的时间线,那样应该有足够的时间来处置这个问题。反对这一建议的主要论点可能是,部署软分叉(假如需要)来撤消另一次软分叉是有争议的。更具体地说,它需要矿工和用户在截止日期之前升级到新版本,不然就有分裂互联网的风险。

最后,比特币 Core贡献者Jeremy Rubin提出,他创造了一个名为概率 BTC 软分叉(或称“Sporks”)的定义,这可能比典的算力强制软分叉更具勉励相容性。Rubin觉得,BIP 9 的核心问题在于,矿工可以在不付出代价的状况下推迟升级,这可能会给他们带来政治权力。而在Sporks策略中,就绪信号不再是来自矿工在其挖矿的区块中包含的一点数据,而是来自区块头哈希:它们通过投入时间和资源而随机生成的工作量证明。升级后的节点会赞同,有效区块头算力的一小部分(统计上每六个月左右才能找到一次)将触发升级。依据哈希的随机性,矿工将没办法控制他是生成常规区块头哈希,还是升级激活区块头哈希。从统计意义上讲,他只不过偶尔生成一个区块头哈希。所以,假如他投入的资源碰巧生成了一个升级激活区块头哈希,那样他有两个选择。要么将其发布到 BTC 互联网,获得区块奖励,并激活软分叉。或者,在大家的示例中,因为不发布而将软分叉平均延迟了大约六个月……但如此做也意味着矿工放弃了区块奖励,也就是说,推迟升级将付出巨大的代价。现在,Sporks的主要问题,可能在于它是一个相对较新的想法,尚未有可用的代码,更不需要说测试了。尽管有的人确实觉得这一定义非常有趣,但它并非激活Taproot的有力角逐者。本文链接:https://www.8btc.com/article/625597
转载请注明文章来源

您可能还会对下面的文章感兴趣: