作者:ZKSwap

引言

最近一段时间,基于以太坊的 Layer2 产品可谓是层出不穷,市场表现极为火热。不知大家注意没有,每个产品推出时都会介绍其产品是基于某种主流 Layer2 方案,具有何种优势,可以给产品、某方面给用户带来更好体验等类似的宣传语句。有心的读者或许会深思,这些方案到底是什么方案呢?背后的原理究竟如何?是否存在劣势?今天,ZKSwap团队就带领大家纵览 Layer2 全局,以技术为基础细分整个产品市场并深度剖析背后的技术原理。

Layer2 概览

相信之前有诸多文章已经介绍,根据数据的存储方式和交易有效性的证明方式的不同,Layer2 方案可以被划分为四大类,如下图所示:

1. Layer2 方案划分

数据存在链上,即具有链上数据可用性的方案有:ZK-RollupOptimistic Rollup;

数据存在链下,即不具有链上数据可用性的方案有:ValidiumPlasma

用零知识证明来主动保证交易有效的方案有:ZK-RollupValidium

用户需提交欺诈证明来主动验证交易有效的方案有:OptimisticPlasma

随着 Layer2 技术的不断发展,Plasma Validium 方案在市场上逐渐的失去了声音。绝大部分产品都是基于其他两种方案上实现的,因为两种方案的优缺点比较明显,因此项目方会根据不同的考量来选择不同的方案,下面我们将通过一张表格来呈现整个Layer2 上的情况:

从表格中可以看出有有两个被标记的方案:

Offchain Labs 研发的 ARU 扩展方案,和 ORU 方案一样被归类于 Optimistic Rollup 的范畴,但与 ORU 主要的不同之处在于欺诈证明的交互过程,这将在后续的技术剖析环节给与分析;

本篇主要剖析 ORU ARU 的挑战原理,以更好的呈现它们之间的主要差异。

Optimistic Rollup(ORU) -- Fraud Proof 欺诈证明

首先简单介绍 ORU 协议里的两个概念:

CTC(Canonical Transaction Chain):存储所有的交易信息,保证了数据可用性(更细节的描述可以参考链接Optimistic Details)。

STC(State Commitment Chain):存储了一系列的状态根,和CTC里的交易顺序逐一对应(更细节的描述可以参考链接Optimistic Details)。

两者的关系如下图所示:

0 为初始状态根,图中绿线表示:交易 Tx1 执行后,状态根由 S0 => S1。这些操作都是由 sequencer 来执行,sequencer ORU 协议里扮演者重要角色,主要负责三件事情:

1. 接受来自用户的交易;

2. 将这些交易 rollup,并添加到 CTC 上;

3. 计算每笔交易提交后的状态根并添加到 STC 上;

假如 sequencer 作恶,提交了错误的状态根(后续的状态根自然也是无效的),如下图所示,Verifier 如何验证 sequencer 作恶呢?

Verifier 的挑战过程主要分为三个步骤:

1. 宣称要挑战的交易,并且提供在此交易执行前的状态根;

2. 上传 L2 上所有和该交易相关的状态到 L1(因为挑战的思想是在 L1 上重新执行 L2 上已经执行过的交易,并比较执行后的状态);

3. L1 重新执行挑战的交易,计算新的状态根,并判断 sequencer 是否作恶;

如果 sequencer 确实作恶,那么将罚没其押金,并将其部分奖励给 verifier 

Optimistic 具有的缺陷是:

1. 由于不是主动保证交易的有效性,因此 sequencer 提交的每一次状态更新都要设置挑战期,大概在一周左右,时间太长;

2. 用户挑战的成本很高,具体包括:(1) 发送所有和挑战交易相关的数据到 L1;(2)在L1EVM上执行该笔交易,并更新状态根;

优点:

1. 兼容EVM

Arbitrum Rollup(ARU) -- Fraud Proof

ARU协议的设计和ORU大体相似,主要的区分在挑战机制上。在ORU协议里,sequencerverifier之间只有一次交互,即sequencer提交一次状态转换,verifier去完成后续的挑战。由于sequencer宣称就是初始状态为Si,执行完交易Txi后,状态根变为Si+1”。因此,在L1上不得不完整的执行整个交易。

ARU的协议对以上过程进行了优化,实际上,在L1上执行交易的过程,其实就是在虚拟机上执行某些指令的过程;ARU协议认为,整个交易执行的过程中,状态更新的失败,必定是其中的某些指令执行的失败,因此,只需要证明sequencer在执行某条指令时出现异常,那就可以证明sequencer作恶。具体的过程如下图所示:

注:在ARU协议里,Asserter对应ORU协议里的sequencerChallenger对应ORU协议里的verifier

据上所知:

1.  AsserterChallenger间进行了多次的交互,交互次数和n成对数关系;

2.  把验证整个交易的执行过程,简化成了单纯的验证一条指令,大大的节省了验证成本;

3.  同样兼容EVM

当然,ARU协议仍然有很多细节还未在本篇文章里说明,本篇不打算过多介绍,内容已经很长,如果读者想了解ARU更多细节,请参考offchainlabs的官网。

写在最后

虽然以Optimistic Rollup(ORU)路线为主的Layer2扩容方案逐渐的被市场上更多的产品所接受,但是未来的Layer2扩容终极方案仍然是兼容EVMzkRollup(ZRU)。目前的Layer2的产品市场上,对于EVM的兼容性比安全性和效率更受关注,当然完美的方案是兼容EVMzk rollup;在此之前,Layer2扩容方案应该会在一段时间内在兼容性和安全性之间权衡选择。这有利于Layer2扩容技术的发展,Offchain Labs做了很好的榜样;当然ZKSwap队也会持续研究探索,按照ZKSwap的路线图,将在今年发布兼容EVMZK Rollup 版本,取得更好的可组合性和安全性,而不用像Optimistic的解决方案,通过牺牲一定的安全性来实现与EVM的兼容。