以太坊当前最终性(finality)需要约1000秒,导致用户体验差、应用需复杂变通。本文提出渐进式改进路线:首先将最终性投票与分叉选择投票解耦,这是关键突破;然后通过减少验证者数量(如鼓励合并)、优化网络层、引入单轮最终性等方式,逐步将最终性时间缩短至约10秒。文章强调保持验证者多样性,避免牺牲去中心化。
以太坊具备成为全球结算层的强大基础:它是世界上最可信的中立、信任最小化、可靠、无需许可的平台。但真正的交易结算——即最终性——仍然相对缓慢。这种缓慢损害了用户体验,迫使基于以太坊构建的平台和应用采用复杂的变通方案和风险缓解措施,并造成了降低资本效率的经济摩擦。
本更新是一个系列的第一篇,介绍我们如何计划改善以太坊的最终性时间,巩固其作为全球结算层的地位。
我们在升级到权益证明时,赋予了以太坊一个重要的新特性:最终性。现在是时候进行下一次升级了——我们将让最终性变得快速。
如果你已经了解最终性(以及任何无关概念),可以跳过背景部分,直接跳转至计划部分。
通俗来说,最终性是指链上的内容将永久保留在链上。纯粹的工作量证明区块链(如以太坊曾使用的模式)并不具备这种保证——它们始终容易受到强大攻击者的攻击,攻击者可以重建链并回滚任意数量的过去交易,重新排序或直接从历史中删除它们。例如,这就是经典的“双花”攻击的设置方式。
相比之下,权益证明链上的验证者能够就链上的一个点达成一致,在此之前他们永远不会回滚区块。从该点起,整个链便是不可变的,你可以完全信赖其历史(除非社会共识干预并重写历史,这在以太坊上从未发生过)。
在权益证明下,以太坊具有两个关于最终性的具体保证。
第一,如果少于三分之一的质押者是敌对的(即他们想要攻击链的完整性),那么最终性是绝对的。只会存在一个单一的、无可辩驳的最终化链历史。
第二,即使攻击者控制了超过三分之一的质押量,并且成功地最终化了两个冲突的历史,他们也将会遭受巨大的罚没惩罚:至少三分之一的质押ETH,按目前水平,接近 1300 万 ETH。
最终性是一个强大的属性。它使以太坊有能力保护价值数十亿美元的资产。
关于可用链重要性的深入探讨,请参见 Luca Zanolini 的 这篇文章。
在以太坊上,我们重视可用性。即使最终性远远落后或完全停滞,链也会继续处理交易并添加区块。这是一种设计选择,与工作量证明下的情况类似,链虽然从未真正最终化,但仍能持续运行。
可用性对于系统正常运行时间和用户体验非常有利,但它会使链的最新部分(介于最后一个最终化区块和当前区块之间)容易受到意外或故意的重组。正常运行时,最近的 63 到 95 个区块处于未最终化状态。当网络出现问题时,链的未最终化尾部可能变得更长。这个未最终化的尾部在理论上容易受到攻击,尽管强制进行长重组极难实现。

在某个时间点,我的节点看到的链视图是区块 [A,B,D,E,F]
一段时间后,它看到了区块 G,该区块基于 C 构建。如果我的节点确信 G 现在是链的最佳头,那么它的视图将变为 [A,B,C,G]。区块 D、E 和 F 及其交易被“重组”出去了。
意外的短重组通常不是大问题,这可能在网络轻度中断或出块延迟时发生。通常,被重组出去的交易会返回到 mempool 并自动在另一个区块中被重新添加,不会产生重大影响(尽管这可能对私有 mempool 造成严重破坏)。
虽然很难实现,但故意的重组可能更麻烦。强大的攻击者可能会尝试窃取其他提议者的 MEV 交易、临时审查交易(或许包括预言机更新)、操纵协议中的 RANDAO 从而获得过大的影响力,甚至在最极端的情况下进行双花攻击。
简而言之:容易受到重组影响是不利的,链的尖端越脆弱,情况可能越糟。

