EIP-7441: 将区块提议者的选举升级到 Whisk
允许当选的区块提议者在区块发布之前保持私密,以防止 DoS 攻击
Authors | George Kadianakis (@asn-d6), Justin Drake (@JustinDrake), dapplion (@dapplion) |
---|---|
Created | 2023-09-01 |
Discussion Link | https://ethereum-magicians.org/t/eip-7441-upgrade-block-proposer-election-to-whisk-ssle/15316 |
Table of Contents
摘要
将区块提议者选举机制升级到 Whisk,一种单秘密领导者选举 (SSLE) 协议。 目前,区块提议者是提前公开已知的,足以允许可能禁用以太坊的连续 DoS 攻击。 此升级允许下一个区块提议者保持秘密,直到其区块发布。
动机
信标链目前在每个 epoch 的开始时选出接下来的 32 个区块提议者。 此选举的结果是公开的,每个人都可以了解这些未来区块提议者的身份。
这种信息泄露使攻击者可以按顺序对每个提议者发起 DoS 攻击,试图禁用以太坊。
规范
执行层
这不需要对执行层进行任何更改。
共识层
该协议可以概括为以下并发步骤:
- 验证者在分叉后的首次提议时注册一个跟踪器和一个唯一承诺
- 在洗牌阶段开始时,使用来自 RANDAO 的公共随机性选择候选跟踪器列表
- 在每个洗牌阶段,每个提议者使用私有随机性对候选跟踪器的子集进行洗牌
- 在每个洗牌阶段之后,使用 RANDAO 从候选集中选择一个排序的提议者跟踪器列表
可以在 /_features/whisk/beacon-chain.md
中找到所提议更改的完整规范。 总结如下:
- 使用跟踪验证者跟踪器、承诺以及两轮候选人选举所需的字段更新
BeaconState
。 - 添加
select_whisk_candidate_trackers
以从验证者集合计算下一个候选向量。 - 添加
select_whisk_proposer_trackers
以从当前候选人计算下一个提议者向量。 - 将
process_whisk_updates
添加到 epoch 处理逻辑。 - 添加
process_whisk_opening_proof
以验证区块提议者是否了解此时段选定的跟踪器。 - 修改
process_block_header
以不使用get_beacon_proposer_index
断言提议者选举,而是断言有效的 opening proof。 - 使用提交 opening proof、带有证明的混洗跟踪器以及带有证明的跟踪器注册的字段更新
BeaconBlockBody
。 - 添加
get_shuffle_indices
以计算预混洗候选人选择 - 添加
process_shuffled_trackers
以提交混洗的候选跟踪器。 - 将
process_whisk
添加到区块处理逻辑。 - 修改
apply_deposit
以注册一个没有熵的初始唯一跟踪器和承诺。
理由
每个验证者的字段
Whisk 需要每个验证者有一个跟踪器 (rG,krG)
和一个唯一承诺 kG
。 两者仅在分叉后验证者的第一次提议时更新一次。
跟踪器使用随机化基数 (rG,krG)
注册,以使对手更难通过混洗门跟踪它们。 如果诚实的洗牌者集合很小,这可能会成为一个问题。
身份绑定
每个跟踪器必须绑定到验证者的身份,以防止多个参与者声明相同的提议者位置。 否则,它将允许提议者出售其提议者位置,并且如果出现两个竞争区块,则会导致分叉选择问题。
Whisk 通过在验证者记录中存储对跟踪器的秘密 kG
的承诺来进行身份绑定。 存储承诺还可确保 k
的唯一性。
或者,可以通过强制 hash(kG)
的哈希前缀与其验证者索引匹配来实现身份绑定。 但是,验证者将不得不暴力破解 k
,这使得计算资源较少的参与者更难启动系统。
还可以通过设置 k = hash(nonce + pubkey)
来实现身份绑定。 但是,提议者将需要显示 k
并在相邻洗牌阶段重复提议时取消匿名化。
替代方案:非单秘密选举
秘密非单领导者选举可以基于协议工程而不是密码学,因此比 Whisk 更简单、更便宜。 但是,它使分叉选择复杂化,并使其容易受到潜在的 MEV 时间购买攻击,因此在撰写本文时它不是一个合适的选择。
替代方案:网络匿名性
诸如 Dandelion 或 Dandelion++ 之类的保护隐私的网络协议增加了网络参与者的隐私,但对于以太坊的用例来说还不够。
SASSAFRAS 是一种更简单的 SSLE 协议,共识方面而言,但它依赖于网络匿名层。 其特定的权衡并不比 Whisk 更适合以太坊的整体威胁模型。
向后兼容性
此 EIP 向共识层上的区块验证规则集引入了向后不兼容的更改,并且必须伴随硬分叉。
PBS 参与者(例如构建者)将不知道下一个提议者验证者索引以使用特定的预注册费用接收者; 除非提议者选择提前透露自己。 区块浏览器和工具将无法将丢失的插槽归因于特定的验证者索引。
安全注意事项
在配套论文中分析了混洗策略,并认为对于 Whisk 的用例来说足够安全。 此 EIP 的数据和计算复杂度是显着的但恒定的,因此不会打开新的 DoS 向量。
匿名集
Whisk 中的匿名集是未被选为提议者的 8,192 个候选者的集合。 该验证者计数对应于较少数量的 p2p 节点。 假设“20% 的节点运行 80% 的验证者”的帕累托原则,则匿名性平均对应于 2,108 个节点。 更大的候选池可能会使混洗策略不安全,而每轮混洗更多跟踪器会增加 ZK 证明的成本。
RANDAO 偏见
Whisk 在候选人选择和提议者选择事件中使用 RANDAO,并且容易受到恶意提议者潜在的 RANDAO 偏见攻击。 通过在整个混洗期间传播选择事件,可以使 Whisk 安全性与现状相同。 但是,现状安全性也不是理想的,并且会使协议进一步复杂化。
版权
通过 CC0 放弃版权及相关权利。
Citation
Please cite this document as:
George Kadianakis (@asn-d6), Justin Drake (@JustinDrake), dapplion (@dapplion), "EIP-7441: 将区块提议者的选举升级到 Whisk [DRAFT]," Ethereum Improvement Proposals, no. 7441, September 2023. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-7441.