以太坊开发者在即将到来的 Glamsterdam 升级中合并了一项针对存款处理缺陷的修复,该缺陷本可能允许区块构建者收到本应属于新验证者的 ETH,此前开发者最初决定拒绝这一拟议变更。
摘要
- 以太坊于 10 月 26 日合并了一项 Glamsterdam 存款处理修复。
- 该缺陷可能将质押存款记入共享同一公钥的构建者名下。
- 开发者最初拒绝了该修正,随后在增加额外测试后予以批准。
- 一项单独的合约兼容性调查已推迟 Glamsterdam 的 Hoodi 激活。
根据以太坊的共识规范,维护者 Justin Traglia 于 10 月 26 日合并了该修正,此前开发者 avsetsin 发现了在 Gloas 分叉期间待处理存款处理方式存在的问题。该变更根据提款凭证将构建者存款与验证者存款分开,防止当两者使用同一公钥时资金进入错误的账户。
该漏洞涉及的是正在开发中的规则,而非以太坊主网上已确认的盗窃事件。开发者已将修正纳入规范,尽管各个共识客户端仍需实现并测试修订后的行为。
以太坊 Glamsterdam 缺陷暴露验证者存款风险
该问题源于 Glamsterdam 所规划的固化提议者-构建者分离机制下的变更,该机制将区块构建和区块提议分配给不同角色。构建者组装交易负载,而验证者通过以太坊的权益证明系统参与提议和确认区块。
研究员 avsetsin 于 10 月 12 日描述了该缺陷,指出了用于处理网络升级时等待中的存款的规则存在问题。如果构建者在验证者存款以同一公钥到达之前使用该公钥注册,拟议的逻辑可能将两笔存款都记入构建者名下。
该研究员描述了一个场景,涉及某质押运营商从流动性质押协议接收资金以建立新验证者。通过先注册为构建者,该运营商可使该协议的验证者存款进入构建者余额,而该余额的提款地址可能处于运营商控制之下。
“运营商可以提取该协议的资金,”avsetsin 在 GitHub 报告中警告说。
由于预期的验证者不会被创建,质押服务可能难以获得完成其正常存款和恢复程序所需的证明。
该研究员通过初步代码研究审查了涉及 Lido、Origin 和 Rocket Pool 的潜在风险敞口。这些发现取决于各个协议处理存款的方式,且该报告并未证实这些项目已遭受漏洞利用。
开发者经进一步审查后推翻决定
尽管研究员描述了存款路由风险,拟议的修正最初仍遭到以太坊客户端开发者的抵制。10 月 19 日,Traglia 在核心开发者讨论后关闭了该拉取请求。
“目前客户端没有足够的支持来做出这一变更,”Traglia 写道。
该决定并未维持下去,开发者在进一步审查后于 10 月 23 日重新开启了该提案。
随后,审查者 potuz 批准了该方案,但要求针对特定存款组合增加更多测试。Avsetsin 于 10 月 23 日添加了这些测试,涵盖构建者存款和验证者存款共享公钥但需要分别处理的情况。
在进一步的客户端审查后,最终变更于 10 月 26 日合并入以太坊的共识规范。它将有效的验证者存款引导至验证者队列,同时允许合法的构建者存款注册或向现有构建者添加资金。
新规则通过提款凭证区分存款,提款凭证决定了允许的提款安排。即使同一公钥同时出现在两种角色中,它们也保留独立的构建者和验证者记录。
Hoodi 延迟为开发者提供了更多调查时间
规范更新发布之际,以太坊开发者正在审查另一个影响 Glamsterdam 在 Hoodi 测试网上按计划激活的问题。在研究人员发现涉及 EIP-8037 的兼容性风险后,以太坊基金会推迟了原定于 10 月 26 日的升级。
正如 crypto.news 此前关于此次推迟的报道所述,该决定将 Amsterdam 执行层变更和 Gloas 共识层变更均从 Hoodi 的计划激活中移除。拟议将 gas 上限提高至 2 亿的变更也一并被推迟。
以太坊研究员 Toni Wahrstätter 解释说,EIP-8037 可能会干扰那些依赖执行期间剩余 gas 假设的智能合约。他指出,在某些情况下,gas 核算可能导致交易意外回滚,或允许出现开发者原本认为不可达的执行路径。
合约兼容性问题与 GitHub 更正中所涉及的构建者存款缺陷是不同的问题。两者都涉及 Glamsterdam,但基金会 10 月 22 日的推迟声明特别提到了需要进一步调查 EIP-8037 与现有合约的交互。
以太坊客户端必须实施修订后的规则
Glamsterdam 已于 10 月 6 日在 Sepolia 测试网上激活,开发者在那里审查了区块构建变更和更高的交易处理能力。随后的 Hoodi 演练仍未安排时间,以太坊主网的激活日期也尚未确认。
已合并的存款更正包含回归测试,涵盖 Gloas 过渡期间存款如何分类。客户端团队必须将规范变更纳入其软件,并完成进一步测试,以便更新后的规则能够在未来的网络升级中运行。






