源头核验研究

以太坊 Glamsterdam 扩大合约排查:此前已发现 13 个真实合约案例

6 分钟

简短回答

据 Cointelegraph 最新一期 Hodler’s Digest,以太坊研究人员已通过 GitHub 留言板协调 AI 代理,检查 Glamsterdam 升级可能引发的智能合约问题。此前 Hoodi 测试网演练已经延期;该媒体报道,ChainSecurity 找到了 13 个可能受新燃料费规则影响的真实合约案例。对 ETH 持有人而言,需要先分清测试延期、合约兼容性问题,以及自己账户的实际服务状态。Cointelegraph 最新报道、此前的延期报道。

这次排查关注的是:一个合约调用另一个合约失败后,外层合约会怎样处理。ChainSecurity 的分析指出,新规则可能让原本会因燃料不足而停止的失败处理流程继续执行。如果流程同时取消用户重试资格,一次本可重试的操作就可能被记录成永久失败。问题是否成立,要看具体调用路径及状态,不能据此认定所有以太坊应用都存在漏洞。ChainSecurity 分析。

收起完整分析

留言板负责协调,修复结果仍需逐项确认

Cointelegraph 援引 Ethlabs 的 Derek Chiang 介绍称,Ethlabs 与以太坊基金会的研究人员各自组织 AI 代理扫描合约,发现彼此采用相同方法后,建立了 GitHub 仓库作为代理之间的留言板。本文将这项进展保留为该媒体的报道;本次打开的资料没有给出经过逐项确认的扫描总量、漏洞清单或修复数量。Cointelegraph。

