本文将深入探讨两种流行的二层扩容方案
作者:WHeart
$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,最后哪家胜利就看用户的投票了。