以太坊开发者已将 Glamsterdam 升级在 Hoodi 测试网的启动时间无限期推迟。以太坊基金会 10 月 22 日在博客中表示,原定于 10 月 26 日 17:42 UTC、对应 epoch 132,352 的分叉已被取消,新的启用日期尚未确定。
这项决定出自当天举行的 All Core Devs Execution(ACDE)#248 会议。核心开发者没有按原计划推进,而是选择先调查 EIP-8037 与主网智能合约之间的交互影响。
Hoodi 上多项既定安排一并取消
同一天被取消的还包括 Amsterdam 执行层启用、Gloas 共识层启用,以及将 Hoodi gas 上限提升至 2 亿的排程。
公告特别说明,这次调整只是回滚未来升级配置,不会抹去 Hoodi 现有的链上历史。10 月 26 日的启用安排已直接从配置中移除,也没有给出替代的 epoch 或 timestamp。
以太坊方面要求 Hoodi 的节点和验证者运营者检查执行层与共识层客户端,凡是仍保留旧排程的软件版本或自定义网络配置,都需要更新。
争议集中在 EIP-8037 与 EIP-8038 的 gas 变化
问题核心在于失败调用之后 gas 的去向。区块链安全公司 ChainSecurity 在 10 月 13 日发布的分析中拆解了 EIP-8037 与 EIP-8038 的组合效应。
其中,EIP-8037 会改变状态建立计费方式,并引入独立的 state-gas reservoir;EIP-8038 则重新定价状态访问。按照 ChainSecurity 的说法,在新规则下,一次调用失败后,gas 可能回流给调用方合约,使原本因 gas 不足而中断的失败处理逻辑继续执行,甚至把一次原本可以重试的失败,永久记录成不可逆的失败。
ChainSecurity 指出 insufficient gas griefing 风险
ChainSecurity 将这类攻击称为 insufficient gas griefing。其描述是,恶意调用者故意为一个合法操作提供过少的 gas,让操作本身失败,但又保留足够 gas,使合约能够把「失败」写入状态。
在这种情况下,受影响的合约可能移除用户的领取资格,或者关闭重试选项,导致原本有效的操作永久无法完成。
ChainSecurity 也指出,并不是所有与 gas 相关的安全检查都会失效,部分防护仍然有效,但开发者需要逐一检查自己的合约,确认是否依赖旧有的 gas 假设。
已发现 13 个真实世界合约受影响
这项研究很快在以太坊社区内部引发连锁反应。安全研究员 pcaversaccio 在 10 月 21 日 ACDE #248 的 GitHub 讨论串中,将这一风险形容为「serious」,并呼吁重新评估这次硬分叉。
随后,ChainSecurity 在 10 月 23 日通过 X 平台确认,已经找到 13 个「真实世界的例子」,并正与受影响项目进行责任披露。该公司没有公开具体细节,但直接要求开发者尽快检查自己的合约。
以太坊基金会也在同步调查,到底有多少合约、以及以何种方式受到影响。
这并非 Glamsterdam 首次出现警报
在此之前,以太坊基金会已经提醒过,Glamsterdam 的 gas 模型可能打破钱包、索引器和 gas 估算工具所依赖的固定假设。Glamsterdam 也已于 10 月 6 日先行部署到 Sepolia 测试网。
这次 Hoodi 叫停,意味着原本逐级推进的测试网流程,在第二阶段被按下暂停键。
主网时间表失去锚点
根据 ACDE #248 会议议程,Glamsterdam 主网升级原本有 12 月 1 日、12 月 8 日和 12 月 9 日三个候选日期,计划在 Hoodi 测试顺利完成后,于下周的 ACDC 会议上敲定。
随着 Hoodi 启动被无限期推迟,这一时间锚点也被拿掉。主网排程目前完全取决于 EIP-8037 对合约影响的调查结果。
对生态中的应用和工具来说,凡是依赖 Glamsterdam 新 gas 模型的部分,都需要面对更长一段不确定期。
后续关注点落在披露范围与会议安排
接下来,市场主要关注两个方向。其一是 ChainSecurity 所说的 13 个受影响合约名单何时浮现,以及以太坊基金会的调查范围是否会扩大到更多类型的合约。
其二是 ACDC 会议将如何处理主网日期。如果调查拖过 11 月,年底上线的时间窗口会被压缩,甚至可能改到 2027 年初。
对合约开发者来说,当前更直接的动作是检查自身逻辑是否依赖 gasleft() 的固定假设,尤其是那些在调用失败后会记录状态的路径。按照原文描述,这类逻辑在 EIP-8037 和 EIP-8038 之下最容易暴露问题。
以太坊团队这次选择在测试网阶段先踩刹车,而不是把问题带到主网。安全考量被放在了时间表之前,但升级进度也因此再次进入不确定状态。


