跳转到正文
buybitcoinsmart

术语表 /协议与升级

版本位

版本位是什么?
版本位(version bits)将区块头中32位的版本字段视为一排相互独立的开关,使矿工能够同时为多个软分叉发出支持信号。

规定于 BIP-9。

一个版本位对应一个待定的软分叉,并在固定的区块窗口内统计。BIP-9提供第0位至第28位,当2,016个区块的周期内有1,916个区块设置了某个部署对应的位时,该部署即被锁定;否则在超时后失败,建议的超时时间为一年。读取这些信号,您就能提前数月得知钱包所需的某项功能是否正在成为网络规则。

运作方式

版本位以五状态机的方式运行,每个节点针对其已知的每个部署,在每个难度调整周期自行计算一次。

这些状态为 DEFINED、STARTED、LOCKED_IN、ACTIVE 和 FAILED。2,016个区块的难度调整周期内,所有区块共享同一状态,因此状态转换只能发生在2,016的整数倍高度上。当前一区块的中位时间(median time past)超过配置的起始时间时,部署由 DEFINED 转为 STARTED;中位时间是指一个区块及其前十个区块的时间戳的中位数。

进入 STARTED 后,节点向前回溯恰好2,016个祖先区块,统计版本字段最高三位为001且该部署对应位已设置的区块。其他情况均计为零,因此采用其他版本方案的矿工不会意外发出信号。主网需要其中的1,916个,测试网需要1,512个。若在中位时间超过超时时间之前未达到该门槛,部署将永久转为 FAILED。BIP-9建议将该超时时间设在起始时间之后31,536,000秒(即一年),这样停滞的提案会释放其占用的位,而不是永远堵塞队列。

有一个细节容易让人误解。一个区块的状态从不取决于其自身的版本字段,只取决于其祖先区块的版本字段,因此矿工无法为某项规则投票并让这一票约束投出该票的区块本身。将最高三位固定为001,也使发出信号的区块版本落在0x20000000 至0x3FFFFFFF 的范围内,而将模式010和011留给日后取代版本位的任何机制。

版本位是循环使用的,而不是用完即弃。部署激活或超时后,其占用的位可以用于之后的提案,BIP-9建议在此之前先经过一段休耕期,以便先发现有缺陷的软件。该规范还要求节点跟踪自己不认识的位,并在未知部署被锁定时发出醒目警告,未升级的软件正是借此提醒您:一项它无法执行的规则即将到来。

在哪里会遇到它

比特币主网上已按 BIP-9自身的参数运行过两次部署,该 BIP 的部署列表以表格形式列出了这两次部署。

第一次名为 csv,占用第0位,起始时间为2016-05-01,到期时间为2017-05-01,在区块419,328处激活。它合并了 BIP-68、BIP-112和 BIP-113,这是 BIP-9列为会使原本有效的交易变为无效的变更中的三项。第二次名为 segwit,占用第1位,窗口自2016-11-15至2017-11-15,在区块481,824处激活,赶在了它本可能错过的截止期限之内。

这一机制在挖矿的底层环节中同样可见。BIP-9为 getblocktemplate 调用扩展了一个 rules 数组(列出已激活的部署)、一个 vbavailable 对象(将每个待定部署的名称映射到其对应的位)以及一个可选的 vbrequired 掩码(服务器要求设置的位)。矿池读取这些键来决定发出何种信号,已发布的版本也由此体现为追踪网站上的一个百分比。

版本位 vs 版本2区块

版本2区块在版本字段中携带一个计数器;版本位则在同样的四个字节中携带一个位向量。在 BIP-34之下,该字段按整数比较,因此同一时间只能有一次升级在进行,且每次成功都会永久耗尽一个有效区块本可使用的取值。BIP-9算了这笔账:在 BIP-34、BIP-66和 BIP-65之后,只剩下0x7FFFFFFB 个版本取值,这将任何位向量方案限制在30个独立部署。改为固定最高三位后,剩余的取值变成了29条可并行运行且可重复使用的通道。

请勿混淆

常见问题

区块版本0x20000000 意味着什么?

这意味着该区块没有为任何提案发出信号。BIP-9将该字段的最高三位固定为001,0x2 即由此而来,其下所有部署位均为零,因此矿工没有为任何待定软分叉投票。

两个软分叉可以使用同一个版本位吗?

不能同时使用。一个位只有在其部署已激活或已达到超时后才会空出,BIP-9建议在重新使用前先经过一段休耕期,以便在该位开始表示新含义之前发现有缺陷的软件。

版本位部署需要多长时间?

至少需要两个难度调整周期,即4,032个区块。一个完整的2,016个区块的周期内必须有1,916个区块发出信号,随后部署还要再锁定整整一个周期,规则才会生效;BIP-9建议在起始时间一年后判定该次尝试失败。

相关术语

协议与升级中的更多术语

阅读本页英文版