延迟执行设计权衡

本文分析了三种延迟执行的设计方案,包括Proposer的延迟执行状态根包含、通过跳过交易的延迟执行以及通过Payload和区块分离的延迟执行。文章从区块准备时间、传播时间、验证时间以及实现复杂性等方面,对这些方案进行了对比分析,旨在理解不同设计在特定复杂性下如何实现所需的协议属性。

延迟执行设计权衡

感谢 Toni, Jacob, Thomas 和 Barnabé 的评论。最终成果归作者所有,审阅不代表认可!

本文档探讨了三种延迟执行设计,并从第一性原理对其进行了分析。我们首先简要概述每种设计,然后定义一些可衡量的目标和设计复杂性,并将它们映射到各个设计中。

本文档并未将这些设计视为相互竞争的替代方案。例如:EIP-7862 可以与 EIP-7732 结合使用,为提议者提供单Slot延迟状态根。我们的主要目标是关注所需的协议属性,以及如何在给定的复杂性下实现这些属性。

设计

提议者的延迟执行状态根包含

这是 EIP-7862。提议者包含一个延迟状态根,防止区块生产因状态 Merklization 而受阻。这从区块传播的关键路径中移除昂贵的状态根计算,从而减少区块生产延迟。

通过跳过交易延迟执行

这是 EIP-7886。该区块引用父区块的执行输出,将区块 n 的执行截止日期延长至 n+1。廉价的静态验证仍然在 n 的证明截止日期之前执行,而更昂贵的执行被推迟到 n+1 的提议截止日期之前。为了解决免费 DA 的问题,提议者/构建者必须承诺足够的余额,通过 COINBASE 签名来覆盖区块空间。如果该区块中的一条交易在链上提交后被发现无效,提议者仍然需要为该空间付费。

通过 payload 和区块分离延迟执行

这是 EIP-7732。执行 payload 在物理上与信标区块分离,并且比信标区块晚揭示。slot n 的 payload 在 n+1 信标证明截止日期之前进行验证。一个 slot 可能包含一个没有执行 payload 的信标区块。分叉选择被调整为基于揭示/保留的增强设计或基于证明类型计数的设。拍卖机制与 EIP-7732 无关,因为我们的重点是区块和 payload 的分离。

属性

接下来,我们分析对以下属性的影响:

  • 区块准备时间:在时间限制下,提议者和构建者有多少额外时间来准备区块?
  • 区块传播时间:信标区块有多少额外时间通过网络传播?
  • 执行 payload 传播时间:执行 payload 有多少额外时间通过网络传播?
  • Blobs 传播时间:Blobs 有多少额外时间通过网络传播?
  • 区块验证时间:节点有多少时间来验证包含共识和执行的区块?
  • 实现复杂性:关键领域出现实现复杂性的简要概述。

设计 + 属性

提议者的延迟状态根计算

  • 获得区块准备时间,因为提议者/构建者从关键路径中移除状态 merklization
  • 不利于区块和 blob 传播时间
  • 不利于区块验证时间,除非假设预状态根验证可以带来收益
  • 设计复杂度低:提议者/构建者提交到预状态根而不是后状态根。验证区块的节点检查预状态根的正确性,而不是后状态根。实现范围涉及:1.) 执行层

通过 EIP-7886(跳过交易)延迟执行

  • 获得区块准备时间。 它获得了与第一个设计相同的好处
  • 获得区块验证时间。在证明截止日期之前,只需要执行廉价的验证,例如标头字段和 gas 限制边界检查。实际执行可以在验证截止日期之后完成(在第 4 秒到第 12 秒之间)
  • 不获得区块和 blob 传播时间。 有关于更改证明截止日期的讨论,但这与此处无关。区块和 blobs 仍然必须在证明截止日期之前到达,以便证明者对区块进行投票。Blobs 有 2 秒的时间在证明截止日期之前传播。
  • 设计复杂度不低,主要是由于跳过交易,这是主要的执行层变更,并且是一种新的范例。在共识层方面,主要变化是验证者对 COINBASE 进行签名,作为自构建区块的新要求。这包括以下内容:

    • 验证者签名者更改签名 COINBASE 签名
    • Beacon API 更改,用于提交 COINBASE 签名
    • Engine API 更改,用于将 COINBASE 签名添加到 PayloadAttribute 字段
    • 验证者需要在 slot 开始之前签名 COINBASE

或者,EL 客户端可以对 COINBASE 进行签名,以简化 CL 客户端的操作,但这会改变整个基础设施设置,并增加 EL 的复杂性,以及我们如何看待验证者是唯一的签名实体。

通过 EIP-7732 (ePBS) 延迟执行

  • 随着 slot 结构的改变,提议者/构建者在 payload 揭示截止日期之前看不到 payload。这可能会缩短区块准备时间,使其比以前更糟,但这不是一个阻碍因素,因为构建者有时间适应。

  • 在 EIP-7732 中,区块仍然引用的是后状态根而不是预状态根,但可以更改。EIP-7732 和 EIP-7862 在这方面是互补的。

  • 执行 payload 与共识区块分离,这意味着:

    • 与今天一样,共识区块必须在证明截止日期之前传播和验证。
    • 执行 payload 必须在 payload 证明截止日期之前传播。
    • Blobs 必须传播到下一个 slot 的证明截止日期。Blobs 有 12 秒的时间传播
    • 通过将 payload 与区块分离,有更多的时间进行传播,其中 blobs 受益最多。
  • 共识区块必须在信标证明截止日期之前进行验证,这在所有提议中都没有改变。

  • 执行 payload 必须在下一个 slot 的信标证明截止日期之前进行验证。

  • 与跳过交易不同,现在大多数设计更改都在共识层中,重点是将 payload 与信标区块分离。验证者必须单独签名并广播 payload。payload 通过 gossip 接收,并在客户端中添加一个额外的导入路径。分叉选择的复杂性较低,但仍有待在实践中评估。实现范围仅涉及共识层

  • 将吞吐量与本地构建分离

  • 原文链接: ethresear.ch/t/delayed-e...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展