Protocoles
Ethereum EIP-8246进入最后征求意见期限,拟移除SELFDESTRUCT剩余销毁机制
提案针对SELFDESTRUCT仍会清除余额的情况。11月4日的期限并不代表最终采纳,也不代表网络已经激活变更。
张俊编辑笔名
征求意见期限不等于网络激活
EIP-8246题为“Remove SELFDESTRUCT Burn”,Ethereum官方提案登记页列出的最后征求意见期限为2026年11月4日。该文件由Paweł Bylica于5月1日创建,在本次阅读时仍显示Last Call状态。其目标是移除SELFDESTRUCT指令仍会让合约余额中的ETH消失的情况。这一文件流程节点不是部署决定:提案明确说明,实施将修改共识规则,因此需要网络升级。
范围相当有限。自EIP-6780之后,相关情况涉及在同一笔交易内创建并执行SELFDESTRUCT的合约。当合约把自身指定为受益地址,或在执行指令后、交易最终处理前又收到ETH时,余额仍可能被销毁。作者希望移除这些很少使用的特殊情况,以简化Ethereum虚拟机的实现、规范和测试。
清除合约后余额仍将保留
提议中的变更会在受益地址就是合约自身时保留余额。交易最终处理时,代码和存储将被清除,nonce重置为零,而剩余资金继续保留。余额为零的账户仍按现有规则删除。有资金的账户则可能以没有可执行代码、只有余额的形式继续存在。SELFDESTRUCT的其他行为仍遵循EIP-6780的规定。
区分程序与其承载的价值,有助于避免把删除代码和资金消失混为一谈。但这并不保证原用户能够自由取回余额。提案明确允许在后续交易中通过CREATE2在相同地址重新创建合约。因此,开发者需要检查重新部署的条件,不能假设失去代码的地址将永久不可用,或只能由一个人控制。
部分二层网络需要单独适配
文件指出,Ethereum与部分二层网络存在差异。在OP Stack中,向主层传递消息的合约利用这一销毁机制处理与提款相关的余额。如果依赖该逻辑的链采用这项修改,就需要独立的迁移计划。因此,在检查系统合约和记账方式之前,不能把这一变更机械地应用于所有兼容Ethereum的实现。
安全章节要求进行大量测试,尤其要覆盖调用、合约创建和交易回滚之间的组合交互。文件还提醒,当CREATE2条件满足时,任何人可用的工厂可能让第三方重新创建地址并取得保留的余额。因而,11月4日对应的仍是征求意见期限:后续状态、测试、可能的适配和激活时间都需要分别核实。仅仅到达这一日期,不能证明用户余额已经发生变化。