上周,比特大陆(Bitmain)发布的新闻稿震惊了整个比特币领域。比特大陆在新闻稿中详细说明了一旦BIP148(UASF)的影响力扩大,他们应对这一情况的硬分叉计划。在新闻稿发布的第二天,Segwit2x就合并了一个pull request,旨在实现客户端软件与BIP91的兼容。之后,一群矿工就宣布他们从6月19号开始支持Segwit2x。
比特币扩容
在本篇文章中,我将会说明过去5天内发生的一系列事件,并且解释后续的发展状况。我希望能就BIP91的运行以及隔离见证在网络中的激活方式给读者以启示,让你们了解避免8月1号软分叉所需的要素。
比特大陆的新闻稿
我已经看过这篇新闻稿,不过看到Charlie Shrem在推特中所说的话,我才发现对于Segwit2x,我漏掉了一点:
比特大陆表示,纽约共识优先于所有硬分叉方案。比特大陆倾向于在BIP148之前激活Segwit2x(即纽约共识)。其中一个主要的原因就是Segwit2x需要隔离见证,因此,如果隔离见证在网络中锁定,BIP148就什么都做不了。
因此你理所当然就会问,Segwit2x是如何激活的?事实上,这个问题比表面上看起来的要更加棘手。
Segwit2x激活机制
纽约共识中提到:
我们同意立即支持下列的并行比特币协议升级方案,它们将同时进行部署,并且基于的是原有的隔离见证2Mb提议。
隔离见证激活阈值设为80%,并以bit 4作为信号发送方式;
在六个月内执行一次2 MB 硬分叉扩容;
除了规定“隔离见证激活阈值设为80%,并以bit 4作为信号发送方式”之外,这篇新闻稿没有谈到有关隔离见证激活的技术细节。要知道隔离见证方案,即BIP141的激活阈值是95%,信号发送方式是bit 1。这两者之间存在显著差别,因此社区就会想,两者是否能够兼容?支持Segwit2x就代表反对BIP141?
如果Segwit2x成功激活隔离见证,但运行BIP141的节点认为隔离见证没有被激活怎么办?
为了解决这类问题,James Hilliard在比特币开发者邮件列表中提出了一个巧妙的机制(有意思的是,他是在纽约共识发布之前的一天提出这个机制的)。正是这个巧妙的机制(也就是BIP91)为我们开启了故事的新篇章。
两种隔离见证激活机制的结合
BIP91巧妙地将80%的阈值转变为95%。具体的方式如下:
bit 1和bit 4信号发送方式都是可接受的。
如果336个区块中有269个区块都发送了bit 1或bit 4,BIP91就会被锁定。
再过336个区块,BIP91就能激活。
BIP91生效之后,没有发送bit 1的区块(即支持BIP141的区块)就会被网络拒绝。
最后一点听起来应该很熟悉。BIP148也是这么做的。“强制支持”之后,整条链就会100%支持BIP141(隔离见证),并且进行锁定和激活。BIP91和BIP148之间的区别就是,BIP91首先需要80%的矿工的同意。上周四,BIP91并入Segwit2x代码库,旨在确保隔离见证在激活的同时拥有80%的矿工支持。
矿工圆桌决议
中国矿工联盟在上周发布了一篇新闻稿,宣布他们将运行Segwit2x软件。鉴于这个软件尚未问世,他们不会发送bit 1或bit 4,但将在Coinbase字符串中写入“NYA”(纽约共识的缩写)标记。这些矿工代表了全网80%的算力,一旦Segwit2x软件就绪,他们应该就会发送bit 4作为信号。
对你来说意味着什么
为了避免8月1号的软分叉,需要满足的条件如下:
1. Segwit2x必须完成发布,并且掌握在矿工手中
2. 336个区块中至少有269个发送bit 1或bit 4信号(约为80%),这样才能锁定BIP91
3. 必须再过另外336个区块才能激活BIP91。之后每个区块都必须发送bit 1信号(隔离见证或BIP141)支持
如果8月1号之前上述所有条件都能满足,BIP148就什么都做不了,软分叉也不会发生。目前不太清楚的一点是,我们是否能在8月1号之前完成第二步。BIP148的支持者是否会认为这种方法“足够好”,并选择不再进行软分叉呢?或许吧,但直到目前为止,BIP148的支持者还未就这一方法表明自己的立场。如果他们能够尽早表明自己的态度,相信对每个人都是有利的。
等等,不止这些
如果你希望避免永久性的分裂(因为看起来比特币将始终处于一条链中),这算是一个积极的发展方向。但这场战争远未结束。2MB硬分叉才是更大而且更具争议性的问题,这个问题急需解决。
根据纽约共识所说,2MB硬分叉必须在6个月内激活。要用什么软件来激活2MB硬分叉?Bitcoin Core?应该不太可能,因为他们并没有在这个共识上签名。Segwit2x?或许吧,但具体要如何进行?又或者是Bitcoin Unlimited?BUIP0055已经设定了10月18号作为目标激活日期,但他们追求的区块容量大于2MB。
另外,如果Bitcoin Core以外的客户端签署了纽约共识,那么就能使用其客户端,但是代码库要怎么进行管理?Bitcoin Core开发者会参与其中吗?如果Segwit2x提出与Core融合,Core拒绝了怎么办?
上述所有问题都并未得到解答。我们仍然没有走出困境。
总结
过去的一个星期所发生的事情似乎预示了隔离见证的激活以及8月1号网络分叉不会发生。从短期来看,这是好消息。但从长期发展的问题来说,通过硬分叉来升级大区块最终是否能够顺利进行还是未知数。目前我们还不能太过乐观,还有很多场仗要打。
原文:
https://medium.com/@jimmysong/segwit2x-what-you-need-to-know-b747e6326266作者:Jimmy Song
编译:Wendy
Report to moderator