以太坊区块需要大约 15 分钟才能最终确定。然而,我们可以使以太坊的共识机制更高效地验证区块,并大幅缩短达到最终性的时间。区块可以在同一个时隙内被提议并最终确定,而无需等待 15 分钟。这个概念被称为单槽最终性 (SSF)。
什么是最终性?
在以太坊基于权益证明 (PoS) 的共识机制中,最终性是指一种保证,即如果不销毁至少占总质押 ETH 33% 的份额,就无法更改或从区块链中移除某个区块。这是一种“加密经济”安全,因为这种信心来源于更改链的顺序或内容所需付出的极高成本,这足以阻止任何理性的经济参与者尝试这样做。
为什么要追求更快的最终性?
事实证明,目前达到最终性的时间太长了。大多数用户不想等待 15 分钟才能达到最终性,而且对于可能希望获得高交易吞吐量的应用程序和交易所来说,必须等待这么长时间才能确定其交易是永久性的,这非常不方便。在区块提议和最终确定之间存在延迟,也为短期重组创造了机会,攻击者可以利用这种重组来审查某些区块或提取最大可提取价值 (MEV)。处理分阶段升级区块的机制也相当复杂,并且已经进行了多次修补以堵住安全漏洞,这使其成为以太坊代码库中更容易出现微妙错误的组成部分之一。通过将达到最终性的时间缩短到单个时隙,可以消除所有这些问题。
去中心化、时间与开销的权衡
最终性保证并不是新区块的即时属性;新区块需要时间才能最终确定。原因是,代表网络上至少 2/3 总质押 ETH 的验证者必须对该区块进行投票(“证明”),该区块才能被视为已最终确定。网络上的每个验证节点都必须处理来自其他节点的证明,以便知道某个区块是否达到了 2/3 的阈值。
允许达到最终确定的时间越短,每个节点所需的计算能力就越大,因为证明处理必须更快地完成。此外,网络上存在的验证节点越多,每个区块必须处理的证明就越多,这也增加了所需的处理能力。所需的处理能力越大,能够参与的人就越少,因为运行每个验证节点需要更昂贵的硬件。增加区块之间的时间会减少每个节点所需的计算能力,但也会延长达到最终性的时间,因为证明的处理速度会变慢。
因此,在开销(计算能力)、去中心化(可以参与验证链的节点数量)和达到最终性的时间之间存在权衡。理想的系统在最小计算能力、最大去中心化和最短最终性时间之间取得平衡。
以太坊目前的共识机制通过以下方式平衡了这三个参数:
- 将最低质押要求设置为 32 ETH。这为单个节点必须处理的验证者证明数量设定了上限,从而为每个节点的计算要求设定了上限。
- 将达到最终性的时间设置为约 15 分钟。这为在普通家用计算机上运行的验证者提供了充足的时间来安全地处理每个区块的证明。
在目前的机制设计下,为了缩短达到最终性的时间,必须减少网络上的验证者数量或提高每个节点的硬件要求。然而,可以对证明的处理方式进行改进,从而允许计算更多的证明,而不会增加每个节点的开销。更高效的处理将允许在单个时隙内确定最终性,而不是跨越两个时段。
实现单槽最终性 (SSF) 的途径
目前的共识机制将来自多个验证者(称为委员会)的证明结合起来,以减少每个验证者在验证区块时必须处理的消息数量。每个验证者都有机会在每个时段(32 个时隙)内进行证明,但在每个时隙中,只有一部分验证者(称为“委员会”)进行证明。他们通过划分为子网来实现这一点,在子网中,少数验证者被选为“聚合者”。这些聚合者各自将他们从其子网中其他验证者那里看到的所有签名组合成一个单一的聚合签名。包含最多个人贡献的聚合者将其聚合签名传递给区块提议者,区块提议者将其与其他委员会的聚合签名一起包含在区块中。
这个过程为每个验证者在每个时段内投票提供了足够的能力,因为 32 slots * 64 committees * 256 validators per committee = 524,288 validators per epoch。在撰写本文时(2023 年 2 月),大约有 513,000 个活跃的验证者。
在这个方案中,只有通过将证明分布在整个时段内,每个验证者才有可能对区块进行投票。然而,有可能通过改进机制,使得_每个验证者都有机会在每个时隙中进行证明_。
自以太坊共识机制设计以来,人们发现签名聚合方案 (BLS) 的可扩展性远超最初的想象,同时客户端处理和验证签名的能力也有所提高。事实证明,在单个时隙内处理来自大量验证者的证明实际上是可能的。例如,如果有一百万个验证者,每个验证者在每个时隙中投票两次,并且时隙时间调整为 16 秒,节点将需要以每秒至少 125,000 次聚合的速度验证签名,以便在时隙内处理所有 100 万个证明。实际上,一台普通计算机进行一次签名验证大约需要 500 纳秒,这意味着 125,000 次验证可以在约 62.5 毫秒内完成——远低于一秒的阈值。
通过在每个时隙创建例如由 125,000 个随机选择的验证者组成的超级委员会,可以进一步提高效率。只有这些验证者才能对区块进行投票,因此只有这部分验证者决定区块是否已最终确定。这是否是一个好主意,取决于社区希望对以太坊进行成功攻击的成本有多高。这是因为攻击者不需要总质押以太币的 2/3,而是可以使用_该超级委员会中_ 2/3 的质押以太币来最终确定一个不诚实的区块。这仍然是一个活跃的研究领域,但似乎可以肯定的是,对于一个大到首先需要超级委员会的验证者集来说,攻击其中一个子委员会的成本将极高(例如,以 ETH 计价的攻击成本将是 2/3 * 125,000 * 32 = ~2.6 million ETH)。可以通过增加验证者集的大小来调整攻击成本(例如,调整验证者规模,使攻击成本等于 100 万以太币、400 万以太币、1000 万以太币等)。社区的初步民意调查 (opens in a new tab)似乎表明,100 万至 200 万以太币是可接受的攻击成本,这意味着每个超级委员会大约需要 65,536 至 97,152 个验证者。
然而,验证并不是真正的瓶颈——签名聚合才是真正挑战验证者节点的地方。要扩展签名聚合,可能需要增加每个子网中的验证者数量、增加子网数量,或添加额外的聚合层(即实施委员会的委员会)。部分解决方案可能是允许专门的聚合者——类似于在提议者-构建者分离 (PBS) 和丹克分片下,区块构建和为 Rollup 数据生成承诺将被外包给专门的区块构建者。
分叉选择规则在单槽最终性 (SSF) 中的作用是什么?
今天的共识机制依赖于最终性小工具(确定是否有 2/3 的验证者证明了某条链的算法)和分叉选择规则(在有多个选项时决定哪条链是正确链的算法)之间的紧密耦合。分叉选择算法仅考虑_自_上一个已最终确定区块以来的区块。在单槽最终性 (SSF) 下,分叉选择规则将没有任何区块需要考虑,因为最终性与区块提议发生在同一个时隙中。这意味着在 SSF 下,分叉选择算法_或_最终性小工具在任何时候都将处于活动状态。最终性小工具将最终确定有 2/3 验证者在线并诚实证明的区块。如果一个区块无法超过 2/3 的阈值,分叉选择规则将启动以确定要遵循哪条链。这也创造了一个机会来维持怠工泄漏机制,该机制可以恢复超过 1/3 验证者离线的链,尽管会有一些额外的细微差别。
悬而未决的问题
通过增加每个子网的验证者数量来扩展聚合的问题在于,这会导致点对点网络上的负载增加。增加聚合层的问题在于,其工程实现相当复杂,并且会增加延迟(即区块提议者可能需要更长的时间才能收到所有子网聚合者的消息)。目前尚不清楚如何处理网络上活跃验证者数量超过每个时隙可行处理数量的情况,即使使用 BLS 签名聚合也是如此。一个潜在的解决方案是,由于所有验证者都在每个时隙中进行证明,并且在 SSF 下没有委员会,因此可以完全取消对有效余额的 32 ETH 上限,这意味着管理多个验证者的运营商可以合并他们的质押并运行更少的验证者,从而减少验证节点必须处理的消息数量,以涵盖整个验证者集。这依赖于大型质押者同意合并他们的验证者。也可以在任何时候对验证者数量或质押 ETH 的数量施加固定上限。然而,这需要某种机制来决定允许哪些验证者参与,哪些不允许,这很容易产生不必要的副作用。
当前进展
单槽最终性 (SSF) 目前处于研究阶段。预计几年内不会发布,可能会在其他重大升级(如沃克尔树和丹克分片)之后推出。
延伸阅读
页面最后更新: 2026年6月6日