本文分析了以太坊 Glamsterdam 硬分叉中四个备选 EIP,重点比较了 EIP-7732 和 EIP-7782。文章认为,尽管 EIP-7782 可以带来更快的交易确认,但 EIP-7732 在 L1 和 L2 扩展性、稳定性和长期健康方面更具优势,作者建议在 Glamsterdam 中优先选择 EIP-7732。
我们应该选择 EIP-7732 作为我们在 Glamsterdam 的重点提案。
自 2020 年 Beacon Chain 创世以来,共识层核心开发者已经主导了六次硬分叉 (Altair, Merge, Capella, Deneb, Electra, Fusaka)。在这些升级中的五次,"重点" EIP 在发布前很久就显而易见。Electra 是唯一的例外,其旷日持久的辩论预示了我们今天在 Glamsterdam 面临的局面。
这一次,有四个 EIP 似乎都值得占据首位:
EIP | 标题 | 一句话概括 |
---|---|---|
EIP-7732 | Enshrined Proposer Builder Separation (内置提议者构建者分离) | Slot 重构 + Payload-Block 分离 |
EIP-7886 | Delayed Execution (延迟执行) | Slot 重构 |
EIP-7782 | Reduce Block Latency (降低区块延迟) | 将 Slots 缩短至 6 秒 |
EIP-7805 | Fork-choice Enforced Inclusion Lists (分叉选择强制包含列表) | 加强以太坊的抗审查性 |
为了比较它们,我们将其映射到以太坊的 每个 三个战略举措 今年春天宣布:
战略举措 | 直接促进 |
---|---|
扩展 L1(更多区块空间) | 7732 , 7886 |
扩展 L2(更多 blobs) | 7732 , 7886 |
改善用户体验(更低的延迟、无缝的互操作性、预确认、更快的 finality) | 7732 , 7886 , 7782 |
EIP-7805 略有不同:它针对可信中立/抗审查性,这是以太坊的核心价值观之一,但其本身并不推进 2025-2027 年的三大举措。广泛的预期是 FOCIL 将会发布——唯一的问题是何时。
如果我们贪婪地问“这些 EIP 中哪一个能给用户带来最切实的利益?”,那么强烈的观点认为我们最终可能会选择 EIP-7782。更短的 slots 导致更快的交易包含、更快的 finality 以及可能更高的吞吐量。
要理解为什么我们不推荐这种贪婪的方法,我们需要退一步,研究更短的 slots 如何与我们扩展 L1 和 L2 的其他目标相互作用。最简单地说,我们可以将 slot 时间分为两个组成部分:
对于任何给定的 slot 设计,开销 是 必须 在每个 slot 的基础上完成的工作,并且不能与区广播和执行并行完成。
我们扩展 L1 和 L2 的越多,我们需要用于区块和 Blob 广播和执行的时间就越多。因此, 为了最大限度地扩展 L1 和 L2,我们必须最大限度地减少花费在开销上的 slot 时间的比例 。一旦 开销 最小化, 缩短 slot 会损害可扩展性 ,因为固定开销现在占据每个 slot 的更大份额。
我们尚未最小化 开销 时间,因此如今 开销占比 占 slot 的 2/3。EIP-7782 提倡通过调整证明/聚合截止日期来最小化开销,同时降低 slot 时间。最新的估计会将开销降低到 3 秒。在 6 秒的 slot 时间下, 这是 1/2 的开销占比。
虽然 EIP-7782 比现在有更好的开销占比,但它仍然严重限制了我们扩展 L1 和 L2 的程度。这就是为什么人们普遍认为 我们还需要某种 slot 重构 以进一步降低开销。
有些人认为我们应该为 Glamsterdam 选择 EIP-7782,并在未来的分叉中进行 slot 重构。我反对这一点,因为:
由于这些原因, 我认为我们必须优先考虑 Glamsterdam 中的 slot 重构,并在后续分叉中优先考虑更短的 slots 。
有两种竞争的 slot 重构 EIP:
目前,我将保持这篇文章的高级性,并简单地总结每个提案的优点。有关这些提案的更深入的技术讨论,请 参见我之前的文章。
优点 | EIP-7732 | EIP-7886 |
---|---|---|
最大流水线化:最小开销 | ✅ | ❌ |
现有的完整规范 | ✅ | ❌ |
现有的实现 | ✅ | ❌ |
Payload 区块分离(下面讨论了许多优点) | ✅ | ❌ |
无需信任的构建者付款 | ✅ | ❌ |
没有执行层更改 | ✅ | ❌ |
没有 "免费" DA 问题 | ✅ | ❌ |
最快实现 | ❌ | ✅ |
Payload 区块分离的优点:
这些 EIP 之间的比较可以概括为一句话:
EIP-7732 比 EIP-7886 需要更多的代码更改,但它实现了更多,并在 Glamsterdam 之后使协议处于更好的状态。
我相信我们应该对该协议采取更长远的观点,并且我们不应该为了短期的利益而牺牲以太坊的中长期健康。鉴于 EIP-7732 也比 EIP-7886 成熟得多,因此不清楚我们是否可以更快地交付 EIP-7886。
由于这些原因,我认为 EIP-7732 应该是 Glamsterdam 的重点提案。
在本节中,我将更深入地探讨技术细节,并解决对此观点的批评,这些批评主要体现在 Toni Wahrstätter 的设计权衡文章 中。Toni 提出了几个不同的论点,其中一些是明确的,另一些可能是暗示的,无论如何我都会为了完整性和清晰性而解决这些论点。
这与今天没有什么不同。今天的提议者维护着一份个人中继列表,他们在 7732 之后也可以这样做。7732 启用了两种类型的中继:仅保管从中继收集的 bids 的中继,以及保管完整区块并像今天一样运营的中继,绕过协议。
今天,构建者的安全性是通过中继等到 就在 证明截止日期之前,然后同时从网络中的几个点传播块来实现的。这种认为构建者在不计算证明的情况下无法实现安全的说法似乎是基于这样的想法,即构建者无法访问基础设施来同时传播 bids,因此他们在不计算证明的情况下无法实现与此相同级别的安全性。我不同意这种推理方式,原因有两个。首先,目前尚不清楚构建者是否无法访问这种基础设施。即使他们不自己构建它,上面列出的两种形式的中继都能够拥有同时传播 bid 的基础设施。如果中继想要提供这项服务,他们可以提供这项服务,无论提议者是否使用中继,他们都可以帮助传播签名的 bid。其次, 不再需要同时传播区块,并且对于 bids 效果更好 。在证明截止日期之前很久就掌握签名的 bid 的构建者比在证明截止日期之前很久就掌握签名的区块的构建者安全得多。即使他们无权访问同时从多个点传播签名的 bid 的基础设施,他们也可以 更早地传播它,而无需泄露他们的区块 ,而持有签名 header 的构建者必须等到截止日期前的正确时间,并同时从多个点传播以确保安全。
这里没有明确的解释,但是这种批评似乎源于这样的想法,即构建者可以使用协议外机制更早地发布区块,而无需牺牲安全性,因此他们可以创建更大的区块或具有更多 blobs 的区块。上面已经解决了这个问题。即使在计算证明之前,构建者也可以通过 7732 实现相同或更高水平的安全性。
这种推理方式以及上面提出的围绕证明计算的大部分担忧都未能考虑 双截止日期 PTC 投票设计。这是一种简单的修改,我们仅将 blob 可用性截止日期与区块可用性截止日期分离。这将使我们能够迫使构建者放弃其后状态垄断,同时允许 blobs 的最大流水线化。这种相同的机制可能会迫使构建者依赖于同时 bid 传播基础设施来确保安全,而不是计算证明。
EIP-7732 消除了对 EIP-7886 的需求。但是反过来则不然。如果我们稍后执行 7732,我们将浪费这个硬分叉。
EIP-7886 的代码肯定比 EIP-7732 少,但这并不意味着整个协议的复杂性较低。鉴于共识客户端和执行客户端之间现有的分离,分离共识区块和执行区块在许多方面都是更自然的设计,这使得未来的升级更容易推理。
注意:观点文章反映了 Sigma Prime 工程师的观点和经验。这些是受人尊敬的核心开发人员和安全研究人员提供的知情观点,但它们不一定代表整个组织。
- 原文链接: blog.sigmaprime.io/glams...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!