以太坊逆转决定,修复Glamsterdam验证者存款缺陷

2 小时前
閱讀 5 分鐘
4 視圖

以太坊Glamsterdam升级中的存款处理缺陷修复

以太坊开发者已合并修复即将到来的Glamsterdam升级中的存款处理缺陷,该缺陷可能导致区块构建者接收本应分配给新验证者的ETH。最初,开发者们曾决定拒绝这一提议的更改。根据以太坊的共识规范,维护者Justin Traglia于10月26日合并了这一修正,开发者avsetsin在Glamsterdam分叉期间发现了待处理存款处理的问题。

此次更改根据提取凭证将构建者存款与验证者存款分开,防止当两者使用相同公钥时资金进入错误账户。该漏洞涉及正在开发的规则,而非以太坊主网的确认盗窃。开发者们已将修正纳入规范,尽管各个共识客户端仍需实施并测试修订后的行为。

缺陷的来源与影响

该问题源于Glamsterdam的提案者-构建者分离机制,该机制将区块构建和区块提案分配给不同角色。构建者负责组装交易负载,而验证者则通过以太坊的权益证明系统参与提案和确认区块。研究者avsetsin在10月12日描述了这一缺陷,指出在网络升级时处理待处理存款的规则存在问题。

如果在验证者存款到达之前,构建者已使用相同公钥注册,则提议的逻辑可能会将两个存款都记入构建者。

研究者概述了一个场景,其中一个质押运营商从流动质押协议中接收资金以建立新的验证者。通过先注册为构建者,运营商可能导致协议的验证者存款进入构建者余额,而提取地址可能在运营商的控制之下。“运营商可以提取协议的资金,” avsetsin在GitHub报告中警告道。由于预期的验证者不会被创建,质押服务可能难以获得完成其正常存款和恢复程序所需的证明。

修正的过程与实施

研究者通过初步代码研究检查了涉及Lido、Origin和Rocket Pool的潜在风险。这些发现取决于各个协议如何处理存款,报告并未确认这些项目遭受了攻击。尽管研究者描述了存款路由风险,但提议的修正最初遭到以太坊客户端开发者的抵制。10月19日,Traglia在核心开发者之间的讨论后关闭了拉取请求。

“此时,客户端对这一更改的支持不足,”

Traglia写道。

该决定并未维持,开发者在10月23日经过进一步审查后重新开启了提案。随后,审查者potuz批准了该方法,但要求对特定存款组合进行更多测试。avsetsin在10月23日添加了这些测试,涵盖了构建者和验证者存款共享公钥但需要单独处理的情况。

最终更改于10月26日合并到以太坊的共识规范中,经过进一步的客户端审查。它将有效的验证者存款引导至验证者队列,同时允许合法的构建者存款注册或向现有构建者添加资金。新规则通过提取凭证区分存款,提取凭证决定了允许的提取安排。即使在两个角色中出现相同的公钥,它们也保持构建者和验证者记录的独立性。

与EIP-8037的兼容性风险

规范更新在以太坊开发者审查影响Glamsterdam在Hoodi测试网计划激活的另一个问题时发布。以太坊基金会在10月26日推迟了升级,因为研究人员发现了与EIP-8037相关的兼容性风险。正如crypto.news之前报道的推迟,该决定将阿姆斯特丹执行更改和Glamsterdam共识更改从Hoodi的计划激活中移除。

提议的200百万气体限制的增加也随之推迟。以太坊研究员Toni Wahrstätter解释说,EIP-8037可能会干扰依赖于执行期间气体保持的假设的智能合约。他指出,气体会计可能导致交易意外回退,或允许开发者假设无法到达的执行路径。

合约兼容性问题与在GitHub修正中解决的构建者存款缺陷是不同的。两者都涉及Glamsterdam,但基金会在10月22日的推迟中特别提到了对EIP-8037与现有合约交互的进一步调查。

未来的计划与测试

Glamsterdam已于10月6日在Sepolia测试网上激活,开发者们检查了区块构建更改和更高的交易处理能力。随后的Hoodi彩排仍未安排,尚无以太坊主网激活的确认日期。合并的存款修正包含回归测试,涵盖了在Glamsterdam过渡期间如何分类存款。客户端团队必须将规范更改纳入其软件,并完成进一步测试,才能在未来的网络升级中实施更新规则。