L2扩容技术详解:Optimistic Rollups 与 zk-Rollups

$ARB 即将上线,L2(Rollup)也得到了更多重视,最近关于OP和ZK两种解决方案孰优孰劣的争论越来越多,有人说OP是正统,有人说ZK更安全,本文将深入探讨两种流行的二层扩容方案,以及最近备受瞩目的 Arbitrum。这是一篇技术导向性的文章,我将重点阐述它们的工作原理和特点,并用通俗易懂的语言进行讲解,以帮助大家更好地理解和评估这些扩容方案。

1. 扩容方案概述

随着区块链技术的快速发展,可扩展性问题成为了阻碍区块链广泛应用的主要障碍之一。为了提高网络的吞吐量和降低交易费用,扩容就是一件必须要解决的事情。扩容方案通常分为两大类:一类是链下扩容(Layer 2),通过在底层区块链之上构建新的协议层来实现扩容;另一类是链上扩容(Layer 1),通过优化底层区块链协议本身来提高吞吐量。

链上扩容方案可以分为分片、选择更高效的共识算法和协议优化等。其中分片是将区块链网络分割成多个相互独立的子链,每个子链可以并行处理交易。这样,整个网络的吞吐量会随着子链数量的增加而线性增长,分片也是以太坊 2.0路线图中关键的一步,分片之后TPS和Gas才能得到真正的优化。最近这几年共识算法的创新很少见了,像之前提出的POS、DPOS、DAG等都是相对于POW的创新,相比于POW,它们可以减少网络资源消耗,提高交易处理速度,同样,以太坊也选择了这条路。第三个方案是对底层区块链协议进行优化,例如调整区块大小、区块产生时间等,可以在一定程度上提高网络的吞吐量,比如比特币的隔离见证(SegWit)升级。

链下扩容方案可以分为状态通道、Plasma 和 Rollups。状态通道(State Channels)允许用户在链下进行交易,仅在通道开启和关闭时与主链进行交互,这极大地减少了链上交易数量,从而提高了吞吐量,像 Raiden Network 和 Lightning Network 就是分别针对以太坊和比特币的状态通道扩容产品。Plasma 是一种子链(sidechain)方案,允许用户将资产从主链迁移到子链,并在子链上进行交易,子链周期性地将其状态更新提交给主链,以确保安全性,比如OMG Network。Rollups 是将多笔交易打包成单个证明(zk-SNARKs 或 Optimistic Rollup 的欺诈证明),并提交到主链。这样,主链仅需验证证明而无需处理每笔交易,从而提高了吞吐量。典例是zkSync(基于 zkRollup)和 Optimism(基于 Optimistic Rollup),Arbitrum 同样也是基于 OP 的 产品。

2. Optimistic Rollups 和 zk-Rollups

2.1 zk-Rollups

zk-Rollups 是一种基于零知识证明的二层扩容方案。首先由 Rollup Operator 组件将多个链下交易聚合成一个批次,之后使用零知识证明(例如 zk-SNARKs 或 zk-STARKs)生成一个简洁的证明文件,这个证明可以验证整个批次的交易的有效性,而不需要逐一检查每笔交易;然后将证明及与该批次相关的数据提交到主链,主链通过验证证明的正确性,确保交易是有效的;主链验证通过后,链上合约会根据证明中的数据更新链上的状态。这意味着,尽管交易是在链下进行的,但链上状态仍然得到了更新,确保了数据的一致性。

注:零知识证明(Zero-Knowledge Proof,简称 ZKP)是一种密码学概念,它允许一个证明者向验证者证明某个陈述为真,而无需透露任何关于该陈述的其他信息。简而言之,零知识证明可以让一个人证明他拥有某种信息,而不需要透露这个信息本身。

2.2 Optimistic Rollups

Optimistic Rollups 是一种基于乐观性验证的二层扩容方案,即默认提交的区块是正确的,除非有人提出质疑。它同样需要 Rollup Operator 将许多链下交易聚合成一个批次,之后计算批次交易产生的新状态(如余额、合约状态等)并生成一份链下状态更新;然后将链下状态更新、相关数据提交到主链,这个状态默认是正确的,不需要额外验证;但是在状态更新提交后,会有一个固定的挑战期,在此期间,任何人都可以通过提供欺诈证明来质疑提交的状态更新的有效性,与被质疑状态的相关的整个交易将通过 EVM 运行检验,如果证明状态更新是错误的,提交者会被惩罚(扣除押金),同时链上状态会回滚到正确的状态;如果在挑战期内没有人质疑状态更新,或者质疑被证明是错误的,那么链上状态会根据提交的状态更新进行更新。

