那么目前提出的解决方案就是 DVT 去中心化验证者技术,它可以让多个节点运营商共同运营验证者,之前的验证者和运营商是 1 对 1 关系,DVT 就是 1 对 N 关系,从而可以减少单点故障,不会导致运营商挂了后直接影响到对应的验证者,如果 1 个运营商挂了还可以由其他运营商顶上去。
那么 SSV 和 DVT 又是什么关系呢?SSV 全称秘密共享验证器,它是两位以太坊开发者 CarlBeek 和 adiasg 在一篇探讨 ETH2.0 验证器故障的文章中所提出来的概念,原文链接如下:https://notes.ethereum.org/@adiasg/preventing-eth2-validator-failure#Proposals-for-SSV-protocols
SSV 的核心理念就是实现将验证者的私钥进行碎片后给到多个运营商,相当于多签的逻辑,后续 SSV 经过不断的讨论和发展延伸升级为 DVT,所以 SSV 是 DVT 的前身,SSV 也是一个技术名词,而我们今天聊的 SSV network 则是因其是 SSV 概念的践行者所以直接将自己命名为 SSV,是这样一个关系。
所以 Lido 也意识到了自己中心化的问题,它也在探索通过集成 DVT 解决方案来让经过和未经过 Lido 审核的运营商一起进行混合验证的效果,从而降低 Lido 运营商中心化的风险,在去年 10 月份 Lido 也宣布与 SSV network 进行了首次测试,这就是一开始我说到的 Lido 和 SSV 虽然都是 POS 概念币,但是并不是竞对的原因。
我们再回到 DVT,你可以将其理解成以太坊上验证层的大型多重签名方案,它有 4 个关键组件:分布式密钥生成 DGK、BLS 签名的私钥共享、多方安全计算 MPC 和 IBFT 共识层,理解起来困难是吗?不要怕我会逐个介绍,请坚持看下去
分布式密钥生成 DKG 是一个密码学过程,可以让多台机器(多个运营商)使用相同的验证者私钥,之前说过成为 POS 验证节点分四步:申请认证、质押 ETH、获得私钥、运行机器。所以实现 DVT 首先要解决怎么能够让多台机器共享 1 个私钥,DKG 让每个参与者都拥有私钥的一部分,从而防止单方直接访问控制整个私钥。
BLS 签名的私钥共享是一种机制,它实现了多方聚合签名,即能够将区块中所有的签名组合成单个签名,因为 DKG 使得私钥被多人碎片持有,那么需要签名时则将多人的签名聚合为一个签名,就像是一把钥匙被劈成 4 份分别保管,需要开门的时候则把 4 个碎片拼起来粘好后再插锁孔里。
多方安全计算 MPC 由大名鼎鼎的清华姚班创始人姚期智在 1982 年提出,指参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务,MPC 钱包概念大家应该也耳熟能详了,所以同样需要 MPC 技术来让每个私钥片段持有者在不泄漏自己数据的情况下一起完成重建私钥生成。
伊斯坦布尔拜占庭共识 IBFT 大家应该已经很熟悉了,DVT 的一个节点被任意选为领导者,负责区块提议并等工作,如果绝大多数验证者认为该块是有效的,它就会被添加到区块链中。如果在共识过程中选择的领导者下线,IBFT 将进行快速领导者更换并选择另一个 DVT 节点来承担该角色。
DVT 技术我们搞明白了, SSV network 的则是基于此实现的一个去中心化验证器 DVT 的基础设施,属于 0 层解决方案,从而成为了以太坊 POS 层的去中心化基础设施,它使验证器能够由多个运营商运行,而不是仅由当前行业标准的 1 个,开发人员选择在其上构建他们的 dapp 和协议。