MEV(矿工可提取价值)收入:MEV 收入除了 gas 费用的收入以外,还有三明治攻击等方式的收入,据 EigenPhi 的数据,过去 7 天三明治攻击的 Volume 都在 100M 以上,最高 Volume 接近 400M,MEV 的收入成为验证者的重要收入组成之一。
怠工惩罚:未能按照共识预期产生出块:未在预期时间对区块进行 Attestation。
恶意行为导致 slash(罚没):在单个 Slot 内生产两个区块或者进行两次 Attestation;违反 Casper FFG 共识规则提议错误区块。
签名私钥:签名私钥用于验证者在履行职责时的消息签署,包括 attesting 和 proposing blocks,每 6.4min,即每个 Epoch,该密钥将被使用一次。
提款私钥:提取质押资产和出块奖励时使用的密钥,需要离线存储,在上海分叉以后,可用提款私钥提取质押的 ETH 和奖励。
私钥被盗:ETH2 的签名 / 提款私钥被盗。
单点故障 / 验证者的有效性:目前,验证人以单一的机器或节点存在并履行其职责。协议严格的规则禁止常见的冗余形式,如在多个节点上运行同一个验证人,这样做可能会导致验证人被 「惩罚」(slashed)。如果使用质押服务,密钥位于一个云服务器上( 如 AWS)。如果任何组件出了问题,验证人就会停止验证,从而受到惩罚。
在质押层面,虽然我们有去中心化的质押解决方案来降低质押门槛和提高质押服务的去中心化,但是在 Validator 层面,依然存在着单点风险,现在单个验证者运行着网络的多个客户端,如果因为网络原因或者是断电等物理因素会造成怠工惩罚,slot 也无法收集到有效的签名,我们无法通过冗余的方式在多个地方运行同一个验证者节点,因为这会造成签名的混乱,会被认为是对网络的攻击,但是我们可以将签名私钥拆分,通过 DVT 技术来降低单点故障的风险,在实施升级的时候,也为节点提供了升级空间,并不会因为网络升级导致节点的大面积掉线,具体分析,请让我们往下探究!
operator:运行一个(或多个)节点的个人或实体。
operator node:指的是一个硬件和软件,执行以太坊验证者的任务。这些任务可以由节点单独完成,也可以与其他使用 DVT 工具的节点联合完成。
分布式验证者技术:分布式验证者技术是一种将单个以太坊验证者的工作分配给一组分散节点的技术。相比验证者客户端在单台机器上运行,分布式验证者技术能够提供更加安全和去中心化的服务。
以太坊执行层客户端
以太坊共识层客户端
以太坊分布式验证者客户端
以太坊验证者客户端
私钥被盗
使用门限签名技术(m-of-n)可以实现防止私钥被盗的风险
一个完整的验证者密钥被拆分为多个小的密钥
拆分后的小份密钥通过聚合产生完整密钥的签名
节点宕机
Crash Faults:
原因:因为停电,断网,硬件故障,软件错误导致的崩溃;
防范措施:通过在多个地方运行同一个节点的冗余备份方案来防范节点掉线;
Byzantine Faults:
原因:由软件 bugs,网络攻击导致;
防范措施:多个参与节点通过共识决定,单个节点无法做出决定。
分布式验证者使用私钥分片远程签署消息
在分布式验证者客户端内通过聚合签名技术对分布式验证者的签名进行聚合,达到阈值以后,对区块进行签名。
An approach to DVT using SSS:该方案由质押 32 个 ETH 的实体创建签名私钥(sk,pk)和提款私钥,并运行一个 Secret Sharing Scheme 程序在委员会节点中安全的分发 sk 密钥的份额。
An approach to DVT using a DKG protocol:在 DKG 的方案中,没有一个实体来为验证者分发签名私钥的份额,而是一群验证者委员会节点一起运行 DKG 协议。因此,一个秘钥和公钥(sk,pk),以及 sk 的 n 个份额 sk_1,…,sk_n 被创建,i=1,…n 的第 i 个节点拥有份额 sk_i。
当验证者对区块达成一致需要签名时,采用 BLS 阈值签名方案来实现签名。其允许 N 个验证者共同签名数据,并且在 t+1(0) 个验证者正确签名的情况下实现完整签名。通过 tss 的方案,既实现了每一个验证者都无法获得完整的签名私钥,又保证了完整签名的顺利生成。
表面上看,SSV 提供了稳健的、去中心化的进入以太坊质押(Staking)生态系统的途径。再深入一点,SSV 是一个复杂的、配有共识层的多签钱包,SSV 在信标链节点和验证者客户端之间充当缓冲器的作用。
Distributed Key Generation:operator 通过运行 SSV 程序计算生成了一个共享的公私钥集。每个 operator 只拥有私钥的单一部分,确保没有一个运营商可以影响或控制整个私钥做出单方面的决定。
Shamir Secret Sharing:这个机制被用于使用预先定义的 KeyShares 阈值重构验证者密钥,单个的 KeyShared 不能被用于签署消息。SSV 能够利用 BLS 技术聚合签名,创建验证者的完整密钥签名。通过结合 Shamir 和 BLS,验证者的签名私钥被切片共享,并在需要签名时聚合重组。
Multi-Party Computation:将安全的多方计算(MPC)应用于 secret sharing,允许 SSV 的 KeyShares 安全地分布在 operators 之间,以及执行验证者职责的分散计算,而无需在单个设备上重建验证者密钥。
Istanbul Byzantine Fault Tolerance Consensus:将这一切联系起来的是 SSV 的共识层,基于伊斯坦布尔拜占庭容错(IBFT)算法。该算法随机选择一个验证者节点(KeyShare),负责区块提议并与其他参与者分享信息。一旦预定的 KeyShares 阈值认为该区块是有效的,它就被添加到链上。因此,即使一些 operators(达到阈值)有问题或目前不在线,也可以达成共识。
Stakers:利用 SSV/DVT 技术的交易所,服务商或个人 ETH 持有者,以实现其验证者的最佳有效性、安全性和去中心化。stakers 向 operators 支付 SSV 代币的费用,以管理他们的验证器。
Operators:operators 提供硬件基础设施,运行 SSV 协议,并负责维护验证者和 ssv.网络的整体健康。operator 以 SSV 代币确定其服务费用,并向验证者收取运营和维护验证器的费用。
DAO (SSV token holders) :ssv.network DAO 分散了 ssv.network 协议和资金的所有权和治理权,SSV 是网络的原生代币。任何拥有 SSV 代币的人都可以参与 DAO,对提案和其他需要投票的项目进行投票。拥有的 SSV 代币的数量决定了对影响网络的决策的投票权。
Operator scoring:ssv.network 依靠 operators 和对他们的质量、经验和提供的服务进行 0-100% 的去中心化和透明的评分。DAO 还负责审核 「Verified Operators」(VOs),并维护 VOs 的名单。Stakers 可以查看并使用这些排名来选择管理其验证者的 Operators
Network fees:为了使用 ssv.network,Stakers 需要支付网络费。网络费是对每个验证者收取的固定费用,被添加到 operators 费用中。网络费直接流入 DAO 国库,可用于资助 SSV 生态系统的进一步发展和通过 DAO 投票程序的活动。
Treasury:stakers 支付的网络费用为 DAO 国库提供资金,它被用于发展 SSV 协议和生态系统的项目。可能包括协议开发和网络增长的赠款,与 SSV 代币持有人直接分享收入,营销和社区激励,代币交换以实现国库的多样化,以及战略合作伙伴的投资以换取 SSV 代币。
Voting:提交给 DAO 的拨款请求和其他需要投票通过的提案。任何持有 SSV 代币的人都可以对影响 DAO 的决定进行投票,例如拨款请求、成为验证运营商的请求以及提交给 DAO 考虑的其他想法或请求。
Obol 是一种通过 multi-operator 促进 staking 信任最小化的协议,该协议能够被作为多种类 web3 产品的核心模块以低信任成本获得以太坊质押收益。
Distributed Validator Launchpad:引导分布式验证者的 CLI 工具和 dApp
Charon:Charon 是 Obol Network 的分布式验证者客户端,也是启用信任最小化验证的第一步。Charon 支持容错、高可用性验证,使一群人能够在多台机器上共同运行验证者,而不是在单个机器上运行。
Obol Managers:一组用于形成分布式验证器的可靠智能合约
Obol Testnets:一组正在进行的公共激励测试网,使任何规模的运营商都可以在为 Obol 主网网络服务之前测试他们的部署。
Distributed Validator:分布式验证器是运行在多个节点 / 机器上的以太坊权益证明验证器。使用分布式验证器技术 (DVT) 可以实现此功能。分布式验证者技术避免了单点故障的问题,如果 DVT 集群中<33% 的参与节点下线,剩余的活跃节点仍然可以就签署达成共识,并为 Staking 的验证者生成有效签名。这是主动冗余方式,用于最大限度减少关键任务系统停机时间的常见模式。
Distributed Validator Node:分布式验证器节点是 operator 需要配置和运行以履行分布式验证器 operator 职责的一组客户端。operator 可以在同一硬件上运行冗余的执行和共识客户端,运行执行层中继器(如 mev-boost),其他检测服务,以确保最佳的性能。在上述例子中,客户端堆栈包括 Geth,Lighthouse,Charon 和 Teku。
Execution Client:执行层客户端(以前称为 Eth1 客户端)专门负责运行 EVM 和管理以太坊网络的交易池。
执行层客户端包括:Go-Ethereum、Nethermind、Erigon。
Consensus Cilent:共识客户端的职责是运行以太坊的权益证明共识层,通常称为信标链。共识层客户端包括:Prysm、Teku、Lighthouse、Nimbus、Lodestra。
Distributed Validator Client:
分布式验证者客户端通过标准化的 REST API 拦截验证者客户端↔共识层客户端的信息流,并聚焦于两个核心职责:
就所有验证者签署的候选人职责达成共识
将所有验证者的签名组合成一个分布式验证者签名
Validator Client:验证者客户端是运行一个或多个以太坊验证者的一段代码。
验证者客户端包括:Vouch、Prysm、Teku、Lighthouse
Distributed Validator Cluster:分布式验证者集群是连接在一起的分布式验证者节点的集合。
Distributed Validator Key:Distributed Validator Key 是一组 BLS 私钥,它们共同作为参与权益证明共识的阈值密钥。
Distributed Validator Key Share:分布式验证者私钥的一份私钥。
Distributed Validator Key Generation Ceremony:为了在分布式验证器中实现容错,各个私钥份额需要一起生成。与其让受信任的经销商产生私钥,将其分割并分发,不如让分布式验证器集群中的每个操作员参与所谓的分布式密钥生成仪式,这样做的好处是在任何时候都不会构建完整的私钥。分布式验证器密钥生成仪式是 DKG 仪式的一种类型。仪式产生签名的验证器存放和退出数据,以及所有的验证器密钥份额和它们相关的元数据。
行文通篇,从 The Merge 开始叙述,讲述合并以后以太坊采用的 Casper FFG 算法,熟悉了合并以后区块的产生方式以及新的一些技术概念,随后讲到了以太坊新的挖矿方式以及目前存在的 Staking 方案,了解到验证者存在的单点故障问题,随后又深入到 DVT 技术,并通过两个项目的案例简述 DVT 如何解决了这个问题,整篇文章按照去中心化的思路叙述,为读者了解以太坊的共识算法和去中心化发展方向提供了一定的参考。
以太坊在 The Merge 以后,将会逐步实现 Danksharding,首先通过 EIP-4488 降低 calldata 的 gas 花销,从 16gwei 降低到 3gwei,为 rollup 的提速扩容进行强有力的支持,之后一步是在 Proto-danksharding 中引入 Blobs 的交易类型,使得以太坊能够为 rollup 提供更多的存储空间,降低 D/A 的成本,并逐渐实现 Danksharding。
要实现 Danksharding 中描述的数据可用性采样(DAS)、区块提议者 / 构建者分离(PBS)等设想,必须要确保以太坊网络的节点足够多,足够去中心化,数据可用性采样才能实施,也就是说要确保扩容和低成本的 D/A,以太坊的去中心化是最为重要的一环,因为去中心化的质押方案和 DVT 等技术对以太坊后续的发展至关重要。
特别感谢前火币研究院首席研究员李炼炫、Arbitrum 的集成工程师 JasonWan、Lido 社区的 Jerry、Unipass 研究员 cyberorange、Web3Q 的周齐博士以及石榴矿池的币圈李白对于本文成文的建议和审阅。