2016年,以太坊在主网区块一百一十五万处执行了第一次计划内硬分叉,代号家园。EIP-2 列出了这次升级的行为改动:合约创建交易涨价、高 s 值签名作废、创建失败不再留下空合约、难度公式换算法。本文逐条讲清这四处改动各堵住了什么洞,以及为什么第一块补丁选择从交易签名和创建成本下手。
汇总与「提案历史」相关的文章,帮助你系统了解该主题。
2016年,以太坊在主网区块一百一十五万处执行了第一次计划内硬分叉,代号家园。EIP-2 列出了这次升级的行为改动:合约创建交易涨价、高 s 值签名作废、创建失败不再留下空合约、难度公式换算法。本文逐条讲清这四处改动各堵住了什么洞,以及为什么第一块补丁选择从交易签名和创建成本下手。
2015年,Vitalik 写过一份比以太坊本身更早一步的提案:EIP-101 想把以太从账户字段里拿出来,放进零号地址的一个合约,让余额、签名算法、防重放计数全部变成可编程对象。这份 Serenity 货币与密码抽象提案停在 Stagnant,但它预设的很多问题——账户抽象、可替换签名、代币同质化——正是后来 ERC-4337 时代的主线。本文按提案原文讲清这个激进设计长什么样。
以太坊的 EXP 指令按指数的字节数收费,但2016年实测发现它被低估了四到八倍,攻击者能用低代价的交易让全网节点算得筋疲力尽。EIP-160 在 Spurious Dragon 分叉里把每字节的附加费从十 Gas 提到五十 Gas。本文借这条冷门提案讲清:虚拟机指令的定价为什么是一份需要重估的账,以及算术型拒绝服务攻击的算盘是怎么打的。
2021年3月,一份提案想给以太坊的挖矿算法打一小针疫苗:把ethash里到处使用的FNV哈希常数一拆五,让已出货的ASIC矿机瞬间算错。EIP-3372是2017年EIP-969路线的复活版,最终停在Stagnant,几个月后合并终结了整场算法军备竞赛。本文讲清五个素数各替换了哪一步、为什么改常数就能废掉专用芯片,以及这条抗ASIC路线的真实战绩。
以太坊给带转账的合约调用留了一小笔保底燃料2300 Gas,让收币方的fallback代码至少能跑几行。对2018年已大量铺开的代理合约来说,这笔零头不够记账和转发。EIP-1285提议把它抬到3500,最终停在Stagnant。本文讲清2300保底的由来、它为什么刻意这么小、加高为什么有阻力,以及这场零头预算之争折射的防御哲学。
函数调用完只为了返回,这次调用就白搭了一层登记。EIP-6206 给以太坊对象格式加了一条 JUMPF 指令:跳到另一个代码段执行,但不登记返回地址,等于告诉机器'这段代码替我收尾,不用再回来'。配合'永不返回'的函数声明,编译器可以把错误处理公共段写得既省又干净。这份2022年底的提案停在Stagnant。本文讲清它的机械原理和省钱的账。
BLOCKHASH指令只答得出一笔调用前256个区块内的哈希,且每个客户端都得自带一套查历史哈希的代码。EIP-210在2017年提议把区块哈希搬进地址0xf0处的一个状态合约:每块由系统调用代写一笔,指令改成调用合约查询,顺带把可查范围从256块拉长到几乎无限。这份由Vitalik起草的提案停在Stagnant,但它想消掉的实现负担,2025年的EIP-2935用另一条路真的消掉了。本文讲清蓝图本身与两次尝试的差别。
以太坊的区块头里有一个叫withdrawals_root的字段,有趣的是执行层和共识层说的不是同一个东西:一边是Merkle Patricia树的根,一边是SSZ序列化算出的根,同名二物。EIP-6465在2023年2月提议统一为SSZ:提款列表改用渐进容器编码,执行层区块头的提款根从MPT迁移到SSZ。这份提案停在草稿。本文讲清这个命名分裂怎么形成、两种编码差在哪、以及为什么要费这个劲去合并。
以太坊改进提案里引用的外部文献,不是想引谁就引谁。EIP-5757在2022年9月定下规矩:被引用的发布方必须能让每一版资源被唯一指认、有可靠的可得性履历、且访问不收费,不达标就从白名单除名。这份由仓库编辑者起草的Meta提案状态Final。本文讲清一个开源标准为什么要把'链接质量'当规范问题管起来,以及三条硬要求各防什么。