原文:Validity Proofs vs. Fraud Proofs
翻译及校对:「Starknet 中文社区」
📑 转载请注明出处 🕹️
有效性证明提供了更高的安全性、资本效率和可扩展性
有效性证明的最大优势之一是保证 L2 区块链永远不会处于无效状态
对于批量计算,STARK 有效性 Rollup 的链上数据占用远小于乐观 Rollup
随着对更快速、更低成本的区块链交易需求的增长,各种 L2 扩展解决方案应运而生。这些解决方案旨在通过在链下处理交易来扩展底层 L1(几乎都是指以太坊),同时继承基础层的安全性。验证 L1 状态转换正确性的两种主要方法是乐观 Rollup(OR)使用的欺诈证明(Fraud Proof)和有效性 Rollup(VR)使用的有效性证明(Validity Proof)。本文,我们将探讨有效性证明相较于欺诈证明的主要优势,并解析常见误解。
L2 解决方案旨在通过在 L1 上执行大量交易,将它们打包在一起,然后在以太坊基础层上作为单个交易处理,从而解决可扩展性难题。用于建立 L2 状态转换完整性的证明主要有两种:
欺诈性证明:欺诈性证明假定 L2 区块是正确的,除非在挑战期内被证明是欺诈性的。如果检测到欺诈性的状态转换,可以提交欺诈证明,将区块链恢复到最后的有效状态。
有效性证明:有效性证明要求每个 L2 状态转换都必须伴随正确性的加密证明。当且仅当状态转换具有有效证明时,L1 区块链才会接受该状态转换。
值得注意的是,证明系统(例如,STARK、SNARK)既可用于欺诈证明,也可用于有效性证明。区别在于证明的内容,而不是证明的方式。
有效性证明的最大优势之一是保证 L2 区块链永远不会处于无效状态,这使得有效性证明比欺诈性证明更安全。相反,欺诈性证明允许暂时接受无效区块,从而产生安全风险:
51% 攻击:在通过乐观 Rollup 对 L1 区块链进行 51% 攻击时,攻击者可以生成一个欺诈区块,并在争议期内构建所需的确认区块。这样,攻击者就能在提交欺诈证明之前窃取资金。而通过使用有效性证明,在最坏的情况下,51% 攻击也只能审查新区块或将链回滚到之前的有效状态,但无效状态转换永远不会被网络接受。
争议程序中断:欺诈性证明依赖于交互式争议过程,该过程可能会被中断,从而防止无效转换回滚。沉默会被解释为认可新的 L2 状态。
通过使用有效性证明,在最坏的情况下,51% 攻击也只能审查新区块或将链回滚到之前的有效状态。无论 L1 区块链是否中断,无效的状态转换都不会被接受。在有效性 Rollup 中,新的 L2 状态的批准取决于交易的有效性。
有效性证明在资本效率方面具有显著优势,能更快地从 L2 提取资金到 L1:
快速提现:欺诈性证明需要等待一段挑战期(通常约一周或更长时间),而有效性证明则允许用户在生成证明(通常为 10 分钟或更短时间)之后,即可安全提现。两者提现时间相差 100 倍或更多,对资本效率有重大影响。
减少资本锁定:欺诈性证明需要在较长的争议窗口期内配置大量的资本以覆盖潜在的提现需求。
尽管快速提现机制可以帮助缓解这一问题,但它们也有局限性。对于某些资产,如非同质化代币(NFT),由于其 L2 和 L1 的版本不对等,因此无法实现与特定链上抵押品挂钩的快速提现。在这种情况下,有效性证明的提现速度仍然比乐观 Rollup 的欺诈性证明快得多。
本节,我们将比较两个链上数据可用的 Rollup 系统:乐观 Rollup(OR)和 STARK 有效性 Rollup(StR)。任何在链上存储数据的解决方案都有一个不希望出现的特性,即随着 Rollup 交易量的增加,链上资源消耗呈线性增长。链上数据包括一些状态(例如,交易详情)和见证数据(例如,证明交易各方同意的数字签名)。
乐观 Rollup 与 STARK 有效性 Rollup 之间的关键区别在于,乐观 Rollup 的见证数据随交易数量线性增长,而 STARK 有效性 Rollup 则用一个随交易数量多对数扩展的证明取代了所有这些见证数据。对于足够大的批量计算来说,STARK 有效性 Rollup 的链上数据占用远小于乐观 Rollup。具体来说,在 STARK 有效性 Rollup 中,见证数据可以证明 Rollup 操作员执行的检查(例如,所有数字签名都已验证)。因此,每批计算只需要一个见证数据(例如一个有效性证明),从而无需在每笔交易中都增补见证数据。在现代有效性证明系统中,证明的大小实际上是固定的(如前所述,为多对数级)。因此,随着批量规模增加,每笔交易的见证数据成本的分摊值会降低。
相比之下,乐观 Rollup 需要为每笔交易增补见证数据,以便验证者确保交易的正确性,因此其无法享受到因大批量计算带来成本分摊的好处。此外,乐观 Rollup 中的见证数据通常比交易本身要大得多。例如,在乐观 Rollup 中,见证数据必须包含所有用户的签名,而在 STARK 有效性 Rollup 中,这些签名可以被移除(因为证明会证实这些签名均已在链下检查过了)。在透明支付中,见证数据的大小是支付本身的 3-5 倍;而在更复杂的应用中(例如遮蔽交易),见证数据的大小通常是状态的 10 倍,甚至更多。这样一来,乐观 Rollup 消耗的链上资源要比 STARK 有效性 Rollup 多得多,而且也更快达到可扩展性上限。
有效性证明和乐观 Rollup 之间的常见对比,主要集中在它们的计算开销上:特定的链下计算需要的额外工作量是多少?我们将重点讨论 STARK,因为它是 StarkWare 目前正在实施的有效性证明框架。人们通常认为乐观 Rollup 所需的计算开销是交易本身所需的基本计算工作量的 100 倍,因为预计有 100 个验证者相互监督以确保计算正确执行。每个验证者都必须进行实际计算,这就造成了额外 100 倍的计算开销。值得注意的是,如果验证者人数较少或预先确定的验证者人数较多,就会增加通过贿赂进行共谋或外部攻击的风险。而在 STARK 证明中,由于验证过程在计算上不那么密集,只有一个实体 — 即验证者 — 需要进行大量计算。因为生成证明的计算复杂度较高,证明者的开销经常被认为是交易本身所需的基本计算工作量的 10,000 倍。但实际上,STARK 证明系统的计算开销约为基本计算工作量的 100 倍,与乐观 Rollup 差不多,原因如下:
对于算术和代数运算,计算开销已经小百倍。目前正在使用的 Pedersen 哈希函数,其通过 STARK 证明其正确性的成本仅比直接计算高出 20 倍。
虽然像 SHA-256 这样的运算有相当大的开销,但有计划将这些哈希函数替换为更适合 STARK 的替代品。所选的 STARK 友好型哈希函数的证明过程,预计比高效的哈希计算(如SHA-256)慢大约100倍。
一个常被提及的乐观 Rollup 的优势是它们适用于通用计算,并且默认与 EVM 兼容。然而,Starknet 使用 Cairo 编程语言,使其能够为通用计算实现 STARK 可证明的程序。
在 L2 区块链扩容解决方案的背景下,有效性证明相比于欺诈性证明,提供了更高的安全性、资本效率和可扩展性。随着像 STARK 这样高效的证明系统的发展,实际应用有效性证明的历史障碍正在被克服。随着区块链网络的持续演变和对安全、高性能扩容的需求增长,有效性证明将在支持下一代 L2 基础设施方面发挥关键作用。