Vitalik:探究 Epoch 和 Slot, 为以太坊用户提供更快的交易确认时间

单Slot最终确定性 可以为以太坊用户提供更快的交易确认时间

发表于 2024 年 6 月 30 日

一个良好的区块链用户体验的重要特性之一是快速的交易确认时间。如今,与五年前相比,以太坊已经有了很大的改进。感谢 EIP-1559合并(The Merge)后稳定的区块时间,用户在 L1 上发送的交易可在 5-20 秒内可靠确认。这大致与使用信用卡支付的体验相当。然而,进一步改善用户体验是有价值的,有些应用程序要求延迟时间在数百毫秒甚至更短的数量级。本文将介绍以太坊的一些实际选项。

现有想法和技术概述

单Slot最终确定性

如今,以太坊的 Gasper 共识使用SlotEpoch架构。每 12 秒的Slot,一部分验证者发布对链头的投票,在 32 个Slot(6.4 分钟)的过程中,所有验证者都有机会投票一次。然后,这些投票被重新解释为模糊地类似于 PBFT 共识算法的消息,经过两个Epoch(12.8 分钟)后,给出了一个非常坚实的经济保证,称为最终确定性

在过去的几年里,我们对当前方法变得越来越不舒服。主要原因是(i)它很复杂,Slot投票机制和Epoch最终确定性机制之间存在许多交互错误,以及(ii)12.8 分钟太长了,没有人愿意等那么久。

单Slot最终确定性通过一种机制取代了这种架构,这种机制与 Tendermint 共识更相似,即在生成区块 N+1 之前,区块 N 已经被最终确认。与 Tendermint 的主要偏差在于我们保留了" 不活跃泄漏(inactivity leak) "机制,允许链继续运行并在超过 1/3 的验证者离线时恢复。

单Slot最终确定性设计的示意图

单Slot最终确定性的主要挑战在于,天真地看,似乎意味着每个以太坊验证者都需要每 12 秒发布两条消息,这对链来说是一笔_巨大_的负担。有聪明的想法可以缓解这一问题,包括最近的 Orbit SSF 提议。但即便如此,虽然这通过加快"最终确定性"来显著改善用户体验,但这并不改变用户需要等待 5-20 秒的事实。

Rollup 预确认

在过去几年里,以太坊一直在遵循基于 Rollup 的路线图 ,设计以太坊基础层(L1)以支持数据可用性和其他功能,然后可以被 Layer2 协议如 Rollups(但也包括 validiumsplasmas)使用,这些协议可以为用户提供与以太坊相同级别的安全性,但规模更大。

这在以太坊生态系统内部创建了一个关注点分离: Layer2 们和执行分片在技术上有什么真正的区别? :以太坊 L1 可以专注于抗审查、可靠、稳定,并维护和改进某种基本核心功能水平,而 L2 可以专注于更直接地接触用户 - 通过不同的文化和技术权衡。但如果你选择这条路,一个不可避免的问题就会出现:L2 希望为希望比 5-20 秒更快确认的用户提供服务

到目前为止,至少在说辞上,L2 的责任是创建他们自己的"去中心化排序"网络。一小部分验证者会签署区块,也许每隔几百毫秒一次,并且他们会将他们的"质押(stake)"放在这些区块后面。最终,这些 L2 区块头被发布到 L1。

L2 验证者组可能会作弊:他们可能首先签署区块 B1,然后稍后签署一个冲突的区块 B2,并在 B1 之前将其提交到链上。但如果他们这样做,他们将被抓住并失去他们的存款。实际上,我们已经看到了这种中心化版本,但 Rollups 在开发去中心化排序网络方面进展缓慢。你可以争辩说要求所有 L2 都进行去中心化排序是一种不公平的交易:我们要求 Rollups 基本上做与创建一个全新 L1 大部分工作相同。因此,出于这个原因和其他原因,Justin Drake 一直在推广一种方法,为所有 L2(以及 L1)提供共享的以太坊范围预确认机制: 基于预确认

基于预确认(Based preconfirmation)

基于预确认方法假设以太坊提议者将因 MEV 相关原因变得非常复杂(请参见此处关于 MEV 的解释,也请参见执行票据提案系列)。基于预确认方法利用这种复杂性,通过激励这些复杂的提议者承担提供预确认作为服务的责任。

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

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

我们实际上在看什么?