报道还称,研究人员为后续 Hegota 分叉中的 EIP-8198,也就是 Quick Slots,建立了另一个留言板。这说明协作方式正在用于其他提案的检查,但不能用来证明 Glamsterdam 的问题已经解决。代理提出疑点后,仍要确认相关路径能否触发、影响什么操作,以及修改后是否保留了用户恢复操作的机会。[Cointelegraph](https://cointelegraph.

对读者更有用的后续信息,是具体项目公布了什么测试结果,而不是留言板有多少条消息。某个应用如果声称已完成兼容性检查,需要说明其失败处理在新规则下的结果。仅有“使用 AI 排查”的表述,无法回答一笔待处理领取或提现请求能否安全重试。

为什么代码不变,失败结果却可能改变

ChainSecurity 的文章标注日期为 2026 年 10 月 13 日,并说明分析基于当日审阅的提案版本。文章涉及两项变化:EIP-8037 调整创建状态的收费,引入单独的状态燃料储备;EIP-8038 调整状态访问费用。引用分析时必须保留这个版本背景,后续提案修改可能改变具体计算。ChainSecurity。

官方 EIP-8037 页面将燃料分为执行与状态两个维度,用户支付两部分成本。提案希望限制状态增长,同时为提高吞吐量创造条件。页面也明确说明,这是需要安排网络升级的不向后兼容的费用调整,钱包与节点软件需要更新燃料估算。兼容性工作本来就是提案需要解决的问题。EIP-8037 官方说明。

一次外部调用失败,可能是操作本身不符合条件,也可能是调用方给的燃料不足。ChainSecurity 将故意少给燃料、让原本有效的操作失败的做法称为 insufficient gas griefing。假如外层合约把这种失败认作最终结果,删除领取资格或禁止重试,用户就可能失去再次完成操作的机会。

部分合约通过调用后剩余多少燃料判断是否遭遇这种情况;另一些合约依赖失败处理本身耗尽燃料,使整笔操作回退。新规则改变了剩余燃料能完成多少工作,也改变了部分燃料何时返还。即使合约代码没有修改,在新旧规则下也可能走向不同结果。

97,920 的算式有适用条件

ChainSecurity 提供的例子中,一个新存储槽的状态创建成本为 64 字节乘以每字节 1,530 单位燃料,等于 97,920 单位状态燃料。文章将这部分与执行费用分开计算。当储备支付状态成本时,虽然合计费用上升,需要从执行余额支付的部分却可能降低。只看总费用,会漏掉失败处理为何可能继续执行。

文章还解释,在同一笔交易内撤销刚创建的状态,可能触发即时补充燃料。清除一个存储槽是否能补充执行余额,取决于它在交易开始时是否为零、此前状态创建是否动用了执行余额,以及剩余燃料是否足以完成清除。这些条件必须一起看,不能把示例改写成“调用失败就退回 97,920”。

另一个例子涉及中间合约:它先创建状态,再调用目标,目标失败后由中间合约继续传递失败。文章区分主动回退与中间合约自身耗尽燃料;两者决定补充后的执行燃料能否回到最外层调用方。因此,开发者需要检查完整调用链,单独调整一个数字门槛,不能证明原来的判断仍然可靠。

EIP-8037 官方页面也提醒,使用两次燃料读数之差衡量工作量的合约,可能得到负数。页面另有 ERC-4337 打包交易的燃料归属讨论。这些内容说明检查范围应包含相关工具与合约,但不能据此点名某款零售钱包已经故障;具体产品仍需查看实现和测试结果。EIP-8037。

官方提案对普通使用流程也有明确表述:钱包和 RPC 更新后,用户可以维持原来的操作方式。这里的前提是软件正确处理新的状态成本与双维度计量,不能跳过这个前提,将它写成所有现有工具天然兼容。页面警告,燃料估算若未包含相应成本,可能低估所需额度并造成交易失败。

ChainSecurity 同时指出,新规则没有让每一种燃料检查都失效。调用前的正确检查仍可保证送出指定额度,但指定额度是否足够,要重新覆盖目标合约所有允许的执行路径。旧版本下留出的较大余量,也不能单独证明新版本下足够。这一判断针对合约预算,不能直接换算成用户钱包应该手动填写的固定数字。

对失败后必须继续执行的应用,文章建议尽可能保留恢复路径,避免仅凭剩余燃料就做不可撤销的决定。开发者应分别观察子调用失败与外层交易的最终结果:前者报错,不代表后者必然回退;外层成功,也不代表用户原本想完成的领取已经成功。确认重试资格是否仍存在,才与这次研究讨论的风险相对应。

13 个案例不等于公开的受影响项目名单

Cointelegraph 在 10 月 23 日报道,Hoodi 升级原定于 10 月 26 日进行,开发者为研究提案与现有合约的交互而延期。报道同时称,ChainSecurity 正与涉及的项目协调负责任披露,当时并未公布这 13 个案例的项目名称。因此,不能根据这个总数自行列出钱包、协议或代币名单。Cointelegraph。

本次打开的两篇 Cointelegraph 报道没有给出可确认的新演练日期。原定日期已经成为延期前的背景,不能继续当作有效日程。后续若出现重新安排的公告,应以新公告的具体范围与时间为准;展示给读者的钟点还应换算并标明新加坡时间。

对在交易所持有 ETH 的用户,先查看账户中所选网络的充值和提现状态。测试网延期本身不能证明某家交易所暂停了服务,也不能证明账户需要迁移。本次资料没有核实任何指定交易所的暂停安排,不应由研究报道推导出平台通知。若账户出现维护信息,保留它针对的网络、服务范围与时间;提交前再核对收款地址及所选网络是否与页面要求一致。

如果你在应用内有待领取款项、待处理提现或其他可重试请求,可以查看项目是否说明了新燃料规则下的测试。重点是失败后重试入口是否保留、固定燃料预算是否重新检查,以及中间合约是否会改变最终记录。这些问题直接对应 ChainSecurity 的分析,比泛泛询问项目有没有使用 AI 更具体。

开发者可按该公司的建议,从允许失败后继续执行的外部调用入手,检查代理合约及中间调用路径,定位补充燃料相对检查语句的位置,并强制子调用失败来比较结果。测试要保持相关初始状态一致,观察是否取消重试、删除领取资格或写入错误结果。

核对这些进展时,还要确认公告对应的提案版本和测试范围,避免混用不同阶段的结果。

下一步可核对的信息包括重新公布的 Hoodi 日程、项目确认并修复的问题,以及应用自己的测试记录。AI 协作报道交代了研究人员怎样扩大搜索范围;官方提案和安全分析交代了为什么要搜索。本次资料尚未提供完整项目名单,也没有证明全部兼容性疑点已经解决。

来源与证据

04
  1. CointelegraphAI agents help rescue ETH’s Glamsterdam fork
  2. CointelegraphEthereum delays Glamsterdam Hoodi testnet launch over security risks
  3. ChainSecurityGlamsterdam Hard Fork: When Spent Gas Comes Back
  4. Ethereum Improvement ProposalsEIP-8037: State Creation Gas Cost Increase