本文分析了三种延迟执行的设计方案,包括Proposer的延迟执行状态根包含、通过跳过交易的延迟执行以及通过Payload和区块分离的延迟执行。文章从区块准备时间、传播时间、验证时间以及实现复杂性等方面,对这些方案进行了对比分析,旨在理解不同设计在特定复杂性下如何实现所需的协议属性。
感谢 Toni, Jacob, Thomas 和 Barnabé 的评论。最终成果归作者所有,审阅不代表认可!
本文档探讨了三种延迟执行设计,并从第一性原理对其进行了分析。我们首先简要概述每种设计,然后定义一些可衡量的目标和设计复杂性,并将它们映射到各个设计中。
本文档并未将这些设计视为相互竞争的替代方案。例如:EIP-7862 可以与 EIP-7732 结合使用,为提议者提供单Slot延迟状态根。我们的主要目标是关注所需的协议属性,以及如何在给定的复杂性下实现这些属性。
这是 EIP-7862。提议者包含一个延迟状态根,防止区块生产因状态 Merklization 而受阻。这从区块传播的关键路径中移除昂贵的状态根计算,从而减少区块生产延迟。
这是 EIP-7886。该区块引用父区块的执行输出,将区块 n
的执行截止日期延长至 n+1
。廉价的静态验证仍然在 n
的证明截止日期之前执行,而更昂贵的执行被推迟到 n+1
的提议截止日期之前。为了解决免费 DA 的问题,提议者/构建者必须承诺足够的余额,通过 COINBASE
签名来覆盖区块空间。如果该区块中的一条交易在链上提交后被发现无效,提议者仍然需要为该空间付费。
这是 EIP-7732。执行 payload 在物理上与信标区块分离,并且比信标区块晚揭示。slot n
的 payload 在 n+1
信标证明截止日期之前进行验证。一个 slot 可能包含一个没有执行 payload 的信标区块。分叉选择被调整为基于揭示/保留的增强设计或基于证明类型计数的设。拍卖机制与 EIP-7732 无关,因为我们的重点是区块和 payload 的分离。
接下来,我们分析对以下属性的影响:
设计复杂度不低,主要是由于跳过交易,这是主要的执行层变更,并且是一种新的范例。在共识层方面,主要变化是验证者对 COINBASE
进行签名,作为自构建区块的新要求。这包括以下内容:
COINBASE
签名COINBASE
签名COINBASE
签名添加到 PayloadAttribute
字段COINBASE
或者,EL 客户端可以对 COINBASE
进行签名,以简化 CL 客户端的操作,但这会改变整个基础设施设置,并增加 EL 的复杂性,以及我们如何看待验证者是唯一的签名实体。
随着 slot 结构的改变,提议者/构建者在 payload 揭示截止日期之前看不到 payload。这可能会缩短区块准备时间,使其比以前更糟,但这不是一个阻碍因素,因为构建者有时间适应。
在 EIP-7732 中,区块仍然引用的是后状态根而不是预状态根,但可以更改。EIP-7732 和 EIP-7862 在这方面是互补的。
执行 payload 与共识区块分离,这意味着:
共识区块必须在信标证明截止日期之前进行验证,这在所有提议中都没有改变。
执行 payload 必须在下一个 slot 的信标证明截止日期之前进行验证。
与跳过交易不同,现在大多数设计更改都在共识层中,重点是将 payload 与信标区块分离。验证者必须单独签名并广播 payload。payload 通过 gossip 接收,并在客户端中添加一个额外的导入路径。分叉选择的复杂性较低,但仍有待在实践中评估。实现范围仅涉及共识层
- 原文链接: ethresear.ch/t/delayed-e...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!