跳转到正文
buybitcoinsmart

术语表 /协议与升级

矿工激活的软分叉

又称 MASF。

矿工激活的软分叉是什么?
矿工激活的软分叉是指,当已挖出区块中的绝大多数为其发出信号时即告启动,它以区块版本字段作为投票,由每个节点自动计数。

规定于 BIP-9。

矿工并不是在判断一项规则好不好。他们是在宣告:当足够多的矿工已准备好执行该规则时,规则收紧不会使诚实的工作成为孤块。按 BIP-9,门槛是一个难度周期内2,016个区块中的1,916个,即95%,每个周期都从零重新计数,直至达标。

运作方式

信号沿用了每个区块头中已有的字段,因此无需新的消息类型或登记机制。

最初的方法随 BIP-34于2013年引入,只是提高区块版本号并向前回溯计数:当最近1,000个区块中有950个带有更高版本时,该规则即成为强制规则,在此之前有一个750/1,000的阶段,期间它只约束声明支持该规则的区块。这一方法可行,但各版本必须严格按顺序部署,因此两项提案无法同时推进。

BIP-9以29个相互独立的比特位取代了计数器。每项提案占用一个比特位并设定开始时间,矿工在其挖出的区块中设置该比特位,每个节点在整整2,016个区块的难度周期内统计该比特位。达到门槛后,部署进入锁定状态,并在整整一个周期之后开始强制执行,让尚未升级的用户大约多出两周时间。从未达到门槛的部署会在超时时到期,该比特位随之释放,可供再次使用。

有两种变体在历史上很重要。BIP-91将整个流程压缩为336个区块中的80%,以便尽快使 SegWit 信号成为强制要求;它在2017年7月20日于区块476,768锁定,并在2017年7月23日于区块477,120开始强制执行。Speedy Trial 随 Bitcoin Core 0.21.1于2021年5月1日发布,保留了 BIP-9的计数方式,但将门槛降至2,016个区块中的1,815个,将尝试期限定在约三个月,并通过预先确定最低激活高度,把锁定与激活分开。

在哪里会遇到它

区块浏览器会显示版本字段,通常是八位十六进制数值;在部署进行期间,它们会显示哪个比特位已被设置。版本以0x20 开头,表示该区块确实在使用版本位;低位比特才是各项单独的信号。

信号还会在 coinbase 交易中留下更直观的痕迹,矿池会在其中写入自由文本。字符串 "/P2SH/" 标记了2012年对 pay to script hash 的支持,"NYA" 则标记了2017年的《纽约协议》。该字段只是装饰而非协议的一部分,但争论往往最先在这里显现。

对持有比特币的人来说,从信号比例中要看清的是它不是什么。它不是公投,不按持有量加权,矿池为某个比特位发出信号,所代表的是他人租给它的算力。一项规则可以达到95%却仍不受欢迎,也可以在没有任何矿工支持的情况下由用户强制执行。

矿工激活的软分叉 vs 用户激活的软分叉

两者回答的是不同的问题。矿工激活的软分叉问的是强制执行应何时开始,由算力决定日期。用户激活的软分叉则先确定日期,由矿工选择遵从,否则其区块会被拒绝。2017年两种方式同时摆在桌面上,关键在于先后顺序:矿工路线已停滞数月,用户强制执行的截止日期随后被排定,而在该截止日期变得可信之后的几周内,矿工路线便告完成。

请勿混淆

常见问题

矿工会对比特币的规则投票吗?

不会。信号报告的是矿工已准备好执行节点软件中已经包含的某项规则,它丝毫不会改变您自己的节点所认定的有效性。矿工拒绝发出信号的规则,仍可由负责验证的用户强制执行。

95%的门槛究竟能防范什么?

防范孤块。如果相当大一部分少数算力没有执行新规则,这些矿工会继续生产被已升级节点拒绝的区块,白白浪费其工作量,并使区块链短暂分裂。较高的门槛使这种结果不太可能发生。

相关术语

协议与升级中的更多术语

阅读本页英文版