[转载]谈谈软分叉升级规范BIP8-后矿工时代的软分叉方式
February 9th, 2022

转载自:

https://panzhibiao.com/2019/02/11/bip8/

之前说过软分叉升级规范BIP9,BIP9可以说是经过良好设计的软分叉升级方案,可同时进行多个分叉的升级并且流程也很科学合理。

BIP9

简单回顾一下BIP9的主要特性:

  1. 95%的高投票阈值,块投票必须达到95%以上的支持率才能进入锁定期,然后触发激活。
  2. 设定了投票时间窗口,有起始、终止时间,在窗口期内未激活的软分叉只能终止或者重新设定发起新一轮投票。
  3. 块时间采用相邻11个块的块中位数时间。

BIP9截止到当前(2019年02月)共使用过两次:

  1. CSV(BIP68, BIP112, and BIP113)
  2. SegWit(BIP141, BIP143, and BIP147)

在CSV软分叉中进展一切正常,但SegWit软分叉中却在投票阶段延迟了大半年,块投票一直无法达到95%的激活阈值,以至于后来出现了BIP148(即UASF,user-activated soft fork)和BIP91。SegWit在BIP9中设定的时间区间是:2016年11月15日~2017年11月15日。

这里我们稍微说一下BIP148和BIP91,只有理解了这个过程才能理解为何会有BIP8(这些事情其实已经发生挺久了,2017年中,快两年前的事情了)。值得一提的是,BIP148和BIP91的代码,从来没有进入Bitcoin Core版本的代码库。

BIP148

BIP148,更熟悉的名称是UASF,目的是强制性进行激活SegWit:若块时间处于2017年08月01日与2017年11月15日,且SegWit尚未激活或没有进入锁定期,则直接拒绝不支持SegWit投票的块。BIP148通过用户自行更新代码,下载Bitcoin Core的代码然后打补丁的方式,来声明和实施。

UASF是非常激进的升级方式,直接抛开了矿工算力的投票,不管算力是否投票支持SegWit,这些UASF全节点到时候会直接抛弃掉非SegWit的块。这在当时还非常认可矿工和算力的时代,对于矿工和算力来说简直是晴天霹雳:直接撇开了!

当然,很多交易所对这一事件进行了预演:假设分叉会发生,并上市了推演分叉后的两个币种期货,把价格交给市场去判断。

BIP91

BIP91,目的是也是激活SegWit,通过降低SegWit激活阈值至80%来间接完成,其自身采用类似BIP9的方式进行部署:

  1. 激活时间区间是:2017年06月1日 ~ 2017年11月15日。
  2. 块时间窗口非常短,不再是BIP9中的2016个块,而是336个块,大约2.33天。
  3. 激活阈值为80%,不再是BIP9的95%。

BIP148(UASF)直接撇开矿工由全节点直接激活,而BIP91依然把选择权给了矿工:通过块投票进行激活。最终,由UASF主导的强大社区压力下,BIP91很快通过80%的块投票阈值进入锁定并激活了。BIP91一旦激活,则意味着后面的块必须进行支持SegWit投票,间接促成了SegWit通过95%的块投票阈值并锁定激活了。

以上即是SegWit激活受阻大半年后,UASF&BIP91间接促成SegWit激活的历史过程。

BIP8

BIP8是在BIP9基础之上的改进:

  1. 采用更加精确的块高度窗口代替块时间窗口,消除了块时间的不稳定性。
  2. 统计周期依然是与BIP9一致的2016个块。
  3. 几乎不再有失败的状态,除非编码之初设定的高度已经是过去高度。
  4. 设立激活起始块高度,一旦当前高度大于起始块高度,则开始计算是否激活。起始块高度必须超过当前高度4320个块,约30天。
  5. 设立截止块高度,无论投票是否通过,都在截止块高度达到时进行强制激活。截止高度通常是起始高度的52416块之后,约一年。
  6. 在抵达截止块高度前,若投票超过阈值,阈值与BIP9一致为95%,则提前进入锁定期并随之激活。
BIP8 States
BIP8 States

总结,如果某个软分叉遵循BIP8激活机制的话,一旦部署了,那么矿工可以进行投票提前激活,或者在一年后的截止高度抵达时自动激活。

BIP8的主要意义

  1. 取消了矿工的否决权:要么投票主动提前激活,要么不投票被动等抵达截止高度自动激活。
    • Vote转变成Signal。
    • 算力大小是价格高低的结果,严格来说是链的法币日产量决定算力规模。
    • 价格由市场供需决定,体现为共识主导价格。
  2. 社区的决策机制发生了根本性改变:从小圈子投票变成了一定程度上的普选。
    • 无论是算力投票还是持币投票,由于存在中间代理层(例如矿池、交易所、钱包等),均无法避免最终沦为一定程度上的小圈子投票。
    • 一个全节点即一张选票,全节点构成最广泛的共识。
    • 全节点一方面制约着算力,另一方面也制约代码。无论是矿霸还是码霸,均无法强制约束全节点的行为。

后记

从中本聪白皮书时代以来,大多数人坚信着“One CPU One Vote”的民主观念,在经历了2017的SegWit激活历程后,其中还硬分叉诞生了Bitcoin Cash(BCH),终于得到脱胎换骨的革新。大家发现只有全节点才是最终的堡垒和武器,运行全节点是平等自由的互联网所赋予的谁也剥夺不了的权利。


参考

Newer

Older

Subscribe to Bitcoin fix this
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from Bitcoin fix this

Skeleton

Skeleton

Skeleton