科普 | 信标链验证者:冗余风险和故障转移
摘要: 本文会解释冗余机制给验证者带来的危险,并为信标链的验证者客户端提议一种合理的故障转移措施。
验证者与验证者客户端
验证者是信标链相关的概念,一个验证者即是信标链共识过程的一个参与者。验证者之间以公钥来区别身份,而且每个验证者都会在不同时间被分配以验证信标链的任务。成功完成这些任务,就能获得奖赏;反之,如果失职,不仅得不到奖励,还会受到严厉的惩罚。在 Phase 0 阶段,这些指责仅限于在信标链上提议区块和提交见证消息。
验证者们需要使用一种叫 验证者客户端(VC)的软件来执行其职责 1。所有的信标链客户端团队都将 VC 作为他们的客户端套装软件之一。
毋庸置疑,验证者肯定希望自己的客户端能全时在线,这样才能获得最大收益、避免所有惩罚。实现高可用的常见方法是设置冗余和故障转移机制。本文会解释冗余机制给验证者带来的危险,并为信标链的 VC 提议一种合理的故障转移措施。
损失/惩罚 的类型
验证者会面临三种类型的损失,严重程度从小到大排列如下:
-
奖励落空:当一个验证者在被分配到任务时没能执行,TA 就不能获得与该任务对应的奖励。验证者的权益(本金)不会减少,只不过失去了一次获得奖励的机会。 -
怠工惩罚:如果一个验证者没有发出见证消息,而那时候信标链又不能敲定区块 2,那验证者的权益就会减少很小的一个数额(当然相关的奖励也拿不到了)。 -
罚没惩罚:若一个验证者发出了违反 Casper FFG 规则的见证消息,则该验证者会立即被 罚没 —— 该验证者的权益会减少一定的比例 3,而且该验证者会被踢出,不能再参与共识(因此也与未来的奖励无缘)。而且,因为现在信标链还不能转让和取回质押的 ETH,所以验证者剩下的钱会全部锁在信标链上、无法动用(直到信标链开启相关功能)。
冗余 VC 设施的危险性
- 冗余的 VC 导致罚没!-
C1
和 C2
,两个都配有在线的 VC。不稳定的网络条件(对等节点/链接 问题、消息传递延迟、网络分区,等等),导致两个客户端实例对哪条分叉才是主链没有形成一致,C1
和 C2
分别以 B1
和 B2
为当前的顶端检查点(注意,是顶端检查点,而不是顶端区块,这种顶端检查点的不一致可以在没有任何恶意行为时发生)。轮到该验证者执行其验证者任务时,两个客户端实例各自发出了一条以自己所认定主链检查点为目标检查点的投票消息。结果就是这两条见证消息的目标检查点不同(但都是同一个高度)。这就是双重投票,违反了 Casper FFG 的规则,会导致该验证者被罚没。VC 的故障转移协议
- 罚没保护机制 -
-
完全同步的信标链节点(BN),来获得关于信标链的信息 -
验证者签名私钥,来实际签署消息 -
及时的罚没保护数据库,作为防故障装置
最小化
格式重建出来,并不需要所有已签名消息的完整历史。此种重建方法的实用程序可以在 adiasg/eth2-slashing-protection-rebuild 代码库中找到。我所建议的故障转移方案
- 初始化的 VC 设置与多场景的故障转移协议 -
-
BN 出错 —— 那就迁移到冗余的 BN 上 -
验证者密钥文件丢失 —— 从冷存储备份的密钥文件中复制出来 -
罚没保护数据库丢失 —— 重建该数据库,或者 从实时备份中恢复
密钥分割验证者
(完)
原文链接:
https://www.adiasg.me/2020/12/11/eth2-staking-failover-redundancy.html
作者: Aditya Asgaonkar
作者:以太坊爱好者;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com
评论(0)
Oh! no
您是否确认要删除该条评论吗?