以太坊共识层连续两晚短暂异常 网络自愈彰显PoS韧性

robot
摘要生成中

以太坊连续两晚短暂异常分析

5月11日和12日连续两个晚上,以太坊共识层出现短暂异常。分析表明,这主要是由于某些以太坊共识层客户端节点负载过高,导致验证者节点宕机离线。这直接影响了Epoch投票无法达到2/3的阈值,使得共识层无法确认最终性。不过,以太坊网络在短时间内自我恢复正常,这也体现了以太坊PoS共识算法的韧性和自我修复能力。

以太坊为何连续两晚短暂宕机?一文分析事件起因

事件回顾

通常情况下,以太坊PoS共识网络状态会在2个Epoch内被敲定。但上周出现了两次Epoch敲定延迟的情况:

  • 5月11日:Epoch敲定延迟了3个Epoch,约20分钟。
  • 5月12日:Epoch敲定延迟了8个Epoch,约51分钟。

在这期间,以太坊网络仍然持续产生区块并处理交易。但由于验证者节点的投票率不足,Epoch无法得到敲定,即无法获得以太坊PoS网络的共识级别安全保证。这意味着在极端情况下,该epoch内的交易可能被回滚。

实际上,在此期间以太坊网络并未出现分叉,验证者节点也未进行恶意投票。大量验证者节点离线导致投票率不足是Epoch无法敲定的直接原因。观察发现,离线的验证者节点出现了CPU过载的异常情况。

在第二次事件中,由于敲定延迟超过了4个Epoch,触发了以太坊共识算法的Inactivity leak机制:

  • 惩罚离线的验证者节点,削减其质押资金,约28个ETH被罚没。
  • 取消Attestation奖励,约50个ETH未被发行。
  • 该机制确保在线验证者最终能掌握以太坊总质押资金的2/3,从而使网络状态最终能被敲定。

以太坊为何连续两晚短暂宕机?一文分析事件起因

原因分析

造成这一事件的直接原因是某几种以太坊共识层客户端节点负载过高,导致验证者节点宕机离线,无法正常进行共识投票。具体分析如下:

当收到指向陈旧区块的见证(Attestation)时,节点需要重新计算信标链状态以验证这些见证,这一过程会消耗大量CPU和内存资源。当同时收到大量指向陈旧区块的见证时,节点的CPU和内存资源被耗尽,导致这些验证者节点宕机离线。

理论上这类问题可以通过基于见证指向区块的缓存来解决。然而,由于验证者规模增长以及大量此类attestation的出现,导致出问题的客户端实现的缓存被击穿,节点不得不消耗大量资源重新计算信标链状态。

共识层客户端Teku和Prysm已推出补丁版本以解决该问题。补丁版本的客户端实现会过滤掉这些陈旧的见证,即当满足以下条件时忽略该见证:

  • 见证指向一个陈旧的Slot
  • 见证指向一个节点从未见过的Checkpoint

以太坊为何连续两晚短暂宕机?一文分析事件起因

以太坊设计优势

在此次事件中,以太坊保持了可用性,持续产生区块并处理交易,仅推迟了Epoch敲定。这主要得益于两点:

  1. 以太坊客户端的多样性
  2. Gasper算法的设计

以太坊客户端的多样性

虽然Teku和Prysm客户端出现问题,但不影响其他共识层客户端的正常运作。例如Lighthouse客户端本次并不受影响。由于不同客户端在实现设计上存在差异,因此仍有验证者节点正常运作。

以太坊客户端的多样性确保了:即使某些客户端出现问题(甚至导致Epoch不能敲定),也不会影响正常客户端产生区块并处理交易,保证了以太坊的可用性。

Gasper共识算法对可用性的设计

保证以太坊的可用性是Gasper算法设计的出发点之一,它将区块生产与敲定分离。因此,即使区块敲定受阻,区块的产生并不会停止。考虑到大多数情况下区块敲定最终会恢复,对用户的实际影响很小。

相比之下,其他BFT共识算法在区块敲定失败时,共识节点会停止产出下一个区块,导致整个区块链在此期间不可用。

此外,第二次事件还触发了Inactivity Leak机制,这一机制主要是为了保证以太坊在极端情况(大量验证者长时间离线)下仍能重新敲定区块。

以太坊为何连续两晚短暂宕机?一文分析事件起因

经验与启示

以太坊多客户端的挑战

当前以太坊客户端多样性仍需继续推广和宣传。如果客户端实现足够多样,使得Prysm和Teku的占比小于1/3,那么这次事件甚至不会发生(2/3客户端正常运作足以敲定Epoch)。

此外,当某个客户端实现出问题时,验证者节点如何安全地切换到正常的客户端实现也是一个需要解决的问题。这个过程涉及:

  • 将出问题客户端的验证密钥安全迁移到正常客户端上
  • 确保旧客户端与新客户端的行为一致性,避免被惩罚

以太坊共识的监控

需要类似Safe Head的服务持续监控以太坊PoS网络的实时状态,提前发现并预警此类事件,而不是等到Epoch无法按预期敲定才发现网络状态异常。

以太坊共识算法的科普

这次事件暴露了科普以太坊PoS共识机制的必要性。许多用户误以为"以太坊挂了",造成不必要的恐慌。实际上,以太坊网络一直在持续产生区块并处理交易。面向用户的区块链知识科普仍然是从业者需要持续努力的方向。

对以太坊应用的启示

虽然以太坊网络足够健壮,但偶尔的不稳定会对应用产生一定影响。应用需要正确处理这些不稳定场景:

  • Layer1到Layer2的存款时间可能变长
  • 交易所的充值时间可能延长
  • Oracle链上报价存在被回滚风险,依赖其的高价值服务应适当暂停
  • 某些DeFi应用可能需要暂停部分功能

总结

这次事件展示了以太坊PoS共识算法的韧性与自我修复能力,以及客户端团队的快速响应与错误修正能力。对以太坊生态而言,还需在以下方面持续投入:增加客户端多样性,优化网络状态的实时监控与预警,深化用户教育,完善生态参与者在网络异常时的紧急预案。

以太坊为何连续两晚短暂宕机?一文分析事件起因

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
WalletsWatchervip
· 07-05 23:56
你是真不知道吧,pos本来就很脆弱
回复0
熊市搬砖侠vip
· 07-05 02:07
这点小问题算啥 比特币还暂停过呢~
回复0
Wallet_Detectivevip
· 07-03 02:22
eth大哥这么牛不怕崩溃
回复0
Wen_Moonvip
· 07-03 02:19
pos不香吗炒共识
回复0
智能合约收藏家vip
· 07-03 02:10
共识异常了20分钟 要死要死
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)