---
title: 秘密领导者选举
description: 解释秘密领导者选举如何帮助保护验证者免受攻击
lang: zh
template: roadmap
summaryPoints:
  - 区块提议者的 IP 地址可以被提前知晓，这使他们容易受到攻击
  - 秘密领导者选举隐藏了验证者的身份，使他们无法被提前知晓
  - 这个想法的延伸是使每个时隙中的验证者选择随机化。
---

在当今基于[权益证明 (PoS)](/developers/docs/consensus-mechanisms/pos)的共识机制中，即将到来的区块提议者列表是公开的，并且可以映射他们的 IP 地址。这意味着攻击者可以识别出哪些验证者即将提议区块，并对他们发起拒绝服务 (DOS) 攻击，使他们无法及时提议区块。

这可能为攻击者创造获利的机会。例如，被选中在时隙 `n+1` 提议区块的提议者可以对时隙 `n` 的提议者发起 DOS 攻击，使他们错失提议区块的机会。这将允许发起攻击的区块提议者提取两个时隙的最大可提取价值 (MEV)，或者获取本应分配在两个区块中的所有交易，并将它们全部包含在一个区块中，从而获得所有相关费用。这可能对家庭验证者的影响大于对复杂的机构验证者的影响，因为后者可以使用更先进的方法来保护自己免受 DOS 攻击，因此这可能成为一种中心化力量。

这个问题有几种解决方案。一种是[分布式验证者技术 (DVT)](https://github.com/ethereum/distributed-validator-specs)，它旨在将运行验证者的各种任务分散到多台机器上，并具有冗余性，从而使攻击者更难阻止在特定时隙中提议区块。然而，最稳健的解决方案是**单一秘密领导者选举 (SSLE)**。

## 单一秘密领导者选举 {#secret-leader-election}

在 SSLE 中，使用了巧妙的密码学来确保只有被选中的验证者知道自己被选中了。其工作原理是让每个验证者提交一个对他们共享秘密的承诺。这些承诺会被洗牌和重新配置，这样就没有人能将承诺映射到验证者，但每个验证者都知道哪个承诺属于自己。然后，随机选择一个承诺。如果验证者检测到他们的承诺被选中，他们就知道轮到自己提议区块了。

这个想法的主要实现被称为 [Whisk](https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763)。其工作原理如下：

1. 验证者对一个共享秘密做出承诺。承诺方案的设计使其可以绑定到验证者身份，但同时也是随机化的，因此没有第三方可以对绑定进行逆向工程并将特定承诺链接到特定验证者。
2. 在一个时段开始时，使用 RANDAO 随机选择一组验证者，从 16,384 个验证者中对承诺进行采样。
3. 在接下来的 8182 个时隙（1 天）内，区块提议者使用他们自己的私有熵对承诺的子集进行洗牌和随机化。
4. 洗牌完成后，使用 RANDAO 创建一个有序的承诺列表。该列表被映射到以太坊时隙上。
5. 验证者看到他们的承诺附加到了特定的时隙，当该时隙到来时，他们提议一个区块。
6. 重复这些步骤，以便将承诺分配给时隙的操作始终远远领先于当前时隙。

这可以防止攻击者提前知道哪个特定验证者将提议下一个区块，从而防止 DOS 攻击的能力。

## 秘密非单一领导者选举 (SnSLE) {#secret-non-single-leader-election}

还有一个单独的提案，旨在创建一种场景，让每个验证者在每个时隙中都有随机的机会提议区块，类似于在工作量证明 (PoW) 下决定区块提议的方式，这被称为**秘密非单一领导者选举 (SnSLE)**。实现这一目标的一种简单方法是利用当今协议中用于随机选择验证者的 RANDAO 函数。RANDAO 的理念是通过混合许多独立验证者提交的哈希来生成一个足够随机的数字。在 SnSLE 中，这些哈希可用于选择下一个区块提议者，例如通过选择值最低的哈希。可以限制有效哈希的范围，以调整每个时隙中单个验证者被选中的可能性。通过断言哈希必须小于 `2^256 * 5 / N`（其中 `N` = 活跃验证者的数量），任何单个验证者在每个时隙中被选中的几率将是 `5/N`。在这个例子中，每个时隙中至少有一个提议者生成有效哈希的几率为 99.3%。

## 当前进展 {#current-progress}

SSLE 和 SnSLE 都处于研究阶段。目前这两种想法都还没有已最终确定的规范。SSLE 和 SnSLE 是相互竞争的提案，不可能同时实施。在发布之前，它们需要更多的研发、原型设计以及在公共测试网上进行实施。

## 延伸阅读 {#further-reading}

- [SnSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789)