当所有诚实节点协作达成一个检查点(在此之前不会重组)时,即实现最终性。更近期的区块集合是动态可用链,容易受到重组。当前的动态可用部分最少包含 63 个区块——这正是我们希望大幅缩减的部分。
由于最终性目前需要很长时间,以太坊上的应用经常使用启发式方法和变通方案来最小化重组的影响,同时不等待完全最终性。
例如:
如果最终性更快,所有这些都可以变得更简单、更安全。当然,这些平台的最终用户也将受益!我预计快速最终性最显著的益处将体现在快速且廉价的跨链桥接和互操作性上,使我们多链的现实比今天更加无缝。
提高安全性通常会恶化用户体验。快速最终性同时提高了可用性和安全性。
大多数时候,新的快速确认规则将带来巨大帮助。当网络运行平稳且潜在攻击者不太强大时,它能在极短时间内(约 13 秒)确认一个区块不会被重组。对于大多数场景,大多数时候,这是用户体验的巨大升级。然而,快速确认并不具备最终性的完全保证:它无法容忍网络延迟,也没有经济安全性作为后盾。当网络出现问题时——正是需要这些保证的时刻——它出于谨慎将回退到最终性,使安全性再次推迟到 13 分钟之外。
基于所有这些原因——为了减少链上易受重组的区块数量以及由此对应用带来的风险——我们需要缩短以太坊的最终性时间(TTF)。
要达到最终性,链必须处理代表至少三分之二质押量的投票,这大约是三分之二的验证者——这是分布式系统设计中的已知结论,并非以太坊独有。这意味着需要收集超过 60 万张投票,将其聚合成最小尺寸,并插入区块中。
实际上,这需要执行两次。Casper FFG(我们目前的“友好最终性小工具”)的设计要求两轮投票:第一轮用于“合理化”链上的检查点,第二轮用于最终化该检查点。Casper FFG 将这些投票进行流水线处理,使得每轮都可以声明一个最终化检查点,但达到最终性仍然需要完整的两个轮次。
在 Casper FFG 中,我们称一个投票轮次为一个 epoch:一个 epoch 有 32 个 slot,每个 slot 为 12 秒。因此,当前最小 TTF 为 2 × 32 × 12 = 768 秒(实际上比这个少 12 秒,因为检查点是 epoch 的第一个 slot,但数量级差不多)。一个交易的平均(期望)TTF 还要再加上半个 epoch,即 960 秒。
可以公平地说,当前设计是一个保守的选择,自 2020 年 12 月信标链创世以来一直沿用。问题是,我们还能改进多少?
挑战:能否将最终性时间从约 1000 秒降至约 10 秒,实现两个数量级的加速?
快速最终性涉及一系列相互关联的挑战:网络架构、验证者集合管理、验证者整合、认证聚合、与 slot 长度的交互、共识算法设计、可用链与最终化链的关系等等。
过去实现快速最终性的尝试(例如单 slot 最终性、三 slot 最终性)在本质上都是“全有或全无”模式,因此举步维艰:它们要求我们在解决任何问题之前必须先解决所有问题。而这些又是难题;一次性解决全部将是巨大的挑战,可能需要数年时间。
我们的新方法将挑战分解为一系列较小的升级,每个升级都能使最终性更快。首先,我们将最终性与共识过程的其余部分解耦。这是关键的突破口。然后,我们就可以在后续升级中,通过分别优化我之前提到的各个方面,逐步改善最终性时间。
分阶段进行的一个重要好处是,我们可以有机会在每个步骤进行度量和优化。这降低了交付风险,帮助我们在做出较少假设的情况下交付更高效的协议。
关于解耦最终性的深入探讨,请参见 Francesco D'Amato 的 这篇文章。
目前阻碍我们追求更快最终性的一个问题是,最终性投票与分叉选择投票紧密耦合。
为了解这一点,在以太坊中,事情发生在两个不同的时间尺度上。较快的时间尺度是逐 slot 的区块构建。每个 slot 都有一个指定的区块提议者。该提议者必须决定在其基础上构建其交易区块。通常这很简单明了。但如果存在网络延迟,或者攻击者在之前 slot 发布了多个区块,我们需要一种方法从候选区块中选出最佳“头区块”。这就是分叉选择的作用,在以太坊中称为 LMD GHOST。分叉选择受到验证者在最近几秒内收到的投票的强烈影响,这些投票来自整个验证者集的一个较小子集。
与逐 slot 分叉选择并存的是上面描述的慢得多的最终性过程,称为 Casper FFG,旨在收集整个验证者集的投票。这两者合称为 Gasper。
关键在于,我们当前的设计将这些不同过程的投票耦合到一个称为“认证”的单一结构中:
class AttestationData(Container):
slot: Slot
index: CommitteeIndex
# LMD GHOST 投票
beacon_block_root: Root
# FFG 投票
source: Checkpoint
target: Checkpoint
可以看到认证中同时包含短时间尺度的 LMD GHOST 投票和长时间尺度的 Casper FFG 投票。这紧密地耦合了逐 slot 进展与最终性进展,限制了我们实现更快最终性的能力,而无需对 slot 结构做出重大改变。Slot 结构已经相当复杂,并且随着 ePBS 的引入变得更加复杂,同时还有缩短 slot 时间的趋势。实际上,解耦最终性可能对实现更短的 slot 时间有巨大帮助:目前我们使用每个 slot 约 30,000 名验证者的认证来驱动分叉选择;紧密耦合实际上迫使我们这样做。但使用更少的验证者(例如 256 或 512 名验证者的委员会,其投票收集速度更快)也是可行的。
因此,我们计划做的第一件事就是将最终性与逐 slot 分叉选择解耦。本质上,验证者将分别为最终性和分叉选择投出单独的票,这些票将在网络上独立传输和处理。
将认证拆分为独立的分叉选择部分和最终性部分,将使我们能够在网络上对每个部分进行优化。

