Skip to content
单时隙确定性

从时隙到纪元:以太坊 SSF 的挑战 ​

作者:维塔利克·布特林 2024 年 6 月 30 日 原文链接

特别感谢 Dankrad Feist 和 carlbeek 对本文初稿提供的宝贵意见。

以太坊目前正在开发单时隙确定性(SSF),这是一项重要的升级,旨在将确认时间从传统的 15 分钟减少到 12 秒。这项改进意义重大,它将使以太坊在用户体验和安全性方面都有显著提升。

然而,SSF 的一个主要挑战是:它需要修改以太坊当前的"时隙到纪元"模型。目前,单个时隙中的验证者仅代表了所有验证者的一小部分(每个时隙约 32 个验证者),而最终确定性的决定是在纪元层面进行的,纪元包含了 32 个时隙。这种模式允许在每个时隙中只有一小部分验证者保持活跃,同时仍然保持强大的最终确定性。但在 SSF 中,我们需要在每个时隙都实现最终确定性,这意味着我们需要在每个时隙都有足够多的验证者参与。

由此引发了一个关键问题:我们究竟应该如何在 SSF 中组织时隙和纪元?这个问题的复杂程度远超表面所见。

深入探讨纪元和时隙:为以太坊用户提供更快交易确认时间的方法 ​

2024 年 6 月 30 日 查看所有文章

良好的区块链用户体验的重要特性之一是快速的交易确认时间。如今,与五年前相比,以太坊已经有了很大改善。这要归功于EIP-1559和合并后稳定的出块时间的结合,用户在 L1 上发送的交易可以在 5-20 秒内可靠地得到确认。这大致可以与使用信用卡支付的体验相媲美。然而,进一步改善用户体验仍然具有价值,而且有些应用程序甚至明确要求延迟时间在数百毫秒或更短的量级。本文将探讨以太坊可以采取的一些可行方案。

现有想法和技术概述 ​

单时隙确定性 ​

如今,以太坊的Gasper共识使用时隙和纪元架构。每 12 秒一个时隙,一部分验证者会对链头发布投票,在 32 个时隙(6.4 分钟)的过程中,所有验证者都有一次投票机会。这些投票随后被重新解释为类似PBFT共识算法中的消息,经过两个纪元(12.8 分钟)后,便能提供一个极其强健的经济最终确定性保证。

在过去几年中,我们对当前的方法越来越不满意。主要原因是:(i)它过于复杂,时隙级投票机制和纪元级最终确定性机制之间存在许多交互性 bug,(ii)12.8 分钟的时间太长,没有人愿意等待这么久。

单时隙确定性用一个更接近Tendermint 共识的机制替代了这种架构,在该机制中,区块 N+1 生成之前,区块 N 就已经达到最终确定性。与 Tendermint 的主要区别在于我们保留了"不活跃泄漏"机制,该机制允许链在超过 1/3 的验证者离线的情况下继续运行并恢复。

提议的单时隙确定性设计的示意图

SSF 的主要挑战在于,从简单来说,似乎意味着每个以太坊质押者都需要每 12 秒发布两条消息,这对于链来说将是非常大的负担。目前已经有一些巧妙的想法来缓解这个问题,包括最近提出的 Orbit SSF 方案。但即便如此,虽然这通过加快"最终确定性"的速度显著改善了用户体验,但用户仍然需要等待 5-20 秒这一事实并没有改变。

Rollup 预确认 ​

在过去几年中,以太坊一直遵循着以 rollup 为中心的路线图,围绕支持数据可用性和其他功能设计以太坊基础层("L1")。这些功能随后可以被rollups(以及validiums和plasmas)等层 2协议使用,从而为用户提供与以太坊相同级别的安全性,但具有更高的扩展性。

这在以太坊生态系统中创造了一种关注点分离:以太坊 L1 可以专注于实现抗审查、可靠、稳定,并维护和改进某些基础核心功能,而 L2 则可以通过不同的文化和技术权衡,更直接地服务用户。但是如果沿着这条路走下去,就会遇到一个不可避免的问题:L2 需要服务那些希望获得确认时间远快于 5-20 秒的用户。

到目前为止,至少在理论上,创建自己的"去中心化交易排序"网络一直是 L2 的责任。一个较小的验证者群体会对区块进行签名,可能每几百毫秒一次,并且他们会用自己的"质押"来支持这些区块。最终,这些 L2 区块的头部信息会发布到 L1。

L2 验证者集合可能会作弊:他们可能先签署区块 B1,然后再签署一个冲突的区块 B2,并在 B1 之前将其提交到链上。但如果他们这样做,他们会被发现并失去质押存款。在实践中,我们已经看到了这种中心化的情况,但 Rollup 在开发去中心化排序网络方面进展缓慢。你可以说要求所有 L2 都实现去中心化排序是一个不公平的要求:这实际上是在要求 Rollup 完成与创建一个全新 L1 几乎相同的工作量。 正是基于这个原因以及其他原因,Justin Drake 一直在推广一种方案,让所有 L2(以及 L1)都能访问一个共享的以太坊范围内的预确认机制:Based 预确认。

Based 预确认 ​

