EIP-6046 提议把 SELFDESTRUCT 改名为 DEACTIVATE:不再删除任何存储键,而是把账户 nonce 设到顶格 2 的 64 次方减 1 作为停用标记,余额照常转给目标地址,此后调用这个账户直接成功并返回空数据。它同时把普通 nonce 增长上限改到 2 的 64 次方减 2,让顶格值成为专用墓碑。本文拆解这套停用语义、复活规则的连锁后果,以及它与存储清理路线的分歧。
汇总与「Stagnant提案」相关的文章,帮助你系统了解该主题。
EIP-6046 提议把 SELFDESTRUCT 改名为 DEACTIVATE:不再删除任何存储键,而是把账户 nonce 设到顶格 2 的 64 次方减 1 作为停用标记,余额照常转给目标地址,此后调用这个账户直接成功并返回空数据。它同时把普通 nonce 增长上限改到 2 的 64 次方减 2,让顶格值成为专用墓碑。本文拆解这套停用语义、复活规则的连锁后果,以及它与存储清理路线的分歧。
为每个用户部署一个代码完全相同的智能账户,最贵的一块是把同一份代码搬上链的数据费:一万个字节就要按每字节 200 Gas 付出两百万 Gas。EIP-5478 的 CREATE2COPY 允许新建合约时引用一个已有合约,代码逐字一致才放行,数据费替换成一次 EXTCODEHASH 式的访问费,冷 2600、热 100。本文拆解这笔账怎么省、失败怎么罚,以及它和 0xf6 号操作码槽的其他认领者的关系。
EIP-6189 提出把合约变成别名合约:账户 nonce 等于 2 的 64 次方减 1、代码只有 0x1 一个字节的合约,会把所有调用自动转发到其零号存储槽里登记的地址,调用者地址保持不变。它依赖 EIP-6188 预留的 nonce 顶格值,与 Verkle 兼容的 SELFDESTRUCT 提案配套。本文拆解别名合约的判定条件、转发与路径压缩规则、Gas 计费,以及这条从未激活的路线为什么停在 Stagnant。
EIP-2997 提议一条 IMPERSONATECALL 操作码:合约调用目标时让被调方看到一个由调用者地址和盐值推导出来的假想主地址,CALLER 返回的是假想地址,转账也从假想账户出钱。地址推导套用 CREATE2 的公式但构造了不可能相撞的镜像。本文拆解这条 2020 年老提案的规格、价值与危险面,以及它和同槽提案 3074 的分野。
CALLCODE 从创世第一天就在 EVM 里,却因为设计目标落空而几乎从未被使用——它想同时借用别人的代码花自己的仓库,这个需求很快被 DELEGATECALL 更准确地实现。EIP-2488 提议让 CALLCODE 从某个区块起永远返回失败而非直接成为无效指令,给历史合约留一个可捕获的台阶。本文拆解这条退役路线的技术账、原文里自曝未验的兼容性声明,以及它与 EIP-7 的交接关系。