一步到位的两兆字节:BIP-102 的一次性扩容提案为什么也没走通 图 1
一步到位的两兆字节:BIP-102 的一次性扩容提案为什么也没走通 · 图 1

在 BIP-100 用动态调节器做加法的三周后,同一位作者 Jeff Garzik 又交了一份截然不同的号:BIP-102 不谈投票曲线,只要求把区块数据上限从一兆字节一次性抬到 2000000 字节。这份 2015 年 6 月 23 日领号的提案同样停在 Closed,但它短得像一个时间胶囊,把当年扩容派最直白的诉求、以及一次硬分叉打算怎么点火,全都写在几页纸里。

一条极简规格

提案正文的规范部分只有四条。区块总数据量上限 MAX_BLOCK_SIZE 在触发点升到 2,000,000 字节;签名哈希操作配额按同比例放大,维持每五十字节一元配比的旧公式;触发条件是必须同时满足的两条——一个选定日期的零点,加上最近 1000 个区块里 95% 的块表态支持;除此之外什么都不动。

动机部分原文更短:第一,延续当前的经济政策,让费用与区块空间的市场不出现扰动;第二,演练一次硬分叉网络升级。第二条尤其坦率——它把先练一次手当成提案自身的价值,这在技术提案里不多见。

一步到位的两兆字节:BIP-102 的一次性扩容提案为什么也没走通 图 2
一步到位的两兆字节:BIP-102 的一次性扩容提案为什么也没走通 · 图 2

触发器里的两个设计选择

日期加计票的双门槛,暴露了当年社区最深的分歧。纯日期触发等于多数决的倒计时:时间一到,没升级的节点被第一块两兆的区块直接甩下车——提案的兼容性一节承认旧的全验证客户端会被分区。纯投票触发则可能无限拖延,永远凑不满最后一张票。两者取交集,是折中:日期给确定性,投票给合法性。

对比后来成熟的 BIP-9 信号框架——在版本号高位埋比特位、以 2016 块的难度周期为窗口计票——BIP-102 的窗口只有 1000 块,表态的编码方式也没有在文本里标准化。这份文件写于信号格式本身还在战国时代的 2015 年,今天读它,可以看清后来那套激活流程是被什么样的问题逼出来的。

与 BIP-100 的同门对照

同一位作者三周内交出的两份提案,恰好是扩容政策的两个极端。BIP-100 是恒温器:每两周按四分之三分位数复算一次,单步百分之五,能涨能跌。BIP-102 是闸门:一步从一兆到两兆,之后再议。前者把增长交给算法,后者把增长交给下一场争论。两者的兼容代价却完全一样:第一个超过一兆字节的块都会把没升级的节点弹出主链,区别只在于这个块是渐进涨上去的还是第一天就翻倍的。

快速问答

问:BIP-102 激活过吗? 答:主网没有。提案状态为 Closed,一兆字节的字节上限在主网长期存在,直到隔离见证用权重单位重写了体积的记账方式。

问:最近一千块的 95% 表态怎么清点? 答:文本没有规定表态的具体编码,这类留白正是它没能成为操作手册的原因之一——触发规则写清了谁同意、何时生效,却没写升级如何被机器地验证。

问:后来的两兆计划是它的续集吗? 答:2017 年的 segwit2x 协议里出现过再抬两兆的约定,那是 BIP-148 一族的故事,与这份 2015 年提案只有目标数字上的巧合,不是同一份文件的两次部署。

一条判断线

看一次扩容提案是否成熟,可以数它写没写清四件事:改哪个常量、如何表态、计票窗口与编码、失败与回退路径。BIP-102 只完整回答了第一件,另外三件都含糊——这也解释了为什么当年的争论最后都烧在流程与政治层面,而不是算术层面。

常见误区

一是把 2,000,000 字节当成 2MiB,提案用的是十进制的两百万,这在边界块上不是小事;二是把它与 BIP-100、BIP-101 等兄弟提案混作一谈,它们目标数字相似,触发与治理结构完全不同;三是把演练升级读成没有真实诉求——原文两条动机并列,经济理由写在先。

风险提示:本文讨论历史扩容提案,不构成对任何资产前景的判断或投资建议;规格条款以 BIPs 仓库当期原文为准。