Based 预确认方法假设以太坊区块提议者将因 MEV 相关原因而变得高度复杂(参见这里关于我对 MEV 的解释,以及执行票据系列提案)。Based 预确认方法利用这种复杂性,通过激励这些复杂的区块提议者接受提供预确认即服务(preconfirmations-as-a-service)的责任。

基本思想是创建一个标准化协议,用户可以通过该协议提供额外费用,以换取交易将被包含在下一个区块中的即时保证,同时可能包括关于执行该交易结果的声明。如果区块提议者违反了他们对任何用户的承诺,他们可能会被惩罚。

如上所述,Based 预确认为 L1 交易提供保证。如果 Rollup 是"Based"的,那么所有 L2 区块都是 L1 交易,因此同样的机制可以用于为任何 L2 提供预确认。

我们实际上在看什么? ​

假设我们实现单时隙确定性。我们使用类似 Orbit 的技术来减少每个时隙签名的验证者数量,但不会减少太多,这样我们也可以在降低 32 ETH 质押最低要求这一关键目标上取得进展。因此,时隙时间可能会增加到 16 秒。然后我们使用 rollup 预确认或基于预确认的方式,为用户提供更快的保证。现在我们得到了什么?一个纪元和时隙的架构。

"它们是同一张图片"这个 meme 现在已经被过度使用了,所以我就放一张我几年前画的描述 Gasper 时隙和纪元架构的旧图,以及一张 L2 预确认的图表并排放在一起,希望这能表达我的观点。

为什么纪元和时隙的架构似乎如此难以避免,这背后有一个深层的哲学原因:就某事达成近似共识所需的时间,天然少于达成最大程度"经济上的最终确定性"共识所需的时间。

一个简单的原因是节点数量。虽然由于高度优化的 BLS 聚合以及即将到来的 ZK-STARKs,原有的去中心化/最终确定性时间/开销权衡看起来不那么严重了,但以下观点仍然基本成立:

  1. "近似共识"只需要少数节点,而经济上的最终确定性需要相当大比例的所有节点。
  2. 一旦节点数量超过某个规模,你就需要花费更多时间来收集签名。

在当今的以太坊中,一个 12 秒的时隙被分为三个子时隙,分别用于(i)区块发布和分发、(ii)见证和(iii)见证聚合。如果验证者数量大幅减少,我们可以降至两个子时隙,实现 8 秒的时隙时间。另一个更现实且更重要的因素是节点的"质量"。如果我们能依靠一部分专业化的节点来达成近似共识(同时仍使用全部验证者集合来实现最终确定性),我们有可能将其降至约 2 秒。

因此,我认为 (i)时隙和纪元架构显然是正确的,但同时(ii)并非所有时隙和纪元架构都是平等的,在更充分地探索这个设计空间方面仍有价值。特别是,值得探索那些不像 Gasper 那样紧密交织的方案,而是在两种机制之间有更强的关注点分离。

L2 应该做什么? ​

在我看来,目前 L2 有三种合理的策略:

  1. 在技术和精神层面都要"基于"以太坊。也就是说,它们要优化成为以太坊基础层技术特性和价值观(高度去中心化、抗审查等)的传递通道。从最简单的形式来看,你可以将这些 Rollup 视为"带品牌的分片",但它们也可以比这更有野心,在新的虚拟机设计和其他技术改进方面进行大量实验。

  2. 坦然接受"具有区块链框架的服务器"的定位,并充分发挥其优势。如果你从一个服务器开始,然后添加(i)STARK 有效性证明以确保服务器遵守规则,(ii)保障用户退出或强制交易的权利,可能还有(iii)集体选择的自由(通过协调一致的大规模退出或通过投票改变排序器),那么你就已经获得了链上运行的大量好处,同时保持了服务器的大部分效率。

  3. 折中方案:一个百节点的快速链,由以太坊提供额外的互操作性和安全性。这是目前许多 L2 项目事实上的发展路线图。

对于某些应用(例如 ENS、密钥库、某些支付),12 秒的出块时间就足够了。对于那些不够的应用,唯一的解决方案是时隙和纪元架构。在所有三种情况下,"纪元"都是以太坊的单时隙确定性(SSF)(也许我们可以将这个缩写重新解释为"单时隙"以外的含义,例如可以是"安全快速最终确定性")。但是"时隙"在上述三种情况下各不相同:

  1. 基于以太坊原生的时隙和纪元架构
  2. 服务器预确认机制
  3. 委员会预确认机制

一个关键问题是,我们能把第(1)类做得多好?特别是,如果它变得真的很好,那么第(3)类似乎就不那么重要了。第(2)类将永远存在,至少是因为任何"基于"的方案都不适用于等离子体和 validium 这样的链下数据 L2。但是,如果以太坊原生的时隙和纪元架构能够将"时隙"(即区块预确认)时间缩短到 1 秒,那么第(3)类的空间就会变得相当小。

今天,我们还远未找到这些问题的最终答案。一个关键问题——区块提议者会变得多么复杂——仍然存在很大的不确定性。像Orbit SSF这样的设计非常新颖,这表明以 Orbit SSF 作为纪元的时隙和纪元设计空间仍然未被充分探索。我们拥有的选项越多,我们就能为 L1 和 L2 上的用户提供更好的服务,也能更好地简化 L2 开发者的工作。

ETHStudy (An Ethereum Ecosystem Initiative)
Supported by Uweb(University of Web3)