区块链/等级 III · 网络/3.3 共识与治理/课程 7
Taproot激活与Speedy Trial
在无需投票的情况下打破一年僵局的机制
材料带有历史数据的区块浏览器Bitcoin Core 0.21.1 版本说明一份用于标注2021年4月至11月时间线的日历
好奇
- 为什么社区能够就 Schnorr 签名达成一致,却为如何启用它争论了一年?
- 如果矿工们只能有四个月的时间来表明支持态度,而非无限期的时间,那么会发生什么变化?
- 为何 Taproot 在锁定与激活之间要等待五个月?
探索
- Taproot由BIP 340、341和342组成,引入了Schnorr签名和新的花费规则。从技术上看,该提案几乎没有遇到阻力;开发者们都认可紧凑签名和隐私改进的优点。然而,由于社区在争议不断的SegWit时代之后尚未确定如何部署软分叉,激活一直停滞。代码于2020年10月合并进Bitcoin Core,并以未激活状态随0.21.0版本(2021年1月)发布,但对于应使用BIP9信号还是用户激活机制,当时并无共识。
- 争论的焦点是“lockinontimeout”(LOT),这是BIP8的一种变体:无论矿工是否支持,节点都会在信号窗口结束时强制激活。支持者认为这可以防止矿工否决;反对者则担心,如果矿工不同意,它会迫使网络分裂,从而威胁网络稳定。这种矛盾自2017年SegWit僵局以来一直存在,当时旷日持久的谈判和UASF的威胁最终迫成了妥协。社区希望找到一种既尊重开发者意图、又尊重经济现实且不带强制性的方法。
- 由Russell O'Connor构思、David Harding于2021年3月撰文阐述的“Speedy Trial”就是这一折中方案。它修改了BIP9,采用较短的信号窗口和较高的阈值,让矿工能够迅速发出就绪信号。如果矿工未能做到,提案可以被放弃或重新考虑。这种做法避免了LOT的强制性,同时比标准BIP9更快——标准BIP9曾让SegWit在约九个月的信号期内都未能激活。其名称反映了压缩后的时间线:要么迅速激活成功,要么为未来的提案积累数据。
- Speedy Trial于2021年5月随Bitcoin Core 0.21.1版本发布。它使用第2个信号位,以过去中位时间(median time past)设定起始和超时时间,并将最低激活高度定为709,632,使钱包和服务商有数月时间做准备。信号窗口于2021年4月24日开启,2021年8月11日关闭。矿工约有三个半月的时间发出信号。如果未达到阈值,也不会自动触发UASF,从而维持现状,但同时形成了一个明确的决策节点。
- 矿工在2021年6月就锁定了Taproot,远早于8月的截止日期。迅速的信号表明矿工普遍支持。因此,Taproot于2021年11月14日在其最低激活高度——第709,632个区块激活。这标志着Speedy Trial机制取得了明确的成功:它在没有引发社区分裂或长期僵局的情况下实现了激活。批评者指出,即使信号窗口很短,矿工仍握有实际的否决权。
- 关于激活方式的争论,在covenants等后续提案中依然存在。Speedy Trial之所以适用于Taproot,是因为后者没有争议,但它是否适用于有争议的变更尚不确定。未来的开发者必须在矿工否决的风险与网络不稳定的威胁之间权衡。2021年的事件表明,当技术优势显而易见时,经济节点和矿工能够迅速达成一致,但这种一致并不能保证在更具分歧的规则变更上达成共识。
关键事实
- Taproot(BIPs 340-342)于2021年11月14日的第709,632个区块中被激活。
- Speedy Trial的信号窗口为2021年4月24日至8月11日,阈值为90%。
- Speedy Trial(由Russell O'Connor构思、David Harding于2021年3月撰文阐述)是BIP9与LOT之间的折中方案。
- Bitcoin Core 0.21.1 版本于 2021 年 5 月推出了 Speedy Trial 机制。
- Speedy Trial以过去中位时间(median time past)设定其信号窗口,最低激活高度为709,632。
- 矿工们在2021年6月就锁定了Taproot方案,远早于8月的截止日期。
练习 九、六、三、一
9收集列出9次比特币软分叉或激活尝试(例如P2SH、BIP66、CSV、SegWit、Taproot),说明各自的激活方式以及所需时间。
6归类按方式将这9次分为6类:旗日(flag day)、矿工超级多数、BIP9信号、用户激活软分叉、Speedy Trial或其他。
3提炼将这6类归纳为矿工信号与用户节点强制执行之间的3种权衡。
1凝结用一句话解释,为什么较短的截止期限比无限期的谈判更能打破僵局。
事实核查
日期、数字及数据均依据下方列出的已发表资料进行核实。
- BIP340: Schnorr Signatures for secp256k1 (P. Wuille, J. Nick & T. Ruffing)
- BIP341: Taproot: SegWit version 1 spending rules (P. Wuille, J. Nick & A. Towns)
- Bitcoin Core 0.21.1 Release Notes (May 2021)
- D. Harding, 'Speedy Trial' proposal on bitcoin-dev mailing list (March 2021)
- Optech Newsletter coverage of Taproot activation (November 2021)