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

转载自:

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.