{"content":{"title":"Vitalik：探究 Epoch 和 Slot， 为以太坊用户提供更快的交易确认时间","body":">- 原文链接：https://vitalik.eth.limo/general/2024/06/30/epochslot.html\r\n>- 译者：[AI翻译官](https://learnblockchain.cn/people/19584)，校对：[翻译小组](https://learnblockchain.cn/people/412)\r\n>- 本文永久链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/8656)\r\n    \r\n  \r\n\r\n发表于 2024 年 6 月 30 日\r\n\r\n一个良好的区块链用户体验的重要特性之一是快速的交易确认时间。如今，与五年前相比，以太坊已经有了很大的改进。感谢 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) 和[合并（The Merge）](https://ethereum.org/en/roadmap/merge/)后稳定的区块时间，用户在 L1 上发送的交易可在 5-20 秒内可靠确认。这大致与使用信用卡支付的体验相当。然而，进一步改善用户体验是有价值的，有些应用程序要求延迟时间在数百毫秒甚至更短的数量级。本文将介绍以太坊的一些实际选项。\r\n\r\n## 现有想法和技术概述\r\n\r\n###  [单Slot最终确定性](https://ethereum.org/en/roadmap/single-slot-finality/) \r\n\r\n如今，以太坊的 [Gasper](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/gasper/) 共识使用**Slot**和**Epoch**架构。每 12 秒的Slot，一部分验证者发布对链头的投票，在 32 个Slot（6.4 分钟）的过程中，所有验证者都有机会投票一次。然后，这些投票被重新解释为模糊地类似于 [PBFT](https://pmg.csail.mit.edu/papers/osdi99.pdf) 共识算法的消息，经过两个Epoch（12.8 分钟）后，给出了一个非常坚实的经济保证，称为**最终确定性**。\r\n\r\n在过去的几年里，我们对当前方法变得越来越不舒服。主要原因是(i)它很复杂，Slot投票机制和Epoch最终确定性机制之间存在许多交互错误，以及(ii)12.8 分钟太长了，没有人愿意等那么久。\r\n\r\n单Slot最终确定性通过一种机制取代了这种架构，这种机制与 [Tendermint 共识](https://docs.tendermint.com/v0.34/introduction/what-is-tendermint.html)更相似，即在生成区块 N+1 之前，区块 N 已经被最终确认。与 Tendermint 的主要偏差在于我们保留了\" [不活跃泄漏(inactivity leak)](https://eth2book.info/capella/part2/incentives/inactivity/) \"机制，允许链继续运行并在超过 1/3 的验证者离线时恢复。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1720443255966)\r\n\r\n> [单Slot最终确定性设计](https://ethresear.ch/t/a-simple-single-slot-finality-protocol/14920)的示意图\r\n\r\n单Slot最终确定性的主要挑战在于，天真地看，似乎意味着每个以太坊验证者都需要每 12 秒发布两条消息，这对链来说是一笔_巨大_的负担。有[聪明的想法](https://ethresear.ch/t/sticking-to-8192-signatures-per-slot-post-ssf-how-and-why/17989)可以缓解这一问题，包括最近的 [Orbit SSF](https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928) 提议。但即便如此，虽然这通过加快\"最终确定性\"来显著改善用户体验，但这并不改变用户需要等待 5-20 秒的事实。\r\n\r\n## Rollup 预确认\r\n\r\n在过去几年里，以太坊一直在遵循[基于 Rollup 的路线图](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) ，设计以太坊基础层（**L1**）以支持[数据可用性](https://ethereum.org/en/developers/docs/data-availability/)和其他功能，然后可以被** Layer2 ** 协议如 [Rollups](https://learnblockchain.cn/article/1977)（但也包括 [validiums](https://ethereum.org/en/developers/docs/scaling/validium/) 和[plasmas](https://learnblockchain.cn/article/6935)）使用，这些协议可以为用户提供与以太坊相同级别的安全性，但规模更大。\r\n\r\n这在以太坊生态系统内部创建了一个[关注点分离： Layer2 们和执行分片在技术上有什么真正的区别？\r\n](https://learnblockchain.cn/article/8184) ：以太坊 L1 可以专注于抗审查、可靠、稳定，并维护和改进某种基本核心功能水平，而 L2 可以专注于更直接地接触用户 - 通过不同的[文化](https://vitalik.eth.limo/general/2024/05/29/l2culture.html)和技术权衡。但如果你选择这条路，一个不可避免的问题就会出现：**L2 希望为希望比 5-20 秒更快确认的用户提供服务**。\r\n\r\n到目前为止，至少在说辞上，L2 的责任是创建他们自己的\"去中心化排序\"网络。一小部分验证者会签署区块，也许每隔几百毫秒一次，并且他们会将他们的\"质押（stake）\"放在这些区块后面。最终，这些 L2 区块头被发布到 L1。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1720443255980)\r\n\r\nL2 验证者组可能会作弊：他们可能首先签署区块 B1，然后稍后签署一个冲突的区块 B2，并在 B1 之前将其提交到链上。但如果他们这样做，他们将被抓住并失去他们的存款。实际上，我们已经看到了这种中心化版本，但 Rollups 在开发去中心化排序网络方面进展缓慢。**你可以争辩说要求所有 L2 都进行去中心化排序是一种不公平的交易：我们要求 Rollups 基本上做与创建一个全新 L1 大部分工作相同**。因此，出于这个原因和其他原因，Justin Drake 一直在推广一种方法，为所有 L2（以及 L1）提供共享的以太坊范围预确认机制： [基于预确认](https://ethresear.ch/t/based-preconfirmations/17353) 。\r\n\r\n### 基于预确认（Based preconfirmation）\r\n\r\n基于预确认方法假设以太坊提议者将因 MEV 相关原因变得非常复杂（请参见[此处](https://vitalik.eth.limo/general/2024/05/17/decentralization.html#mev-and-builder-dependence)关于 MEV 的解释，也请参见[执行票据](https://ethresear.ch/t/execution-tickets/17944)提案系列）。基于预确认方法利用这种复杂性，通过激励这些复杂的提议者承担提供预确认作为服务的责任。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1720443255962)\r\n\r\n基本思想是创建一个标准化的协议，用户可以提供额外费用，以换取立即保证交易将被包含在下一个区块中，可能还会声明执行该交易的结果。如果提议者违反他们向任何用户做出的任何承诺，他们将被惩罚。\r\n\r\n如描述的，基于预确认为 L1 交易提供保证。如果 Rollups 是 [\"Based\"](https://ethresear.ch/t/based-rollups-superpowers-from-l1-sequencing/15016)，那么所有 L2 区块_都是_ L1 交易，因此可以使用相同的机制为任何 L2 提供预确认。\r\n\r\n## 我们实际上在看什么？\r\n\r\n假设我们实现了单Slot最终确定性。我们使用 [Orbit](https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928) 类似的技术来减少每个Slot签名的验证者数量，但不要减少太多，以便我们也可以在降低 32 ETH 质押最低要求的关键目标上取得进展。结果，也许Slot时间会上升到 16 秒。然后，我们使用 Rollup 预确认或基于预确认，为用户提供更快的保证。现在我们有了什么？**一个Epoch和Slot架构**。\r\n![](https://img.learnblockchain.cn/attachments/migrate/1720443255968) \r\n![](https://img.learnblockchain.cn/attachments/migrate/1720443255978)\r\n\r\n> 它们是同一张图片\"的梗现在已经被过度使用了，所以我将放一张我多年前画的 Gasper 的 slot-and-epoch 架构图和一个 L2 预确认的图放在一起，希望这样能表达清楚。\r\n\r\n**有一个深刻的哲学原因解释了为什么 epoch-and-slot 架构似乎很难避免：在某件事上达成近似一致所需的时间比达成最大程度的“经济上最终性”一致所需的时间更少。**\r\n\r\n一个简单的原因是节点数量。虽然由于超级优化的 BLS 聚合和在不久的将来的 ZK-STARKs，旧的线性[去中心化/最终性时间/开销权衡](https://medium.com/@VitalikButerin/parametrizing-casper-the-decentralization-finality-time-overhead-tradeoff-3f2011672735)看起来现在较为温和，但基本上仍然是真实的：\r\n\r\n1. “近似一致”只需要少数节点，而经济上最终性需要所有节点的相当比例。\r\n2. 一旦节点数量超过一定规模，你需要花费更多时间来收集签名。\r\n\r\n在今天的以太坊中，12 秒的 slot 被分为三个子 slot，用于(i) 区块发布和分发，(ii) 见证，和(iii) 见证聚合。如果见证者数量较低，我们可以减少到两个子 slot，并将 slot 时间缩短到 8 秒。另一个，也是现实中更大的因素是节点的“质量”。如果我们也可以依赖专业化的节点子集来进行近似一致协议（并仍然使用完整的验证器集进行最终性），我们可能可以将其缩短到约 2 秒。\r\n\r\n因此，我觉得**(i) slot-and-epoch 架构显然是正确的，但也(ii) 并非所有 slot-and-epoch 架构都是平等的，更全面地探索设计空间是有价值的**。特别是，值得探索那些不像 Gasper 那样紧密交织在一起的选项，而是在两种机制之间有更强的关注点分离。\r\n\r\n## L2 应该做什么？\r\n\r\n在我看来，目前 L2 可以采取三种合理的策略：\r\n\r\n1. **在技术和精神上 “Based”**。也就是说，它们优化以太坊基础层的技术属性和价值（高度去中心化，抗审查等）的传递通道。在最简单的形式中，你可以将这些 rollups 视为“品牌化的分片”，但它们也可以比这更雄心勃勃，并且可以大量尝试新的虚拟机设计和其他技术改进。\r\n2. **自豪地成为“带有区块链脚手架的服务器”，并充分利用优势**。如果你从服务器开始，然后添加(i) STARK 有效性证明以确保服务器遵循规则，(ii) 用户有权退出或强制交易，可能还有(iii) 集体选择的自由，无论是通过协调的大规模退出还是通过投票更改排序器，那么可以获得了很多在链上的好处，同时保留了服务器的大部分效率。\r\n3. **妥协的方法：一个由一百个节点组成的快速链，以太坊提供额外的互操作性和安全性**。这是许多 L2 项目的事实上的当前路线图。\r\n\r\n对于一些应用程序（例如 [ENS](https://blog.ens.domains/post/ensv2)，[密钥存储](https://safe.global/blog/keystore-rollup-smart-account-interoperability)等），12 秒的区块时间已经足够。对于那些不够的应用程序，唯一的解决方案是 slot-and-epoch 架构。在这三种情况下，“epochs”是以太坊的 SSF（也许我们可以将该首字母缩写“单个 slot（single slot Finality 单Slot最终确定性 ）” ， 换个解释，例如可以是“安全快速最终性（Secure Speedy Finality）”）。但在上述三种情况下，“slots”是不同的：\r\n\r\n1. 以太坊原生的 slot-and-epoch 架构\r\n2. 服务器预确认\r\n3. 委员会预确认\r\n\r\n一个关键问题是，我们能在类别（1）中做到多好？特别是，如果它变得非常好，那么感觉类别（3）的意义就不那么大了。类别（2）将始终存在，至少因为任何“based”都不适用于像 plasmas 和 validiums 这样的链下数据 L2。但是，如果以太坊原生的 slot-and-epoch 架构可以缩短到 1 秒 “slot”（如预确认）时间，那么类别（3）的空间就会变得小得多。\r\n\r\n今天，我们远未找到这些问题的最终答案。一个关键问题 - 区块提议者将变得多复杂 - 仍然是一个存在相当多不确定性的领域。像 [Orbit SSF](https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928) 这样的设计是非常新的，这表明以 Orbit SSF 为 epoch 的 slot-and-epoch 设计空间仍然相当未被探索。我们拥有的选项越多，我们就能为 L1 和 L2 上的用户做得越好，我们就能简化 L2 开发者的工作。\r\n\r\n> 我是 [AI 翻译官](https://learnblockchain.cn/people/19584)，为大家转译优秀英文文章，如有翻译不通的地方，在[这里](https://github.com/lbc-team/Pioneer/blob/master/translations/8656.md)修改，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/71","address":null},"history":null,"timestamp":1720446953,"version":1}