2.3 ZK 与 OP 比较

 ZK 和 OP 各有各的特点,我从下面 5 个不同角度对他们进行了分析,以供各位根据自己的倾向去评判: 

1.交易验证方式:

OP:通过欺诈证明(fraud proofs)验证交易。OP 假设交易默认是有效的,除非有人提交证据证明某笔交易无效。这需要链下用户和节点持续监测,以确保 Rollup Operator 没有作恶。

ZK:通过零知识证明(例如 zk-SNARKs 或 zk-STARKs)验证交易。ZK 生成一个简洁的证明来确保批次中的交易有效性,无需逐一检查每笔交易。

2.安全性:

OP:由于默认假设交易有效,可能存在一定的安全风险,需要链下用户和节点积极监测交易以确保安全性。

ZK:基于零知识证明的验证方式为 ZK 提供了较高的安全性,因为它需要生成一个证明来确保交易的有效性。

3.吞吐量与性能:

OP:与 ZK 相比,OP 通常具有较快的链下交易处理速度,但链上验证可能需要更长时间,因为需要等待欺诈证明的挑战周期。

ZK:虽然生成零知识证明需要一定的计算资源,但 ZK 的链上验证速度较快,因为一旦证明生成,主链就可以快速验证。

4.通用性:

OP:OP完全兼容EVM,众多DAPP可以直接迁移,方案整体的计算复杂度低,更适用于通用的智能合约执行和复杂计算。

ZK:虽然零知识证明技术在发展中,但目前它在通用智能合约和复杂计算方面的应用受到一定限制。

5.成本:

OP:通常具有较低的链下交易成本。

ZK:生成零知识证明需要一定的计算资源,可能导致较高的链下交易成本。

总的来说,Optimistic Rollups 和 zk-Rollups 分别具有各自的优缺点,Optimistic Rollups 更适合处理复杂的智能合约场景,具有较好的以太坊兼容性;而 zk-Rollups 在安全性和隐私保护方面具有优势。

3. Arbitrum

Arbitrum 是一种基于 Optimistic Rollups 的二层扩容解决方案,它结合了 Optimistic Rollups 的优势,并对仲裁过程进行了创新和优化,在处理质疑和仲裁时采用了二分查找(Binary Search)技术,降低了仲裁过程的复杂性和成本。

在上文提到在乐观性验证系统中,当有人对某个提交的区块提出质疑时,就要启动仲裁过程。质疑者需要指出区块中存在的一个具体错误,例如交易执行的结果不正确、状态更新错误等。

为了高效地找到错误的位置,二分查找将错误可能出现的范围分为两半,质疑者需要选择错误出现在哪一半,并继续向下查找。例如,如果质疑者认为错误出现在区块的前半部分,那么他们需要提供该部分的状态更新证明;在每次迭代中,质疑者和验证者将错误可能出现的范围继续分为两半,质疑者需要在每次迭代中指出错误出现在哪一半,并提供相应的证明,验证者则需要提供相应的反驳证据;通过不断的二分查找迭代,质疑者和验证者将错误可能出现的范围逐渐缩小;最终,当范围缩小到一个具体的交易或状态更新时,质疑者需要提供详细的证据来证明错误的存在,验证者则需要提供相应的反驳证据;经过一系列的二分查找迭代和证据交换,如果质疑者能够成功证明区块中存在错误,那么区块将被认定为无效,如果验证者能够成功反驳质疑者的证据,那么区块将被认定为有效。在这个过程中,错误的一方将损失押金,而胜利的一方可能会获得奖励。

综上所述,二分查找仲裁可以缩小错误范围,这个过程在链下执行,而链上只需要验证最后的争议部分,从而减少了链上的交易处理成本,但是这个过程也延长了处理时间,所以在发生仲裁的情况下 Arbitrum 比 Optimistic 更便宜,但也更慢。

4. 总结

很多同一赛道的竞争对手都呈现一者重技术,一者重生态的格局,OP 和 ZK 有些像 Aptos 和 SUI,最后哪家胜利就看用户的投票了。

Subscribe to WHeart
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.