据Prysm称,在以太坊Fusaka升级前一个月被引入测试网的一个漏洞,是本月早些时候影响其客户端的以太坊节点验证问题的原因。
以太坊开发者Terence Tsao周日发布了一份事后复盘,详述了Fusaka 主网Prysm事故,该事故于12月4日对网络造成了影响。
其表示,Prysm节点在处理不同步节点的证明时出现“资源耗尽”。这导致Prysm回放过去的epoch区块并重新计算代价高昂的状态转换,过重的工作负载显著拖累了性能。
事后复盘披露,在事故发生前该漏洞已在测试网上存在一个月,但一直未被触发。
“该漏洞在Prysm的PR15965中被引入,并在事故发生前一个月部署到测试网,但未被触发。”
测试网旨在发现漏洞,但并非万无一失。
2023年5月——在上海硬分叉后一个月——以太坊网络曾一度丧失交易终局性约25分钟,次日又持续丧失逾1小时,随后区块链自行恢复。
Prysm已打补丁
Prysm没有使用当前头部状态,而是从零重新生成先前状态,造成了巨大的计算负担。
其称,在超过42个epoch的时间里,网络错过slot比例达18.5%,参与度降至75%,验证者在证明奖励中损失约382枚以太币。
在开发者为Prysm客户端编写更新补丁的同时,节点运营者被要求先部署临时解决方案。
客户端多样性力挽狂澜
开发者表示,如果此次事故针对的是以太坊占主导地位的共识客户端Lighthouse,后果可能会严重得多。
据ClientDiversity的数据,Offchain Labs的Prysm是以太坊的第二大客户端,份额为17.6%。
“客户端多样性避免了以太坊用户感受到显著影响。单一客户端若占据超过全网1/3,将导致暂时性的终局性丧失和更多漏块。”
然而,此次事件凸显出Lighthouse已危险地接近三分之二阈值——在该阈值下,单一客户端的漏洞就可能让一条无效链被最终确认。
目前Lighthouse客户端份额为52.6%,低于事故发生时约56%的水平。