正如 Francesco 的文章中所讨论的,仍将存在一个最终性小工具,类似于 Casper FFG,但可能使用略有不同的共识算法。然而,与 FFG 不同,这个最终性小工具将按照自己的时间尺度工作,利用所有可用带宽,不受 slot 时间和当前 epoch 长度的限制。
我预计仅解耦本身就能显著提升最终性时间。从今天的网络来看,认证传播具有突发性,只占用了 slot 中可用时间的一小部分。这是由于需要尽可能多的 LMD GHOST 头投票及时到达下一个区块提议者,以便其运行分叉选择。当最终性投票与头投票解耦后,它们将能够利用这目前空闲的带宽,更快地收集投票。
可能还有一些其他简单的优化,例如对最终性投票的聚合和分发进行改进,在实现解耦的第一步就能带来低个位数的最终性加速。
解耦最终性是关键的突破口。
但低个位数的加速并非我们的最终目标。一旦最终性解耦,我们就有空间在不影响信标链其他部分的情况下逐步改善最终性时间。
我们计划在多个方面推进。我们可以一起或分别交付这些改进;路线图非常灵活。以下列出了当前正在进行的工作,其他方法也可能适时出现。请注意,这并非确切的路线图——目前只是一系列可能进行或不进行的改进,取决于进一步的研究。
实现快速最终性最快和最简单的方法是大幅减少网络上的验证者数量。好消息是,有一种方法可以在不影响验证者多样性的前提下实现这一点。由于历史设计原因,大型质押提供者运行许多 32 ETH 的验证者。自信标链 Electra 升级以来,可以将多达 64 个验证者合并为一个验证者,大大减少最终性投票的开销。如果大型运营者能够最优地整合其所有质押,那么我们已经接近实现秒级最终性了。不幸的是,整合进展缓慢。如果这种情况没有改善,我们可能需要考虑激励整合或惩罚不整合的方法。

