最近,以太坊的执行客户端 Nethermind 出了一次故障,导致大约 10% 的验证器暂时离线。这件事又把大家的注意力拉回到占据主导地位的 Geth 客户端身上。虽然 Geth 以稳定出名,但它的市场占有率太高,也带来了不小的集中化风险。如果 Geth 本身出现严重漏洞,整个网络可能受到巨大冲击。这篇文章会帮你梳理清楚这个风险,也建议社区多关注执行客户端的多样性。
适合国内用的虚拟币交易所
这次事件是怎么回事?Nethermind 故障和 Geth 有什么不同?
这周,以太坊的执行客户端 Nethermind 出了问题,所有跑这个客户端的验证器(大概占全网 10%)都暂时下线了。因为 Nethermind 属于少数派客户端,这次故障对整体网络的影响其实不大。拿我自己跑的验证器来说,故障发生在凌晨 4 点,团队 4 小时后发布了补丁,到上午 9 点就恢复了。在这期间,验证器的惩罚和奖励基本持平,下午 1 点的时候余额甚至比故障前还高一点。总体来说,这只是一次轻微的技术波动。
不过,很多人会误以为跑 Geth 时遇到类似故障,后果也会这么轻。其实不是这样。问题不在 Geth 的代码质量,而是它的用户基数太大了。
根据 ClientDiversity.org 的数据,以太坊网络上大约 84% 的验证器都在用 Geth。支持者常常说 Geth 最稳定、最可靠,确实,从合并以来 Geth 表现一直不错,而像 Nethermind 这样的少数客户端偶尔会停机或者资源消耗更高。但这里不是要批评 Geth 团队,他们值得尊重。我们需要诚实地聊聊:当绝大多数质押资产都押在单一客户端上时,潜在的系统性风险到底有多大。
如果用户知道用少数客户端会导致更高的停机率、更低的收益,他们往往不愿意迁移。尤其是专业质押运营商,他们靠高正常运行时间吸引客户。比如,截至去年 9 月,最大的质押运营商 Lido 大约有 76% 的验证器跑在 Geth 上。
我选择跑少数客户端,不是出于利他主义,而是想避开 Geth 集中化带来的巨大尾部风险。虽然牺牲了一些潜在收益,但能确保资产在面对 Geth 特有漏洞时更安全。
假如 Geth 真的出现严重 Bug,会怎么样?
后果取决于 Bug 是什么类型。
因为超过三分之二的验证器都在用 Geth,任何导致 Geth 无法出块的严重故障,都会立刻让链无法最终确定(Finality)。这倒不是说链会停掉,只要其他客户端还在跑,区块生产就会继续。但由于缺少最终确认,大概 84% 的区块会被跳过,区块时间从 12 秒延长到大约 75 秒。这些区块很容易发生重组,里面的交易可能无法确认。听起来有点吓人,但回顾一下合并前的以太坊或者现在的比特币,最终确认也不是一上来就有的,交易所通常要求 6 个以上的确认来防范重组风险。
2023 年 5 月,以太坊的共识客户端出过一次故障,导致链两次停止最终确定,两天内大量区块被跳过,网络一度只有 40% 正常运行。恢复后,普通用户只感觉确认变慢了,没受到实质影响。
但对验证器来说,情况就完全不同了。
非活动泄漏(Inactivity Leak)的致命打击
少数客户端出故障时,验证器的损失通常和收益成正比。但如果是 Geth 故障导致链无法最终确定,惩罚就会升级成“非活动泄漏”。当链停止最终确定超过 4 个周期(大约 25 分钟),离线验证器就会开始被销毁 ETH。这个严厉的惩罚,目的是逼着验证器尽快上线,或者在极端情况下,通过销毁权益让它的占比降到 1/3 以下,这样在线验证器就能恢复链的最终确定。
在非活动泄漏期间,损失速度非常快:
- 离线 2 天:损失大约 0.6% 的权益,相当于 2 个月的质押奖励。
- 离线 5 天:损失整整一年的质押奖励(3.5%),要花超过 2 年才能恢复余额。
- 离线 1 周:损失 10% 的权益,相当于 3 年的奖励。
- 离线大约 20 天:损失 50% 的权益。
- 离线大约 40 天:损失 90% 的权益。
对比一下,少数客户端故障导致的 40 天离线,只损失 0.4% 的权益。差距非常大。
非活动惩罚会持续多久?
这取决于 Bug 修复的速度。
如果 Bug 能很快修好,惩罚会持续到验证器更新或切换客户端为止。像 Nethermind 事件那样几小时就解决,损失微乎其微。但如果 Bug 导致 Geth 把无效区块当成有效区块来构建,情况就会变得很糟糕。
这会引发链分叉:一条是包含无效区块的 Geth 链,另一条是忽略无效区块的非 Geth 链。因为 84% 的验证器跑在 Geth 上,Geth 链会成为权重最高的链。一旦 Geth 链最终确定,跑 Geth 的验证器就会被锁定在这条链上。如果他们试图参与非 Geth 链的建设,就会被视为双重签名,面临削减(Slashing)。
所以,Geth 验证器会因“不活跃”而遭受非活动泄漏。没有任何软件更新能阻止这个过程,直到他们的权益被销毁到总权益的 1/3 以下。
目前全网质押的 ETH 大约 2897 万枚。其中 84%(约 2400 万枚)属于 Geth 验证器。要让非 Geth 链恢复最终确定,Geth 验证器的权益需要被销毁到 1/3 以下。这意味着要销毁大约 2150 万枚 ETH(占总权益的 90%),只剩大约 25 万枚 ETH。到时候,非 Geth 验证器控制的 500 万枚 ETH 会超过 2/3 的权益,链就能恢复最终确定。
这个过程预计会持续大约 40 天,导致全网总供应量减少大约 18%,跌破 1 亿枚 ETH 大关。
退出队列(Exit Queue)救不了你
处于无效链上的验证器可能会尝试退出。但即使发起退出,在退出队列里还是会遭受非活动泄漏。
退出队列有速率限制,每 6.4 分钟只允许 13 个验证器退出。如果所有 Geth 验证器同时退出,需要大约 260 天。然而,90% 的权益会在 40 天内被销毁。大多数验证器的余额在能退出之前就已经归零了。
- 前 2% 发起退出的验证器,会在 5 天内退出,最大损失大约 1 年奖励。
- 需要进入前 3% 才能把损失控制在 10% 以内。
- 只有前 8% 能把损失控制在 50% 以内。
- 40 天后,超过 85% 的验证器还在队列里,面临强制退出,有效余额只剩 16 ETH。
所以,退出机制无法保护你免受毁灭性损失。
会被削减(Slashing)吗?
很多人误以为 Geth 故障会导致验证器被削减。这是误解。削减只适用于共识层的双重签名等恶意行为。Geth 产生无效区块属于执行层错误,不会触发共识层的削减惩罚。唯一的惩罚是非活动泄漏。
你应该怎么做?
目前跑 Geth 的质押者可能低估了集中化风险。很多人假设 Bug 会在几小时内修复,损失有限。他们没有意识到,一旦陷入无效链,大部分 ETH 可能被销毁。
以太坊质押并不是无风险套利。你会把 75,000 美元投入一个年化收益 3.5% 但可能归零的工具吗?大多数人不会,但 84% 的以太坊质押者正在这样做。
转向少数客户端(假设不同客户端同时出现相同 Bug 的概率极低),可以把最大损失限制在年化 3.5% 左右。虽然这看起来保守,但在极端情况下,这是保护本金的唯一有效手段。
如果你持有 LST(如 stETH、cbETH 等),请确认它的验证器是否跑在 Geth 上。如果是,就得意识到你的资产面临集中化风险,可以考虑取消质押或切换成其他 LST,直到 Geth 的市场份额明显下降。
对于想参与以太坊生态的用户,建议通过正规渠道注册,并注意任何邀请码链接都可能涉及风险,请自行核实。以下为原文提供的邀请码,仅供参考,不构成任何投资或操作建议:








