首页 / 资讯中心 / 文章详情

EIP-7441 深度解读:以 Whisk 单秘密领导者选举(SSLE)升级区块提议者选举机制

EIP-7441 深度解读:以 Whisk 单秘密领导者选举(SSLE)升级区块提议者选举机制 ★ FEATURED ARTICLE
EIP-7441 深度解读以 Whisk 单秘密领导者选举SSLE升级区块提议者选举机制【免费下载链接】EIPsThe Ethereum Improvement Proposal repository项目地址: https://gitcode.com/GitHub_Trending/ei/EIPs本篇技术指南以 EIPS/eip-7441.md 为主体系统讲解以太坊如何通过 Whisk 单秘密领导者选举Single Secret Leader Election, SSLE协议改造共识层的区块提议者选举机制当前信标链在每 epoch 开始时公开选举接下来 32 个区块提议者攻击者可借此逐一定向发起拒绝服务DoS攻击本 EIP 的目标是让下一区块提议者的身份在区块发布之前保持秘密。读完本文你将掌握该提案的完整协议流程tracker 注册、RANDAO 驱动候选选举、私有洗牌、开洞证明验证、全部共识层变更点、设计取舍身份绑定、匿名集、RANDAO biasing以及其硬分叉兼容性影响。EIP 元数据与当前状态字段值EIP 编号7441标题Upgrade block proposer election to Whisk描述允许被选举的区块提议者在区块发布前保持匿名以抵御 DoS 攻击作者George Kadianakis (asn-d6)、Justin Drake (JustinDrake)、dapplion (dapplion)类型Standards TrackCore状态Stagnant创建时间2023-09-01需要特别说明的是该提案当前处于Stagnant停滞状态。根据仓库中 EIPS/eip-1.mdEIP 流程规范文档第 90 行的定义任何处于Draft、Review或Last Call状态的 EIP若超过 6 个月无活跃进展将被移至Stagnant作者或 EIP 编辑可将其恢复到Draft或更早状态若不恢复则可永久停留在此状态。因此本文内容属于技术提案层面的设计规范并非已上线主网的共识变更读者在评估其落地前景时应以该状态为前提。动机公开的提议者名单是 DoS 攻击的靶子信标链Beacon Chain当前在每个 epoch 开始时选举出接下来 32 个区块提议者每个 slot 对应一个。关键问题在于这次选举的结果是公开的全网任何人都能获知这些未来区块提议者的身份。这一信息泄露使攻击者获得了清晰的攻击面——他们可以按时间顺序逐一对每个即将出块的提议者发起 DoS 攻击例如在对方即将出块的时刻发起大量请求或网络洪泛使其无法及时广播区块从而可能使以太坊整体停摆。由于提议者名单是提前 32 个 slot约一个 epoch公开的攻击者无需同时压制所有验证者只需排队依次打掉每一个就能以极低成本系统性瘫痪出块流程。核心思路从公开选举升级为单秘密领导者选举SSLEEIP-7441 的解法是将区块提议者选举机制升级为Whisk——一种单秘密领导者选举SSLE协议。SSLE 是一类密码学协议的统称其核心性质是在某一轮出块之前只有当选者本人知道自己是出块者其他任何参与方包括其他验证者和攻击者都无法提前推断出谁是下一个区块提议者。这样DoS 攻击者失去了瞄准目标所需的信息无法在区块发布前针对性地攻击当选者。Whisk 基于椭圆曲线密码学与可验证洗牌verifiable shuffle构建每个验证者维护一个与自身身份绑定的追踪器tracker协议通过多轮公开随机性与私有随机性混合的洗牌过程从候选集合中逐步收敛出每一轮的秘密提议者。规范详解Specification执行层零改动本 EIP 明确声明Execution Layer执行层不需要任何变更。这是一条纯粹针对共识层Consensus Layer的提案执行层的区块结构、EVM 语义与状态转换规则均不受影响。共识层四步并发协议流程协议整体可概括为以下四个并行/交替进行的步骤注册阶段验证者在其分叉后首次出块时注册一个 tracker 和唯一的承诺commitment候选选举shuffling 阶段开始使用来自RANDAO的公开随机性从验证者集合中选出一个候选 tracker 列表私有洗牌shuffling 阶段期间每个提议者使用私有随机性对候选 tracker 的一个子集进行洗牌shuffle提议者确定每个 shuffling 阶段结束后使用 RANDAO 从候选集合中选出一个有序的提议者 tracker 列表该列表中的 tracker 即对应未来各 slot 的秘密出块者。该提案的完整规范位于 consensus-specs 仓库的/_features/whisk/beacon-chain.md外部规范文件此处仅引用其路径名。核心机制是候选 tracker 的初选与最终提议者排序均由 RANDAO 公开随机性驱动而洗牌过程混入私有随机性从而在可公开验证与结果不可提前预测之间取得平衡。共识层实现变更清单结合规范摘要该提案对信标链状态与区块处理逻辑的改动可归纳如下表变更对象变更内容BeaconState新增字段用于追踪每个验证者的 tracker、承诺以及两轮候选选举的状态select_whisk_candidate_trackers新增函数从验证者集合计算下一批候选 tracker 向量select_whisk_proposer_trackers新增函数从当前候选集合计算下一批提议者 tracker 向量process_whisk_updates新增函数挂接进 epoch 处理逻辑process_whisk_opening_proof新增函数验证区块提议者确实掌握本 slot 被选中的 tracker即知晓其秘密process_block_header修改不再用get_beacon_proposer_index断言提议者选举结果改为断言有效的 opening proofBeaconBlockBody新增字段提交 opening proof、带证明的已洗牌 tracker、带证明的 tracker 注册get_shuffle_indices新增函数计算预洗牌候选选择process_shuffled_trackers新增函数提交已洗牌的候选 trackerprocess_whisk新增函数挂接进区块处理逻辑apply_deposit修改在存款时注册一个无熵without entropy的初始唯一 tracker 与承诺从这些变更可以看到Whisk 的落地不是简单替换一个选举函数而是对整个区块验证流程做了结构性改造验证谁是出块者的方式从公开对照提议者索引转变为验证开洞证明opening proof——即出块者必须证明自己对本 slot 被选中的 tracker 的秘密值具有知识knowledge of secret才能在区块头部通过验证。设计理由Rationale每个验证者的字段设计Whisk 要求每个验证者维护一个 tracker(rG, krG)和一个唯一承诺kG其中G为椭圆曲线基点k、r为秘密标量。这两个值只在验证者于分叉后首次出块时更新一次此后保持不变。Tracker 使用随机化基(rG, krG)注册其目的在于增加敌手在洗牌门shuffling gates之间追踪这些 tracker 的难度。文档同时提示了一个边界场景如果诚实洗牌者的集合过小这种随机化保护的效果可能会打折扣。身份绑定防止出售出块 slot每个 tracker 必须与验证者身份绑定否则多个实体可能声称拥有同一个提议者 slot——这将允许提议者出售自己的出块 slot并且在出现两个竞争区块时引发分叉选择fork-choice问题。Whisk 的身份绑定实现方式在验证者记录中存储对 tracker 秘密kG的承诺commitment。存储该承诺同时保证了k的唯一性。文档还对比了另外两种替代的身份绑定方案及其代价哈希前缀匹配强制hash(kG)的哈希前缀匹配验证者索引。缺点验证者需要对k进行暴力破解brute force会抬高系统引导bootstrap门槛对计算资源较少的参与者不友好确定性派生令k hash(nonce pubkey)。缺点提议者在相邻洗牌阶段重复出块时需要暴露k从而被去匿名化。替代方案对比为什么是密码学而非工程或网络匿名EIP-7441 在 Rationale 中系统对比了三类备选路线非单一秘密选举Secret non-single leader election可基于协议工程而非密码学实现比 Whisk 更简单、更便宜。但代价是复杂化分叉选择逻辑并可能引入MEV time-buying 攻击通过购买时间窗口操纵区块包含顺序的 MEV 攻击因此在撰写本提案时被判定为不合适网络匿名方案像 Dandelion / Dandelion 这类隐私保护网络协议能提升网络参与者的隐私但匿名强度不足以满足以太坊的用例需求SASSAFRAS一个共识层面更简单的 SSLE 替代协议但它依赖网络匿名层其具体权衡并不比 Whisk 更契合以太坊的整体威胁模型。结论Whisk 是在密码学成本与协议/分叉选择复杂度之间被选中的折中方案。向后兼容性与硬分叉影响本 EIP 对共识层的区块验证规则集引入了向后不兼容的变更因此必须伴随一次硬分叉才能部署。这与仓库中另一共识层改动提案 EIPS/eip-6988.md 的表述一致——该提案同样指出此修复以向后不兼容的方式更改提议者选举机制需要硬分叉部署说明此类选举机制的改动在以太坊中属于硬分叉级别变更。此外本 EIP 明确列出了对生态工具与 PBSProposer-Builder Separation提议者-构建者分离参与者的影响PBS 参与者如 builder在默认情况下将无法获知下一提议者的验证者索引也就无法使用预先注册的特定 fee recipient除非提议者自愿提前暴露身份区块浏览器与监控工具将无法把缺失的 slot 归因到具体的验证者索引。安全考量Security Considerations数据与计算复杂度显著但恒定文档指出Whisk 的洗牌策略已在配套论文中经过分析被认为对其用例足够安全本 EIP 引入的数据量与计算复杂度虽然显著但是恒定的不随验证者集合规模无界增长因此不会开放新的 DoS 攻击向量。匿名集规模Whisk 的匿名集是 8,192 个候选者中未被选为提议者的那部分验证者。由于这些验证者对应的 p2p 节点数量更少文档按帕累托原则20% 的节点运行 80% 的验证者估算匿名性平均对应约2,108 个节点。这里存在一组权衡候选池更大可能使洗牌策略不安全而每轮洗牌更多的 tracker 则会抬高 ZK 证明的成本。因此 8,192 是在安全性、匿名性与证明成本之间选取的平衡点。RANDAO biasing 风险Whisk 在候选选择与提议者选择两个事件中都使用RANDAO因此容易受到恶意提议者发起的RANDAO biasing 攻击。文档给出的缓解思路是将选择事件分散到整个洗牌周期shuffling period之上可使 Whisk 的安全性等同于现状status quo但文档同时承认现状的安全性本身也不理想且这样做会进一步复杂化协议。关于 RANDAO 机制本身的背景可参考仓库中的 EIPS/eip-4399.md将 DIFFICULTY 操作码替换为 PREVRANDAO 的提案其中详细说明了 RANDAO 的混合机制、提议者每 slot 1 bit 的影响力及其有限影响窗口和 EIPS/eip-2982.md阐述了 RANDAO seed 每区块由提议者揭示值异或更新的机制。总结与展望EIP-7441 提出了以太坊共识层一次方向性升级用 Whisk 这一 SSLE 协议取代公开的区块提议者选举将出块者身份从提前 32 slot 公开收紧为发布区块前保密从而封堵针对提议者的顺序 DoS 攻击路径。其设计核心是 tracker 承诺的验证者状态模型、RANDAO 公开随机性驱动的两轮候选选举、私有随机性洗牌以及以开洞证明替代索引断言的区块验证改造。同时它必须承受硬分叉、PBS 参与者与区块浏览器的可用性折损、以及 RANDAO biasing 等安全权衡——这些取舍共同构成了评估该提案是否值得最终部署的完整图景。注本 EIP 当前状态为 Stagnant以上均为提案层面的技术设计内容。本文档版权依据 LICENSE.md 采用 CC0 协议放弃版权。【免费下载链接】EIPsThe Ethereum Improvement Proposal repository项目地址: https://gitcode.com/GitHub_Trending/ei/EIPs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站