以太坊主网两次中断的事后总结
2023 年 5 月 11 日和 5 月 12 日,以太坊主网网络经历了两次重大中断。这导致区块生产分别延迟了 4 个纪元和 9 个纪元。在第二次事件中,不活动惩罚开始生效。
- 已发布: Nov 20, 2023 at 12:31
2023年5月11日和5月12日,以太坊主网网络经历了两次重大中断。这导致区块生产分别延迟了 4 个纪元和 9 个纪元。在第二次事件中,不活动惩罚开始生效。
影响
第一次中断造成约 47 个区块丢失,第二次中断造成约 149 个区块的重大损失。延迟和区块丢失导致受影响的区块生产者损失了约 5 ETH 的收入。

据估计,有 65% 的验证器离线 8 个时区,导致不活动泄漏,估计损失约 28 个 ETH,另外还有约 50 个 ETH 的收入损失,这些收入来自遗失的证明。
然而,值得注意的是,这些事件并没有导致验证器被削减,这表明这些问题更多是系统性的,而不是个别的。
根本原因
停机的根本原因在于包括 Prysm 在内的一些共识客户端在使用旧的目标检查点时,难以以最佳方式处理有效的证明。
触发
一系列投票给旧信标区块(在第 N 个纪元期间来自第 N-2 个纪元的区块)的旧证明被广播,导致 Prysm 和 Teku 出现问题。
检测
这些问题是在 200,551 和 200,750 个纪元网络参与度大幅下降,导致链最终完成暂时停止后检测到的。

摘要
主要问题是由于区块和证明缺失,网络未能最终完成。此外,由于最大存款处理量增加,网络面临压力。尤其是 Prysm,它面临着多次重放(replayBlocks 函数)的问题,导致 CPU 占用率居高不下。
尽管存在这些问题,但事件持续时间相对较短,没有大规模砍价的报告。网络客户端的多样性以及某些客户端提出区块和创建证明的能力使得链得以恢复。
这一事件凸显了测试网的局限性,因为测试网不能代表主网环境,因此强调了进行更强大的压力测试和制定应急计划的必要性。这也是对不活动泄漏惩罚的一次成功的实地测试。
为防止此类问题再次发生,我们引入了若干修复措施。其中包括使用头部状态来验证最近的规范块作为目标根的证明,使用下一插槽缓存来验证上一纪元中边界插槽的证明,以及丢弃前两条规则未验证的任何证明。
虽然主网中断带来了重大挑战,但迅速的恢复和宝贵的经验教训为建立更具弹性的以太坊网络铺平了道路。