协议演进 / BIP/比特币改进提案 / BIP-107
BIP-107
分两阶段扩容:先按时间表从 2MB 逐步升至 6MB,2020 年后转为动态——每 4032 个区块若多数区块至少六成满,上限只升 10%、永不下降。本 BIP 目前处于已关闭状态。
一、档案卡
| 编号 | BIP-107 |
|---|---|
| 标题 | Dynamic limit on the block size |
| 作者 | Washington Y. Sanchez <[email protected]> |
| 指定日期 | 2015-09-11 |
| 层级 | Consensus (hard fork)(共识(硬分叉)) |
| 类型 | Specification(规范类) |
| 状态 | Closed(已关闭) |
| 阅读版 | https://bips.dev/107 |
| 官方原文 | https://github.com/bitcoin/bips/blob/master/bip-0107.mediawiki |
二、放在哪一族
2015 年区块大小之争中的“分阶段折中”方案。它与同族提案的差别在于不押注单一机制:
BIP-101:纯时间表扩容——BIP-107 的第一阶段借用了类似的时间表思路,部署方式也明言与 BIP-101 相同
BIP-105:矿工付费投票、中位数重定,上限可升可降
BIP-106:按上一周期实际块大小(与手续费)自动升降
BIP-107:先用几年时间表当“跑道”(runway),等网络与协议基础设施、第二层服务成熟后,再切换到只升不降的动态规则
原文称第一阶段类似 Adam Back 的提案:先给一段安全的保守扩容期,再进入动态阶段。
三、它要解决什么
3.1 两个相反的担忧要同时兼顾
原文列出未来几年预期中的大额基础设施投入:改善全球网络连接、改善区块传播、第二层链下服务与网络、交易与区块链的一般效率改进。在此背景下,它摆出两个必须精细平衡的担忧:
- 扩得太猛,可能加剧网络与挖矿中心化趋势(主要由 ASIC 等挖矿硬件驱动),进而威胁网络安全;
- 对链上交易量上升不作响应,则可能造成“消费级失败”:普通用户享受了六年多低成本链上交易后,会被 prohibitive 的“手续费市场”定价挤出区块链。
开发者、矿工、企业与用户之间对“需要扩容”已有共识,分歧在后果。BIP-107 的答案是分段处理:先小步、后自动,且自动阶段只进不退、步幅极小。
四、规则本身
4.1 第一阶段:时间表(2016–2020)
- 2016–2017 年:2MB
- 2018–2019 年:4MB
- 2020 年:6MB
这段“跑道”用来在切换到动态规则之前,缓解交易量压力,同时让网络与协议基础设施改进、第二层服务出现。
4.2 第二阶段:动态上调(2020 年起)
- 每 4032 个区块(约 4 周)做一次检查(CHECK),理论上一年最多触发 13 次上调。
- 若最近至少 3025 个区块达到或超过 60% 满,则最大区块大小提高 10%。
- 上限只能提高,永不下降。
- 默认的
limitfreerelay也按最大区块大小提高的比例同步提高:无手续费交易可继续按常态提交与中继;这一参数也有助于抵消用“便士洪泛”(penny-flooding)触发扩容的尝试。
原文的算例:动态规则于 2020 年 1 月 1 日上线时,上限为 6MB;若至少 3025 个区块达到 3.6MB(即 60%),新上限变为 6.6MB;若 13 次上调在年内全部触发,2020 年底的理论最大上限约为 20.7MB。
4.3 为什么是 60%、3025 块、10%
- 60%:2013 年 9 月至 2015 年间,平均块大小的标准差约为 0.13MB(上限的 13%)。若要 90% 满才触发,正常波动就会让有些块在上调前先撞上上限;60% 相当于距上限约 3 个标准差的“安全距离”。定得太低则触发太灵敏,易受垃圾交易或矿工合谋影响。
- 3025 块:检查期为 4032 块(约 4 周),门槛取其中约四分之三再加一。只有持续趋势才算数——既要证明是市场驱动的长期交易量上升,也要抬高用垃圾交易或零费率合谋触发上调的成本。
- 10%:单次步幅刻意保守,与每年最多 13 次机会相平衡;攻击者为换取一次小幅上调要付出的资源代价相对昂贵,且持续攻击理应能被社区察觉。
4.4 部署
部署模型与 BIP-101 相同,原文引述其条款:当最佳链上连续 1000 个区块中有 750 个的版本号置起了第 1、2、3、30 位(十六进制 0x20000007)时达成激活;激活时间为第 750 个区块的时间戳再加两周(1,209,600 秒)宽限期,让剩余矿工与服务有时间升级以支持更大的区块。
五、谁必须动
普通持币人:无直接操作;变化是网络可打包区块的上限。
钱包开发者:原文未提出钱包侧专门改动;无手续费交易的中继规则随 limitfreerelay 比例变化,属节点策略层面。
全节点与矿工:这是硬分叉级改动。节点须按阶段执行上限、做 4032 块周期的满载检查并拒绝超限区块;矿工须参与版本位信号以触发部署。
共识层:上限先是写死的日历时间表,2020 年后变为由链上满载程度驱动、单调不减的变量。不升级的节点在出现更大区块时会与新链分叉。
六、现在算不算数,以及一个常见误读
状态为 Closed(已关闭)。它没有在比特币主网激活:第一阶段写明的 2016–2020 年时间表并未按此执行。它留下的档案价值,是把同族争论中“定时扩容”与“需求驱动扩容”缝成了一个先后衔接的折中方案,并给每个参数都留下了统计理由。
常见误读:
“BIP-107 是一份无限扩容的提案,区块会涨到 20MB 以上。”
不对。20.7MB 只是原文算例中“一年内 13 次上调全部触发”时的理论值,而每次触发都要求约 4 周内至少 3025 个区块持续达到六成满——为的是只响应真实、持续的需求。而且与 BIP-105、BIP-106 不同,它的上限只升不降,这也是它被批评或被支持时应分清的一点。
七、延伸
- 阅读版:https://bips.dev/107
- 官方原文:https://github.com/bitcoin/bips/blob/master/bip-0107.mediawiki
- 相关:BIP-101 提高区块大小上限、BIP-105 基于共识的重定目标算法、BIP-106 动态调控上限、BIP-109 2MB 上限
- 仓库总目录:https://github.com/bitcoin/bips
