9 x$ m7 G, u1 A7 @考虑到这一点,到目前为止最优先的是情景3。当一个客户端处于三分之二的绝对多数时,影响是相当灾难性的,这也是一个相对可能的情景。为了强调这样的漏洞很容易发生,最近在Kiln Testnet上发生了这样的错误(参见Kiln Testnet阻止提案失败)。在这种情况下,Prysm在提出后确实检测到了积木有缺陷,并且没有证明这一点。如果Prysm认为该阻塞有效,并且这种情况发生在Mainnet上,那么我们处于场景3的情况3中描述的灾难性情况-因为Prysm目前在Mainnet拥有2/3的多数。因此,如果你目前正在运营Prysm,那么你可能会损失所有资金,这是一个非常真实的风险,你应该考虑更换客户端。3 n, v# k7 Y4 A* z. C' h
+ `/ z- N" T& j" m8 J
情景1可能是人们最担心的,得到的评级相对较低。这样做的原因是,我认为发生这种情况的可能性相当低,因为我认为Validator客户端软件在所有客户端上都实现得很好,它不太可能生成可倾斜的证明或块。4 ]0 U4 f$ A$ {' L) w4 ?
1 `2 z# B% o8 F o' t. V
如果我目前运行的是多个客户端,并且我担心切换,我还有什么选择?3 ~. m9 V1 n! e- C c7 ]
+ [' x& a6 f$ o, f0 B/ R更换客户端可能是一项重大任务,这也伴随着一些风险。如果斜切数据库未正确迁移到新设置,该怎么办?可能会有被砍掉的风险,这完全违背了目的。8 b, X ^( M: @9 B5 x# h
# a( ?& Y" Z4 i! c/ A% C
我会向任何担心这一点的人建议另一种选择。也可以让您的验证器设置保持原样(不需要取出密钥等),并且只切换信标节点。这是非常低的风险,因为只要验证器客户端按预期工作,它就永远不会重复签名,因此不能被砍掉。特别是如果您有大型操作,其中更改验证器客户端(或远程签名者)基础设施将非常昂贵,并且可能需要审核,这可能是一个很好的选择。如果设置的性能不如预期,也可以很容易地切换回原始客户端,或者尝试其他少数客户端。; ^+ P, d. _ z i
+ x4 K* q4 {; W1 x; }3 m8 S好消息是,在切换信标节点时,您几乎不用担心:它对您造成的最坏影响就是暂时脱机。这是因为信标节点本身永远不能自己产生可切削消息。如果您运行的是少数派客户端,则不可能最终进入场景3,因为即使您投票支持无效的区块,该区块也不会获得足够的票数来最终确定。 6 k: w# z/ H |& R . z p8 k, G* F7 {4 l那被惩罚客户端的呢?* _5 d1 l9 j- u. \
* b, p( o( G1 R j' j8 c
我在上面写的内容适用于Consensus客户端-Prysm、LighTower、Nimbus、Loestar和Teku,在撰写本文时,Prysm可能在网络上拥有三分之二的多数。 . d% d/ D i7 `4 n. k) | 1 N3 ? D' k$ f- R% ^- h) J所有这些都以相同的方式适用于执行客户端。Go-Etherum很可能是合并后的大多数执行客户端,如果它产生无效的块,它可能会最终确定,从而导致场景3中描述的灾难性故障。 ; A [! B$ O- t, j0 ]/ ]3 b% Q9 g
幸运的是,我们现在已经有另外三个执行客户端准备好投入生产--Nethermind、Besu和Erigon。如果你是一名质押者,我强烈建议你运行其中的一个。如果你经营的是少数派客户端,则风险非常低!但如果你经营多数客户端,你就面临着损失所有资金的严重风险。5 B1 n9 D, L9 U; J
+ c& V; W# [/ }附录 $ `) y8 v7 N8 j/ c) w* B 4 }; T3 K: p9 e9 N% z+ \附录1:为什么不对无效的区块进行大幅削减? # X' `$ i+ R! D- ] N& c* m$ d' G0 l( Z- T1 F
在场景3中,我们必须依靠二次无活动泄漏来惩罚提出和投票给无效块的验证器。这很奇怪,为什么我们不直接惩罚他们呢?这样看起来会更快,也不会那么痛苦。 . n4 C U$ y* R 0 M* l9 Z; \' O9 e& c- r1 [4 B4 z事实上,我们不这么做的原因有两个--一个是我们目前不能这么做,但即使我们可以,我们也很可能不会这么做:! f1 s- ?+ _9 F: c# K/ O" i