2016 年提交的 BIP-99 做了一件被长期忽略的事:给「分叉」这个词建立一套分类学。作者 Jorge Timón 区分了意外的共识分叉(实现 bug 导致)与计划的共识分叉,给出软分叉与硬分叉的定义,并按迁移成本、兼容性、时机与治理四个轴给出选择部署方式的框架,还拿 2013 年 3 月的意外分叉与分币提议两个案例做对照。这份提案没有成为规则,但理解它比背下两种分叉的名词解释更接近真实工程处境。
汇总与「提案考古」相关的文章,帮助你系统了解该主题。
2016 年提交的 BIP-99 做了一件被长期忽略的事:给「分叉」这个词建立一套分类学。作者 Jorge Timón 区分了意外的共识分叉(实现 bug 导致)与计划的共识分叉,给出软分叉与硬分叉的定义,并按迁移成本、兼容性、时机与治理四个轴给出选择部署方式的框架,还拿 2013 年 3 月的意外分叉与分币提议两个案例做对照。这份提案没有成为规则,但理解它比背下两种分叉的名词解释更接近真实工程处境。
很多人以为一份 BIP 一旦通过就代表全社区拍板,2025 年部署的 BIP-3 把这种误读写进了规则:它明确说仓库不追踪社区情绪也不统计采用率,每份提案只是作者的私人建议。这份由 Murch 起草、取代 BIP-2 的流程提案,砍掉了编辑角色里大量主观判断,引入副作者(Deputy)制度,并给提案正文规定了从摘要到变更日志的固定骨架。本文按原文逐段拆解它的四个关键改动,以及为什么流程文件本身反而是理解整个 BIP 仓库的钥匙。
私钥泄露的普通钱包地址没有「改密码」一说——EVM 里没有把旧钥匙踢出局的机制。2022 年 3 月的 EIP-5003 给这件事写过一把锤子:新指令 AUTHUSURP,让一份通过 EIP-3074 授权的代码直接部署进签名者本人的地址,配合 EIP-3607 冻结有码账户的发送权,原私钥从此对交易发送失效。它被标记为 Superseded by EIP-7702 而撤回,但「原地改造存量账户」的思路在 7702 里以委托形式复活。
以太坊每个区块的 Gas 上限是全网唯一的、由出块者单方面选择的共识参数,每块最多只能按上一块的千分之一点零二四缓步增减。2021 年 3 月的 EIP-3382 提出更激进的方案:直接把上限硬编码为一千两百五十万,出块者失去选择权。提案作者 Philippe Castonguay 的论点是——协议处处假设出块者自利而非善良,唯独这个参数假设了善良。提案最终撤回,作者转向了思路相反的同题材 EIP-3756。
一份已经定稿的标准被后续提案修订时,旧文档里该留下什么线索?EIP-2458 在 2020 年初提议给处于活跃状态的提案增设 updates 与 updated-by 两个头部字段,让修订关系双向可查,与取代已定稿提案时用的 replaces 与 superseded-by 配对成一套完整的提案族谱语法。这份信息类提案最终撤回,但「文档之间要有引用血缘」的实践早已渗透进 EIP 仓库的日常:requires、replaces、superseded-by 的用法规范,正是沿着它的思路演化。
以太坊该不该从区块奖励里切一块养核心研发,争论了多年。2019 年的 EIP-1890 给了一个罕见的设计:在协议里加入受益地址和每块资助额两个常量,同时把两者都设成零——机制就位、金额为零、实际经济不变,只留一份「将来动真格时要走提案」的可信承诺。这份由 Chainsafe、Gitcoin 与以太坊基金会人士共同起草的提案随伊斯坦布尔分叉实现了参考代码,最终撤回。它留下的问题是协议治理的经典母题:公共物品谁来出钱。
EVM 给合约调用设了 256 层深度上限,攻击者可以先用递归调用垫深栈底、再触发目标合约,让它的内部调用恰好撞上天花板而静默失败。2015 年底提出的 EIP-3 想让合约亲手摸到这个问题:新增 CALLDEPTH 指令返回剩余可用深度,把「栈攻击」防御从昂贵的实验性试跑变成一条廉价指令。提案最终撤回,但浅栈攻击作为合约安全教科书条目活了下来,防御手法也演化出别的形态。
2017 年围绕比特币区块大小上限的争吵产生过大量提案,BIP-104 是其中思路最「去政治化」的一份:像难度调整一样,每 2016 个块根据过去两周的平均区块填充率自动重算上限,目标把区块维持在七成满。提案给出公式、激活门槛与被否掉的备选方案,最终随规模之争降温而关闭。这份提案的价值在于它把「上限该多大」翻译成「上限该按什么规律变」。
BIP-18 是 2012 年 P2SH 路线之争里最特别的一份:它不新增操作码,而是宣布 scriptSig 与 scriptPubKey 过时,改用 dataSig、scriptCheck、hashScriptCheck 三件套重述同一件事,还顺手给签名操作定下了按前缀计数的防滥用规则。这份提案标记为 Complete,却没有以文本原样部署——最终上线的 BIP-16 在协议层与它内容几乎一致。这篇讲清它改了什么、账怎么记,以及为什么名字之争也值得写进历史。
今天比特币的脚本哈希地址来自 BIP-16 那条路线,但在 2012 年初,Luke Dashjr 的 BIP-17 一度是最被看好的实现:不新增指令语义,直接把闲置的 OP_NOP2 重定义为 OP_CHECKHASHVERIFY,花销时把真脚本塞进解锁脚本、用一个 OP_CODESEPARATOR 划出待哈希的边界。这份提案最终关闭未部署,但它留下的哈希边界思路、向后兼容处理和矿工字符串投票设计,都是理解比特币脚本升级史的重要切片。