2015 年的比特币扩容讨论几乎只在争论一个数字:上限该从 1MB 提到多少。Pieter Wuille 在当年 7 月 21 日领号的 BIP-103 换了一个提问方式:与其争论现在多大合适,不如承认可预测的技术增长,把上限变成一个随时间变化的函数。提案最终关闭,函数从未上线,但把这份文档当作一次「如果按它执行会发生什么」的完整演习,信息量比任何一个具体数字都大。
时间函数的形状
规范部分给出的算法短得出奇。区块大小上限不再是常量,而是一个函数的输出,函数的自变量是前一个区块往前的中位时间戳(前 11 个块的中位数)。起点设在 2017 年 1 月 1 日,在此之前维持 1000000 字节;之后每经过 2 的 23 次方秒——约 97 天——走一个台阶,每个台阶乘一个 2 的十六分之一次方的因子,也就是单步约 4.4%,年化约 17.7%。台阶序号除 16 的商充当移位因子,配合一张 16 项的基数表,纯整数运算就能算出任何时刻的上限。提案原文还顺手规定签名操作数量限制按同一比例放大。按这条曲线,第一档到 1044274 字节,走完 175 个台阶后封顶于 11 次翻倍附近——上限约 2GB 量级,对应 2063 年前后。

为什么让时间当参数
动机章节把理由摊开。硬分叉是极强的工具,能根本改变系统的技术或经济属性,也可能辜负那些预期规则不变的人,所以只应留给无争议的变更;而区块大小之争恰恰争议多年,正面硬分叉风险大。让增长提前一年半才起步、每一步只动 4.4%,是为了把一次剧烈的制度变迁摊薄成一系列近乎无聊的参数演化——如果届时发现增长超出技术能承受,作者也明说了意图:到时候用软分叉收紧即可。
选时间戳而不是区块高度或难度,有三个工程理由:时间检查实现最简单、需要的上下文最少、可审性最高;取中位时间戳是因为按既有共识规则它必须单调递增,函数天然单调;用「前一个块的中位时间」意味着每个块的上限在被挖出之前就已可预知,不依赖该块自己声明的时间戳——矿工时钟的两小时游戏空间因此碰不到这个函数。
藏在动机部分的世界观
这份提案最有史料价值的是它对扩容哲学的自白。作者明说比特币的长期优势不在可扩展性:设计良好的中心化系统在费用、速度、可靠性上本可以碾压链上交易;比特币的力量在透明、低信任。因此长期方案应该致力于降低链下系统所需的信任,而不是把链上规模凌驾于一切之上;单纯为经济恐惧而拖延的「踢罐子」式增长不被认可。它还提醒:有效的空间永远受算力多数处理能力约束,任何放松上限的硬分叉都不保证满足任何具体需求,费率市场的形成反而是健康的信号。
一笔算术
用基数表心算一下:从 2017 年起每年大约 3.76 个台阶,第一年结束约 1.177 倍,即 117.7 万字节;十年复合约 5.4 倍,逼近 540 万字节;再往后不到十年触到 175 台阶的帽子。与带宽的历史年均增速对照,这正是作者称「与近年带宽增长一致」的数字来源——带宽是他点名的瓶颈。
快速问答
问:BIP-103 和 BIP-101 的指数方案有何区别? 答:101 按区块高度翻倍、节奏更激进;103 用中位时间驱动、单步只有 4.4% 并封顶 11 次翻倍,节奏设计明显更保守。
问:它为什么关闭? 答:作为 2015 至 2017 年系列扩容提案之一,它未获得部署所需的共识整合,路线最终走向隔离见证加其他层方案。
问:中位时间戳被矿工小幅操控会影响函数吗? 答:11 个块取中位的设计使小幅操控在单调性约束下几乎无累积效应。
常见误区
一是把「上限自动增长」误读为「区块自动变大」——函数只给天花板,实际体积仍由矿工组块与费率需求决定;二是忽略它同时放大 sigop 限制的细节,把体积增长与校验成本增长割裂;三是把这份 2015 年的文档当作现行规则,现行共识里区块上限仍是权重制,与本文的函数无关。
风险提示:本文回顾历史提案的机制设计,不构成投资建议;现行规则请以当期客户端共识代码为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。