EIP-7045: 增加最大证明包含槽
将最大证明包含槽增加到 `N+1` 中的最后一个槽,其中 `N` 是包含证明槽的 epoch。
Authors | Danny Ryan (@djrtwo) |
---|---|
Created | 2023-05-18 |
摘要
将最大证明包含槽从 attestation.slot + SLOTS_PER_EPOCH
增加到 epoch N+1
的最后一个槽,其中 N
是包含证明槽的 epoch。
这种增加对于当前的 LMD-GHOST 安全分析以及确认rule至关重要。
动机
目前,证明可以在一些最小延迟(主网上为 1
个槽)之后,直到证明创建槽之后的 SLOTS_PER_EPOCH
个槽内被包含。这个滚动的一个 epoch 窗口是在 Phase 0 期间决定的,因为任何证明的相等包含窗口被评估为“公平”。考虑的替代方案是允许在当前和下一个 epoch 期间包含,这意味着在 epoch 开始时创建的证明比在 epoch 结束时创建的证明具有更多的潜在包含槽。
自从这个决定以来,很明显,替代设计对于当前的 LMD-GHOST 安全证明以及新的确认rule(这将允许在正常主网条件下大约 3-4 个槽中进行区块确认)至关重要。
因此,本规范根据已知的安全证明和确认rule需求,增加了证明的最大包含槽。
规范
常量
名称 | 值 | 注释 |
---|---|---|
FORK_TIMESTAMP |
1710338135 |
Mainnet |
执行层
这不需要对执行层进行任何更改。
共识层
规范更改已构建到共识规范 Deneb 升级中。
该规范对状态转换函数进行了两个小的更改:
- 修改
process_attestation
以不对槽检查设置上限,而是通过最小槽以及目标 epoch 位于当前或上一个 epoch 中来定义包含范围。 - 修改
get_attestation_participation_flag_indices
以设置TIMELY_TARGET_FLAG
,而不考虑inclusion_delay
,以确保扩展包含的证明具有非零奖励。
此外,该规范修改了 attestation 和 aggregate attestation gossip 条件,以允许在此扩展范围内进行 gossip。
理由
扩展最大包含槽
如动机中所讨论的,将此最大包含槽扩展到下一个 epoch 的末尾对于 LMD-GHOST 安全证明和确认rule至关重要。
删除对目标奖励的 inclusion_delay
考虑
以前,如果证明包含在 SLOTS_PER_EPOCH
窗口内,get_attestation_participation_flag_indices
才会设置 TIMELY_TARGET_FLAG
(因此对具有正确目标投票的证明进行奖励)。
删除了对此标志的 inclusion_delay
考虑,以确保无论证明的有效包含窗口是什么,它都可以因正确的目标而获得基线非零奖励。这确保了客户端仍会尝试将此类证明打包到区块中,这对于安全分析非常重要。
请注意,这是先前定义的范围(相当于最大值)的预期行为。
向后兼容性
此 EIP 对共识层的区块验证规则集引入了向后不兼容的更改,必须 сопровождаться 硬分叉。
测试用例
本 EIP 的测试用例可以在 consensus-specs
存储库的 deneb
测试套件中找到。
安全考虑
这提高了 LMD-GHOST 安全性,并启用了一个快速确认rule。
没有已知的对安全性的负面影响。
版权
通过 CC0 放弃版权和相关权利。
Citation
Please cite this document as:
Danny Ryan (@djrtwo), "EIP-7045: 增加最大证明包含槽," Ethereum Improvement Proposals, no. 7045, May 2023. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-7045.