假设我们实现了单Slot最终确定性。我们使用 Orbit 类似的技术来减少每个Slot签名的验证者数量,但不要减少太多,以便我们也可以在降低 32 ETH 质押最低要求的关键目标上取得进展。结果,也许Slot时间会上升到 16 秒。然后,我们使用 Rollup 预确认或基于预确认,为用户提供更快的保证。现在我们有了什么?一个Epoch和Slot架构

它们是同一张图片"的梗现在已经被过度使用了,所以我将放一张我多年前画的 Gasper 的 slot-and-epoch 架构图和一个 L2 预确认的图放在一起,希望这样能表达清楚。

有一个深刻的哲学原因解释了为什么 epoch-and-slot 架构似乎很难避免:在某件事上达成近似一致所需的时间比达成最大程度的“经济上最终性”一致所需的时间更少。

一个简单的原因是节点数量。虽然由于超级优化的 BLS 聚合和在不久的将来的 ZK-STARKs,旧的线性去中心化/最终性时间/开销权衡看起来现在较为温和,但基本上仍然是真实的:

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

在今天的以太坊中,12 秒的 slot 被分为三个子 slot,用于(i) 区块发布和分发,(ii) 见证,和(iii) 见证聚合。如果见证者数量较低,我们可以减少到两个子 slot,并将 slot 时间缩短到 8 秒。另一个,也是现实中更大的因素是节点的“质量”。如果我们也可以依赖专业化的节点子集来进行近似一致协议(并仍然使用完整的验证器集进行最终性),我们可能可以将其缩短到约 2 秒。

因此,我觉得(i) slot-and-epoch 架构显然是正确的,但也(ii) 并非所有 slot-and-epoch 架构都是平等的,更全面地探索设计空间是有价值的。特别是,值得探索那些不像 Gasper 那样紧密交织在一起的选项,而是在两种机制之间有更强的关注点分离。

L2 应该做什么?

在我看来,目前 L2 可以采取三种合理的策略:

  1. 在技术和精神上 “Based”。也就是说,它们优化以太坊基础层的技术属性和价值(高度去中心化,抗审查等)的传递通道。在最简单的形式中,你可以将这些 rollups 视为“品牌化的分片”,但它们也可以比这更雄心勃勃,并且可以大量尝试新的虚拟机设计和其他技术改进。
  2. 自豪地成为“带有区块链脚手架的服务器”,并充分利用优势。如果你从服务器开始,然后添加(i) STARK 有效性证明以确保服务器遵循规则,(ii) 用户有权退出或强制交易,可能还有(iii) 集体选择的自由,无论是通过协调的大规模退出还是通过投票更改排序器,那么可以获得了很多在链上的好处,同时保留了服务器的大部分效率。
  3. 妥协的方法:一个由一百个节点组成的快速链,以太坊提供额外的互操作性和安全性。这是许多 L2 项目的事实上的当前路线图。

对于一些应用程序(例如 ENS密钥存储等),12 秒的区块时间已经足够。对于那些不够的应用程序,唯一的解决方案是 slot-and-epoch 架构。在这三种情况下,“epochs”是以太坊的 SSF(也许我们可以将该首字母缩写“单个 slot(single slot Finality 单Slot最终确定性 )” , 换个解释,例如可以是“安全快速最终性(Secure Speedy Finality)”)。但在上述三种情况下,“slots”是不同的:

  1. 以太坊原生的 slot-and-epoch 架构
  2. 服务器预确认
  3. 委员会预确认

一个关键问题是,我们能在类别(1)中做到多好?特别是,如果它变得非常好,那么感觉类别(3)的意义就不那么大了。类别(2)将始终存在,至少因为任何“based”都不适用于像 plasmas 和 validiums 这样的链下数据 L2。但是,如果以太坊原生的 slot-and-epoch 架构可以缩短到 1 秒 “slot”(如预确认)时间,那么类别(3)的空间就会变得小得多。

今天,我们远未找到这些问题的最终答案。一个关键问题 - 区块提议者将变得多复杂 - 仍然是一个存在相当多不确定性的领域。像 Orbit SSF 这样的设计是非常新的,这表明以 Orbit SSF 为 epoch 的 slot-and-epoch 设计空间仍然相当未被探索。我们拥有的选项越多,我们就能为 L1 和 L2 上的用户做得越好,我们就能简化 L2 开发者的工作。

我是 AI 翻译官,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Vitalik Buterin
Vitalik Buterin
https://vitalik.ca/