文章提出了一种将分布式验证器技术(DVT)直接纳入以太坊协议的简单方法。该方法允许拥有足够多 ETH 的验证者指定多个密钥和一个阈值,从而创建多个虚拟身份,这些身份作为一个整体参与共识,提高安全性和去中心化程度,并简化了 DVT staking 的流程。
分布式验证器技术 (DVT) 是一种以太坊质押者进行质押的方式,无需完全依赖于单个节点。相反,密钥在几个节点之间进行秘密共享,并且所有签名都是阈值签名。只要 > 2/3 的节点是诚实的,就可以保证节点正常工作(并且不会被罚没或因不活跃而被扣除)。
DVT 包括诸如 ssv.network 和 Obol 之类的解决方案,以及我称之为“DVT-lite”的解决方案:Dirk + Vouch 组合 或 Vero。这些解决方案不在每个验证器内部进行完全协商一致,因此它们提供的保证略差,但它们要简单得多。如今,许多组织正在探索使用 DVT 来质押他们的代币。
然而,这些解决方案非常复杂。它们具有复杂的设置程序,需要在节点之间建立网络通道等等。此外,它们依赖于 BLS 的线性特性,而这恰恰是使其不具备量子安全性的特性。
在这篇文章中,我提出了一个非常简单的替代方案:我们将 DVT 纳入协议。
如果验证者的余额是最低余额的 >= n 倍,则允许他们指定最多 n 个密钥和一个阈值 m,最大值为 m <= n <= 16。这将创建 n 个“虚拟身份”,它们都完全独立地遵循协议,但始终一起分配到角色(提议者、委员会、p2p 子网)。
也就是说,如果总共有 100000 个验证器,并且你有一个具有多个虚拟实体的 size-n 验证器,并且有一个具有 t 个参与者的角色(例如,t=1 用于提议,t=16 用于 FOCIL,t=n/64 用于将节点分片为 64 个子网的某些 p2p 子系统),那么 所有 虚拟身份都将被分配到该角色概率为 t/100000。
从协议记账的角度来看,这些虚拟身份被分组到一个“组身份”中。当且仅当至少 m 或 n 个虚拟身份批准该操作时,才将该单个对象视为正在执行某些操作(例如,制作区块、签名)。基于此,分配奖励和惩罚。
因此,如果你有一个身份,例如 m = 5,n = 7,那么如果五个签名都证明一个区块,你将获得 100% 的证明者奖励并且你的参与会被计算在内,但如果四个签名证明,你将获得 0% 的奖励并且你的参与将不被计算在内。同样,要削减这样一个验证者,你需要证明 >= 5 个节点投票给 A,并且 >= 5 个节点投票给 B。
请注意,这意味着如果 m <= n/2,则可以在没有任何不当行为的情况下进行削减,因此强烈不建议使用这种设置,并且只有在某些节点通常是离线备份的情况下才应考虑使用这种设置。
从用户的角度来看,此设计非常简单。 DVT 质押变得简单地运行 n 个标准客户端节点的副本。唯一的实现复杂性是区块生产(或 FOCIL 生产):实际上,需要将随机节点提升为主要节点,并且其他节点对其进行签名确认。
这仅在区块和 FOCIL 生产上增加了一轮延迟,并且在证明上没有延迟。
此设计易于适应任何签名方案,它不依赖于任何算术属性。
该设计旨在产生两个理想的效果:
它还简化了对现有去中心化质押协议的参与,将客户端负载和开发运维体验降低到与最基本形式的单人质押相当的水平,从而使此类协议在参与方面更加去中心化和多样化。
- 原文链接: ethresear.ch/t/native-dv...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!