分布式验证者技术可以如何减缓传统验证者客户端的风险?它在整个架构里扮演什么角色?
分布式验证者 (Distributed Validators, DV) 是一种将一个以太坊验证者的工作分配给一组分散节点的技术,以提高与在一个单一机器上运行一个验证者客户端相比的韧性 (安全性、活性,或两者兼有)。
以太坊验证者通过用他们的质押私钥对消息签名 (例如区块或证明) 来参与权益证明 (PoS) 协议。质押私钥只能通过客户端软件来访问,客户端根据分配给验证者的职责安排消息的创建和签名。传统的验证者客户端设置会有一些风险:
分布式验证者协议提供了一个解决方案,以减轻与传统的单个验证者设置相关的风险与担忧。此外,该协议还可以用来实现先进的质押设置,例如去中心化的质押池。
请注意 :请参考词汇表,了解分布式验证者规范中引入的新术语的解释。(译者注:见文末)
分布式验证者背后的两个基本概念是:
PoS 以太坊使用的是 BLS 签名方案,其中私钥可以使用 M-of-N 秘密共享技术 (使用 Shamir's Secret Sharing 方案),以实现 M-of-N 门限签名。
(译者注:Shamir's Secret Sharing 被用于以分布式的方式来保护秘密。秘密被分割为多个部分,这些部分被称为 share, 这些 share 可以用来重构原来的秘密。而通过 Shamir's Secret Sharing 解密需要一个最低数量的 share,被称为门限。)
通过把一个合适的 (偏重于安全性的) 共识算法和一个 M-of-N 门限签名方案组合起来,这个 DV 协议确保共识是得到密码学保证的,且至少有 M 个共同验证者对任何决定达成一致。
以下是分布式验证者技术的现有实现 (但不一定是本规范的实现)。
python-ssv
:Python 中分布式验证者协议实现的概念证明,与以太坊客户端 Prysm 交互。ssv
:分布式验证者协议的 Go 实现,与以太坊客户端 Prysm 交互。General Architecture
本规范提出一种实现分布式验证者客户端 (Distributed Validator Client, DVC) 软件的方法,作为信标节点和一个远程签名者 (Remote Signer, RS) 之间的中间件:
M = ceil(2 * N / 3)
。F = (N-1)/3
个拜占庭节点和不超过 N - M - F
防失败节点 (fail-stop node)。(译者注:拜占庭节点指的是在网络里故意撒谎或误导其他节点的背叛节点。)关于规范的技术细节描述在 src/dvspec/
: https://github.com/ethereum/distributed-validator-specs/blob/dev/src/dvspec。
使用上述术语的实例说明:
0xa5c91...
的以太坊验证者作为一个分布式验证者在运行。0xa5c91...
的分布式验证者中。0xa5c91...
相关联的私钥在 4 个共同验证者中使用 3-of-4 的秘密共享方案来拆分,这样就建立了一个 3-of-4 的门限签名方案。
0xa5c91...
的私钥被拆分为 4 份,每一份由共同验证者中一名来托管,这样必须至少有共同验证者中的三名合作才能从 0xa5c91...
产生一个签名。ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
本文首发于:https://news.ethereum.cn/Eth2/distributed-validator-specs
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!