一种比整合验证者质押更轻量的替代方案可能是“在源头批量认证”。与整合类似,这认识到许多由同一大型实体管理的验证者可能位于同一个信标节点后面。该提案不是在网络上单独广播每个验证者的投票,而是先将它们聚合起来再发送到网络,从而有望节省大量带宽。这项工作正在进行中(优先消除处罚条件以促进采用)。另一个类似的替代方案可能是 NetClusters。
减少大量验证者开销的另一种方法是使用类似 Orbit 的方法进行验证者集合轮换。不排除任何验证者,也不限制验证者总数,但只有一部分验证者在任意时刻参与最终性。
点对点网络层是潜在改进的丰富来源。广播和聚合独立的最终性投票是一个优化目标;减少其他活动(如区块传输)的带宽以为最终性投票留出更多空间是另一个目标。许多这样的改进正在进行中,我们正朝着 ethp2p 努力——我听到传言称有巨大的进展正在开发中。
网络的一部分涉及将所有单独的认证聚合成更小的单元。信标链当前的方法效率不够高,因为无法组合两个都包含来自同一验证者认证的聚合认证——我们只能组合完全不重叠的聚合。通过引入 Lean Ethereum 工作中的 SNARK 聚合,或许可以消除这种低效。
在网络和验证者管理之外,路线图中一个非常有趣的创新是单轮最终性。如上所述,经典最终性协议需要两轮完整的投票,这给了我们最大可能的安全边际(33% 的敌对质押)。然而,如果我们愿意降低容错性(例如降至 20% 或 17%),我们可以在仅一轮投票后达成最终性,几乎将 TTF 减半。考虑到当前质押的金额,这种安全边际降低可能是完全可以接受的。
最后,随着时间的推移,我们可以预期全球基础设施持续改进:带宽上升,延迟下降。在合适的时候,我们应能够重新审视我们的质押者硬件和带宽推荐,而不排除任何现有参与者。
这些改进中的每一个单独来看可能带给我们低个位数的最终性加速。如果部署四个改进,每个带来 3 倍加速,那么实际上我们就达到了所需的 100 倍总加速。这种增量方法与以太坊在执行层和数据层成功实现更高 gas 上限和更高 blob 上限的增量交付类似。
还有一个理由值得彻底改革以太坊的最终性小工具。真相是,LMD GHOST 和 Casper FFG 从未完美地协同工作。以太坊是第一个尝试将动态可用链(提供活性)与尾部最终性小工具(提供安全性)结合的“潮起潮落”模型的区块链。总体而言非常成功,但与所有首次尝试一样,存在一些粗糙的边缘。LMD GHOST 和 Casper FFG 之间的交互一直是一个问题丰富的源泉,需要随着时间的推移进行各种修复和修补,并且仍然比我们期望的更复杂且安全性不足。
多年审查中的经验使我们能够构建一个根本更好的解决方案。
许多问题的根源在于攻击者能够存储认证并在自己选择的策略时机释放。从 LMD GHOST 转向像 Goldfish 这样的“无记忆”分叉选择协议可以解决这个问题。切换到解耦协议是改变现状的理想时机。
自合并以来,在以太坊上实现更快的最终性一直是一个愿景。本文的目标是勾勒一条实际、可行的路线图,将愿景变为现实:首先将最终性与逐 slot 分叉选择解耦,然后随着一系列更广泛的改进部署上链,逐步改善最终性时间。在未来的版本中,我将更深入地探讨具体的进展、技术细节和实际数据——本文可作为我们前进方向的指引。
我个人的目标是在不牺牲验证者多样性的前提下实现足够快的最终性。也就是说,不排除家庭质押者、独立质押者和偏远地区的质押者。我们能否实现这一目标还有待观察:在某个时刻,我们可能需要作为社区权衡更快最终性与降低质押多样性之间的利弊。但我想先看看在不妥协的情况下我们能做得多好,因为验证者多样性是以太坊与所有其他 Alt-L1 链之间最重要的区别。
以太坊选择困难模式。
何时实现快速最终性?作为一个拓展目标,Strawmap 将解耦共识列为 I* 分叉的候选主题,可能在 2027 年左右的某个时间。还有很多理论和实践工作需要完成。我们尚未拥有解耦共识的成熟设计,尽管进展强劲。仍有一些棘手的问题有待解决,例如如何处理不活动泄露(也称为可问责活性)、如何重新设计逐 slot 共识、以及如何实现后量子兼容等诸多事项。形式上证明新协议需要大量工作,当然还需要在客户端中实现并在开发网和测试网上进行全面测试。但以太坊的一些最聪明的头脑正专注于实现这一目标。
非常感谢 Barnabé、Mikhail、Roberto 和 Vitalik 的审阅和宝贵反馈。
- 原文链接: consensus.ethereum.found...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
作者暂未设置收款二维码