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

By [MyMirror](https://paragraph.com/@mymirror-2) · 2023-04-02

---

最近关于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.1 zk-Rollups

![](https://storage.googleapis.com/papyrus_images/12e1be97957824c9c60a2628410f09526220e83548efa41d522196366267ec75.png)

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

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

### 2.2 Optimistic Rollups

![](https://storage.googleapis.com/papyrus_images/f6c874c4c3e9281805bc7aab469015132d0eab468eebbb56fcc9e6257f3795c9.png)

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

![](https://storage.googleapis.com/papyrus_images/cd6ce2bd17942b831da029e116185ef2e6c3b74f0e0a635c5988d09778038323.png)

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

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

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

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

4\. 总结
------

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

---

*Originally published on [MyMirror](https://paragraph.com/@mymirror-2/l2-optimistic-rollups-zk-rollups)*
