2015 年的比特币正处在扩容争论的起点:区块开始装不下交易,手续费抬头,而协议里写死了一个一兆字节的硬上限。围绕怎么改这个数字,那一年涌现了一批编号相邻的提案,BIP-100 是其中最机械的一种:把静态上限换成一个会呼吸的值,由矿工的 coinbase 投票按难度调整的节奏定期校准。这份由 Jeff Garzik、Tom Harding 与 Dagur Valberg Johannsson 在 2015 年 6 月 11 日领号的提案,最终状态停在 Closed,但它把动态区块上限设计成一道可以照着写代码的算法题,值得逐段读完。
投票规则:把难度调整的骨架搬到区块大小上
BIP-100 的核心机制几乎是难度调整的复刻。调整周期同样是 2016 个块,与难度重定向同步发生。每个矿工在自己区块的 coinbase scriptSig 里写入一个形如 /BIP100/B8/ 的字符串,意思是投票把硬上限设为八百万字节;如果块里没有这个模式,节点退回去找 emergent consensus 风格的下限串;两者都没有或者数值为零,这笔票就按当前硬上限计。多个模式并存时只认第一个匹配。
每个周期结束时,节点把过去 2016 个块的投票排序。上调看第 1512 高的投票——恰好是四分之三位置;下调看第 1512 低的投票。两个方向各有一道百分之五的钳制:算出的新值与当前值差距一律被压回正负百分之五以内,且只有真正越过当前值才生效。缺票算成维持现状,沉默天然偏向保守。这套结构保证所有实现的计票器对着同一段历史算出同一个数。

一笔算术:百分之五复利一年能走多远
按 2016 块约两周折算,一年有二十四个调整窗口。如果每个窗口都把百分之五用满,上限理论上一年可以推高到三倍多;反向不投票的世界里,一年也留了同样的收缩空间。上限初始值定为 1000000 字节,恰好等于当时的静态限制,提案因此可以声称:在一个没人投票的世界,它与现状逐字节一致。调节器只有被使用才会移动,这是它区别于预设增长曲线提案的关键。
护栏与兼容:签名配额随体积伸缩,旧节点会被第一块大区块切走
BIP-100 没有只动上限一个数。每块签名哈希操作配额沿用每五十字节一元的老比例,按实际块体积向上取整到整兆折算,一兆对应约两万次,两兆就约四万次;同时给单笔交易的序列化体积设了一百万字节的天花板,防止上限抬高后被一笔巨型交易穿透。文本还建议节点公布自己正在执行的硬上限,示例写法是在 coinbase 里同时出现投票段与自报段——前半句是给 peers 的票,后半句是给观察者的声明。
硬分叉的代价写得直白:第一个超过一兆字节的块会把没升级的全验证节点直接切出网络。提案文本自带一段部署推定,声明实现的节点自 449568 块起视其为激活;而它挂出的实现链接指向比特币 XT 与比特币无限这一支客户端——主线实现从未收下这份规则,主网的字节上限也从未因此移动过一步。
快速问答
问:百分之七十五意味着投票赞成提高就会提高吗? 答:不是。它取上一周期 2016 个块里第 1512 高的投票值,再被百分之五步长钳制;少数派的激进票会被排序自动忽略,超额激进度不会累积。
问:不投票的矿工等于反对吗? 答:等于弃权偏向现状。缺票按当前硬上限计,只有足够多的块明确写出更大数字,上调才成立。
问:它和 BIP-101 那类提案差在哪? 答:BIP-101 给的是预设增长曲线,BIP-100 是持续在线的调节器——每个周期重新计票,涨得上去也跌得回来。
一条判断线
评估这类动态参数提案,可以按三段拆:信号通道(票写在哪、能否伪造)、聚合规则(分位数与窗口)、钳制规则(单步上限与缺省行为)。三段都清晰,规则才可能被不同实现算出同一个数——这也是它和 emergent consensus 的本质区别:后者的上限是各自声明的软偏好,BIP-100 想要的是一台全体节点算出同一结果的确定性机器。
常见误区
一是把 presumed deployed 读成比特币激活了扩容——那份部署推定只约束实现它的分支节点;二是把 emergent consensus 的下限串与本提案混为一谈,那只是缺票时的兜底读取;三是忘了它属于共识层的硬分叉层提案,硬上限之上不存在默认放行的灰色地带。
风险提示:本文回顾历史提案的技术设计与文本细节,不涉及任何币种的价值判断,不构成投资建议;条款以 BIPs 仓库当期原文为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。