单时隙确定性
目前,以太坊区块大约需要 15 分钟才能最终确定。 然而,我们可以提高以太坊的共识机制验证区块的效率,大幅减少最终确定所需的时间。 区块可以在同一时隙内提议并最终确定,无需等待 15 分钟。 这一概念叫做单时隙确定性 (SSF) 。
什么是最终确定性?
在以太坊基于权益证明的共识机制中,确定性是指在质押的以太币总数的至少 33% 被销毁之前,保证区块保持原状或继续留在区块链中。 这样可以实现“加密经济学”安全性,因为人们对区块链的信心来自于改变区块链的顺序或内容成本极高,因而理性的经济行为者不会试图这样做。
为什么要追求更快实现确定性?
目前,最终确定区块所需的时间太长。 大多数用户都不希望等待 15 分钟才能最终确定交易,而且对于希望实现高交易吞吐量的应用程序和交易所来说,等待如此长时间才能确定交易是否最终完成也极其不便。 区块提出和最终确定之间的延迟也使得短时间重组有了可乘之机,攻击者可以利用这种方式审查某些区块或提取最大可提取价值 (MEV)。 处理分阶段升级区块的机制也相当复杂,而且已多次打补丁以弥补安全漏洞,这使得它成为以太坊代码库中较容易出现细微漏洞的部分之一。 这些问题都可以通过将最终确定时间缩短到一个时隙来解决。
去中心化/时间/费用的权衡
新区块并非可以立即实现有保证的最终确定性;新区块的最终确定需要时间。 之所以出现这种现象,是因为只有代表网络上的质押以太币总数的至少 2/3 的验证者投票支持("认证"),区块才能被视为最终确定。 网络上的每个验证节点必须处理来自其他节点的认证,才能知道某个区块是否达到了这一 2/3 阈值。
完成最后确认的时间越短,每个节点所需的算力就越强,因为它需要更快地完成认证处理。 此外,网络上的验证节点越多,每个区块需要处理的认证就越多,这也增加了所需的处理能力。 需要的处理能力越强,能参与的人数就越少,因为运行每个验证节点需要更加昂贵的硬件。 延长区块之间的时间可以降低每个节点所需的算力,但也会延长最终确认时间,因为认证的处理速度会变慢。
因此,我们需要在费用(算力)、去中心化(参与验证区块链的节点数量)和最终确定时间之间进行权衡。 理想的系统机制能够平衡最少的算力、最大化的去中心以及最短的最终确定时间。
以太坊现有的共识机制通过以下途径平衡了这三个参数:
- 将最少质押数量设为 32 以太币。 这就设定了单个节点需要处理的验证者认证数量的上限,因此也设定了每个节点的计算要求上限。
- 将最终确定时间设置为大约 15 分钟。 这使得验证者有充足的时间在普通家用计算机运行运算,从而安全地处理每个区块的认证。
根据目前的机制设计,为了减少最终确定的时间,必须减少网络上的验证者数量或者提高每个节点的硬件要求。 不过,我们可以改进处理认证的方式,在不增加每个节点的费用的前提下提高认证处理数量。 更高效的处理将可以在单一时隙内完成最终确定,无需延长至两个时段。
单时隙确定性的实现路径
自从以太坊共识机制设计问世以来,签名汇总方案 (BLS) 已经被证明比原先设想的扩展性更强,同时客户端处理和验证签名的能力也得到了提升。 事实证明,大量验证者在单时隙内处理认证是可行的。 例如,如果单时隙内一百万个验证者投票两次,时隙时间调整为 16 秒,则节点需要以每秒至少125,000 次聚合的速度认证签名,才能在单时隙内处理一百万次认证。 实际上,一台普通的计算机完成一次签名验证大约需要 500 纳秒,也就是说 125,000 次签名验证可以在大约 62.5 毫秒内完成 — 这远远低于 1 秒的阈值。
通过创建超级委员会能够进一步提高效率,例如每个时隙随机选择 125,000 个验证者。 只有这些验证者才能对区块进行投票,因此只有这一部分的验证者能够决定是否最终确定区块。 这个想法是否可行取决于社区希望成功攻击以太坊的成本有多高。 这是因为攻击者获得相应超级委员会中三分之二的质押以太币,就可以最终确定不诚实的区块,无需获得三分之二的质押以太币总数。 这仍然是一个积极的研究领域,但有一点似乎有道理,对于一个大到需要首先成立超级委员会的验证者集合而言,攻击那些小委员会的成本会非常高(例如:以以太币为单位,攻击成本将是2/3*125,000*32=~2,600,000 以太币
)。 攻击成本可以通过扩大验证者集合的规模进行调整(例如:调整验证者的规模,使攻击成本等于一百万以太币、四百万以太币、一千万以太币等)。 社区的初步意见调查(opens in a new tab)似乎表明,一百万到两百万以太币是可接受的攻击成本,这意味着每个超级委员会约有 65,536 到 97,153 个验证者。
然而,验证并不是真正的瓶颈 — 验证者节点的真正挑战是签名聚合。 要扩容签名聚合,可能需要增加每个子网中的验证者数量,增加子网的数量,或者增加额外聚合层(也就是说,设置委员会的委员会)。 部分解决措施可能是允许存在专业的聚合者 — 类似于通过提议者-构建者分离和 Danksharding,将区块构建和生成卷叠数据的承诺外包给专业区块构建者的做法。
在单时隙确定性中,分叉选择规则的作用是什么?
目前的共识机制依赖于确定性工具(决定三分之二的验证者是否已经认证某个区块链的算法)和分叉选择规则(决定在面临多种选择时哪一区块链是正确选择的算法)的紧密结合。 分叉选择算法只考虑最后一个确定的区块之后的区块。 在单时隙确定性下,不会有分叉选择规则要考虑任何区块,因为区块的确认时隙与提议时隙相同。 这意味着在单时隙确定性下,要么分叉选择算法,要么确定性工具,将会随时保持活跃。 确定性工具会最终确定三分之二的验证者在线并诚信认证的区块。 如果一个区块不能超过这一三分之二阈值,那么分叉选择规则将会确定遵循哪条区块链。 这也为维持怠惰惩罚机制创造了机会,这种机制能够收回> 1/3 的验证者离线的区块链(有一些额外的细微差别)。
未解决的问题
通过增加每个子网的验证者数量来扩容聚合的问题是,这会导致点对点网络的负载增加。 添加聚合层的问题是,这设计起来非常复杂并且会增加延迟(也就是说,它会让区块提议者接收所有子网聚合者的消息的时间延长)。 即使使用 BLS 签名聚合,也不清楚如何处理网上活跃的验证者数量超过了每个时隙的处理能力的情况。 一种可能的解决方法是,由于所有验证者都在每个时隙内认证并且在单时隙确定性下没有委员会,可完全取消有效余额 32 个以太币的上限,这意味着管理多个验证者的运营商能够合并它们的质押并减少运行的验证者,从而减少验证节点需要处理的信息数量,满足整个验证者集合的需求。 这取决于大质押人是否同意合并他们的验证者。 也可以对任何时间的验证者数量或者质押的以太币数量设置固定上限。 然而,这需要建立相应机制,决定允许哪些验证者参与,禁止哪些验证者参与,这种机制容易产生不希望的附带影响。
当前进展
单时隙确定性正处于研究阶段。 预计它不会在几年内推出,可能会在沃克尔树和 Danksharding 等其他重大升级之后推出。
延伸阅读
- Vitalik 在 2022 年全球区块链技术前沿系列峰会关于单时隙确定性的演讲(opens in a new tab)
- Vitalik 的说明:通往单时隙确定性的路径(opens in a new tab)