公链客户端多样性为何重要?从以太坊 2.0 Medalla 测试网事故谈起


公链客户端多样性为何重要?从以太坊 2.0 Medalla 测试网事故谈起
本文插图
免责声明:本文旨在传递更多市场信息 , 不构成任何投资建议 。 文章仅代表作者观点 , 不代表火星财经官方立场 。
小编:记得关注哦
来源:以太坊爱好者
原文标题:以太坊2.0 Staking指南:客户端多样性为何如此重要
公链客户端多样性为何重要?从以太坊 2.0 Medalla 测试网事故谈起
本文插图
作者:Carl Beekhuizen
翻译&校对:闵敏 &阿剑
随着 Medalla 测试网上线 , 官方团队鼓励人们对不同的客户端进行实验 。 从创世的那一刻起 , 这么做的重要性便凸显出来:Nimbus 和 Lodestar 节点因无法处理测试网的负载量而卡住 [0] [1] 。 结果 , Medalla 在上线半个小时内无法敲定区块 。
在北京时间 8 月 15 日 , 由于 Prysm 客户端用来作为参照的时钟服务器突然出现偏差 , Prysm 节点的时钟提前了 4 小时 。 因此 , 这些节点一直在为超前的 slot 创建区块和见证消息 。 等这些节点的时钟恢复正常后 , 那些禁用了默认罚没保护机制的验证者发现自己遭到了罚没 。
若想了解更详细的情况 , 我强烈推荐你阅读 Raul Jordan 的《ETH2 Medalla 测试网事故》一文(编者注:见文末超链接) 。
时钟故障——情况恶化
出现时钟偏差时 , Prysm 节点占全网节点的 62% 左右 。 这就意味着 , 网络无法达到敲定区块所需的最低参与率(> 2/3) 。 更糟糕的是 , 这些节点找不到它们所预期的区块链顶端(历史记录中有长达 4 小时的 “空白” , 而且所有 Prysm 节点的时钟之间都存在细微偏差) , 因此这些节点都在猜测 “缺失” 数据 , 创建了很多短的分叉链 , 造成网络拥堵 。
公链客户端多样性为何重要?从以太坊 2.0 Medalla 测试网事故谈起
本文插图
-目前 , 在 Medalla 测试网的所有节点中 , Prysm 节点占比高达 82%
这时 , 网络上充斥着成千上万个关于区块链顶端的猜测 , 而且还在不断增加之中 , 为了辨别哪个分叉是正确的 , 所有客户端都开始不堪重负 。 这就导致节点出现停滞不前、无法同步和内存不足等问题 , 以至于情况进一步恶化 。
塞翁失马 , 焉知非福 。 经过这次事故 , 我们不仅可以修复时钟的根本问题 , 还能在大规模节点故障和网络负载过重的情况下对客户端进行压力测试 。 尽管如此 , 这次事故本来不会造成这么极端的后果 , 根本原因在于 Prysm 节点占比过大 。
去中心化有利于 ETH 2.0
正如我此前所讨论的那样 , 就异步拜占庭容错算法而言 , 1/3 是安全阈值 。 如果超过 1/3 的验证者离线 , 网络就无法实现终局性 。 虽然 ETH 2.0 区块链在不断增长 , 但是验证者却不敢保证哪个区块、哪个状态一定不会被颠覆 。
去中心化有利于验证者
从根本上来说 , 我们希望经济激励机制足以让验证者做对整个网络都好的事 , 而不用我们相信他们是好人 。
如果有超过 1/3 的验证者节点离线 , 离线节点所遭受的惩罚就会加重 。 这就是所谓的不作为惩罚(inactivity penalty) 。
也就是说 , 作为一名验证者 , 你会希望自己在因为某种原因被迫离线的同时 , 不会有很多其它节点因为同样的原因离线 。
【公链客户端多样性为何重要?从以太坊 2.0 Medalla 测试网事故谈起】罚没也是如此 。 虽然你的验证者节点有可能因为规范或软件故障 / 漏洞而遭到罚没 , 但是个体罚没只会损失 1 ETH。
然而 , 如果有许多验证者和你同时遭到罚没(达到 1/3 的安全阈值) , 罚金就会高达 32 ETH。 (预知详情 , 可参见这篇文章 。 )
上述两种情况分别称为活性反相关机制 (liveness anti-correlation)和安全性反相关机制(safety anti-correlation) , 是 ETH 2.0 中精心设计的部分 。 反相关机制将个体惩罚与每个验证者对网络的影响联系在一起 , 以此激励验证者做出对网络最有利的决策 。


推荐阅读