「币萌研究院」主流 Layer 2 扩容方案盘点_ERK:IMI

CryptoArt:Edition1of1

本投研报告由币萌研究院发布,报告内容仅供参考,切勿作为投资建议或投资依据。

文中所涉数据均截至2021/6/21,可能与发文时的实际情况有所偏差,请自行验证。

||导读

公链的扩容问题已经困扰区块链行业多年,尤其在DeFi、NFT等加密衍生市场的扩张之下,生态最为完备的以太坊拥堵愈发严重,高费低效的网络逐渐成为拖累行业发展的最大桎梏。

区块链的扩容主要分为Layer1和Layer2两个方向。Layer1方向是指改进公链本身以提升性能,即链上扩容,包含增加区块大小、分片等;Layer2方向是指不对主链进行任何改进,而是构建一个链下的二层,在二层处理部分交易以分担主链的压力,只在必要时和主链进行交互,即链下扩容。

早年间Layer1扩容更受市场关注,出现过很多主打增加区块大小的比特币分叉项目,以及各类号称「以太坊杀手」的高TPS公链项目,以太坊本身也会在2.0版本实现分片扩容。但随着DeFi的繁荣,人们逐渐意识到仅凭Layer1扩容已经无法满足需求,Layer2扩容可能才是当下形势下的最优解。

本文将重点探讨三种Layer2方案,分别为最早期的状态通道方案、如今走向没落的Plasma方案以及风头正劲的Rollup方案。

||方案1·状态通道

状态通道的原理是开辟一个链下的「通道」,用户可以通过在智能合约中锁定资产的方式,来将链上资产「转移」至通道中,并在通道中进行资产交互。在通道内进行资产交互操作不会占用主链的资源,且无需耗费昂贵的交易费用,可以适用于一些高频小额支付场景。用户在离开通道时进行结算,资产将转回主链。

以实际的应用场景为例,例如用户A为用户B提供某项服务,需要用户B每隔1小时向用户A支付一次小额的服务费。如果这发生在主链上,则需要占用大量的主链计算资源,且需要频繁支付昂贵的手续费。如果使用状态通道,用户B可以锁定部分资金进入通道,在通道内向用户A进行支付,每次支付都会使两者的账户状态更新。当服务期结束后,用户B可以取回剩余的资金返回至主链,用户A也可以将在通道内收到的服务费返回至主链。

状态通道的解决方案也可以为一些DApp提供帮助,例如区块链游戏。假如用户A和用户B进行游戏对战,该游戏由智能合约控制,双方可以锁定一些资金并开启通道,在链下通道进行游戏,游戏结束后通道关闭,获胜方获得资金奖励。

上文的例子中仅有两个参与方,这类应用场景非常有限,而具备多个参与方的状态通道「网络」才是其完全形态,这要利用通道的「可组合性」,例如用户A和用户B之间有一个通道,用户B和用户C之间也有一个通道,那么A和C就可以通过B实现交互。

状态通道是最早的扩容方案之一,目前存在着两点比较明显的限制。首先,状态通道的使用范围仅限于加入通道的用户,无法向通道外的用户发送资金;其次,状态通道内的资产在逻辑层面必须要有「所有者」,Uniswap智能合约等没有明确所有者的对象无法使用状态通道,这就导致其应用场景大大受限,只能在一些有限的支付场景使用。

相关项目:闪电网络

状态通道最知名的应用便是比特币的「闪电网络」。闪电网络是为了缓解比特币交易拥堵、实现小额快速支付的技术。近期,萨尔瓦多宣布成为首个将比特币作为法定货币的国家,该国曾与加密货币钱包Strike建立合作伙伴关系,Strike就是使用闪电网络进行支付结算。

||方案2·Plasma

Plasma可以理解为一个侧链框架,加密领域以往出现过很多侧链解决方案,侧链的核心难点在于双向锚定的安全实施。其中前向锚定是比较简单的,通用方案是用户将资产锁定在主链上,然后在侧链生成对应的资产。难点在于后向锚定,由于侧链无法达到主链的安全性,所以存在侧链被攻击/侧链运营商监守自盗导致资金无法提取/资金被他人恶意提取的可能性。Plasma为了解决该问题,引入了「挑战期」的设定。

具体而言,用户将资产从主链转移至Plasma链时,需要将主链资产发送至管理Plasma链的智能合约,该资产即可进入Plasma链中进行交互。每隔一段时间,Plasma链的操作者就会对该时间段内Plasma链的交易进行一次「批处理」并生成Merkle树,相当于生成一个区块。操作者会将Merkle树的Merkle根发布到主链上,另外还会将该Merkle树中涉及某项资产交易的Merkle分支发送给该资产当前的所有者。

当用户申请将资产从Plasma链提取到主链时,则需要向主链的智能合约提交该资产最近一次交易对应的Merkle分支,用来证明资产提取操作的合法性,智能合约会发起一个挑战期。在挑战期内,任何人都可以使用其他的Merkle分支来验证和质疑该项提取操作的合法性,如果挑战期内有人能证明此为欺诈交易,那么用户将提取失败,否则会提取成功。

如下图所示,例如用户A在主链上拥有资产X,并将其转入了智能合约,在Plasma链上获得对应资产P(X)。后续用户A在Plasma链上把资产P(X)转给了用户B,这笔交易被记录在区块1Merkle树的交易4位置。Plasma链的操作者在打包区块1时,会将Merkle根发布到主链,并将交易4对应的Merkle分支发送给资产P(X)当前的所有者用户B。用户B此时申请提取该资产到主链,则需要向主链智能合约提交交易4的Merkle分支,智能合约发起挑战期,如果挑战期内无人证明该项操作存在欺诈,则用户B成功提取资产。

上文为Plasma方案的大致运作方式,在其演变过程中,衍生出了多种改良版的方案,例如PlasmaMVP、PlasmaCash、MoreVP等。这些方案都继承了Plasma的高安全性,但也共同存在着一些问题:

退出时间长:提取资产到主链时,需要较长的挑战期。

需要定期上线:用户必须定期上线,以实现对Plasma链的监控,否则出现黑客攻击事件时可能错过挑战期。

批量退出对主链的压力:如果一个Plasma链上的大量用户在同一时间段内提取资产到主链,所有用户都要在挑战期内进行挑战以完成提款,这也就意味着会批量发布到主链上,产生踩踏效应,导致主链严重拥堵。

数据可用性问题:理想状态下,Plasma链的操作者会将特定的底层数据发送给用户自己进行保管,也就是具备数据可用性。但万一操作者作恶,只发布Merkle根至主链,但拒绝发布底层的交易数据给用户,这会使用户无法验证该Plasma链的正确性。

相关项目:Polygon

Polygon原名Matic,是一个运行在EVM上的基于状态的侧链,采用Plasma解决方案和PoS共识机制。Polygon对Plasma进行了改进,改进主要包含将UTXO模型转变为账户余额模型、采用双重PoS机制、兼容EVM等,使其不仅可以做到和状态通道类似的、资产具备明确所有者的支付类用途,还可以支持运行各类基于智能合约的DApp。

Polygon兼容以太坊EVM,有完善的开发工具,以太坊上的开发者可以轻松移植应用至Polygon生态,目前包含Aave、Sushiswap、Curve、1inch等在内的多个以太坊DeFi应用已经移植到Polygon的Plasma-PoS链中。

目前Polygon主要为以太坊主链提供扩展,未来会支持更多主链。Polygon的愿景是成为「Layer2聚合器」,除Plasma方案外,未来还将同时兼容OptimisticRollup、zkRollup、Validium等方案。

||方案3·Rollup

由于Plasma方案存在无法解决的数据可用性等问题,所以逐渐走向没落,而更具优越性的Rollup方案开始成为当前最受关注、最具落地价值的Layer2方案。

Rollup的逻辑与Plasma方案类似,两者最大的区别如下。

Plasma本质上是将计算和数据都转移到链下,只将链下的交易数据进行处理后的结果发布到主链,用户无法通过Merkle根了解到每一笔交易的信息,如果Plasma链操作者拒绝将底层的交易数据发给用户,那么就存在数据不可用的问题。

Rollup方案的核心在于,将链下大量的交易进行打包压缩,然后将压缩的数据发布到主链,发布到主链的压缩数据中包含了每笔交易的基本信息,这就保证了数据的可用性,进而可以实现对操作者的免信任。

下文具体阐述Rollup方案的运行方式。

首先,在主链上存在Rollup智能合约,里面存有状态根,即表征Rollup状态的Merkle根,Rollup状态包含Rollup中的账户余额、合约代码等。

操作者在收集到大量链下交易数据后,会在主链上向Rollup智能合约发起批处理操作,里面包含打包压缩的交易数据,以及旧的状态根和新的状态根,智能合约会检验新旧状态根是否匹配,如果检验通过,旧状态根会更新为新状态根。

批处理中的交易的输入方或输出方可以是来自Rollup外部的,这就可以实现用户在Rollup中的资金存取。例如用户从以太坊主链转移资产到Rollup合约,那么这笔交易就是从Rollup外部的以太坊主链输入资产至Rollup内部,同理,如果是从Rollup内提取资产返回以太坊主链,就是从Rollup内部输出资产至Rollup外部。

Rollup方案中有一个核心的安全问题:如何保证批处理执行后的新的状态根是正确的?即如何防范操作者伪造交易或状态根、确保状态转换的有效性。针对该问题,出现了两种Rollup方案,分别是基于「有效性证明」的zkRollup和基于「欺诈证明」的OptimisticRollup。

|||方案3.1·zkRollup

zkRollup采用zk-SNARK技术。零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。在zkRollup方案中,操作者在发起批处理时,除了提交压缩的交易数据和新旧状态根外,还需要提交zk-SNARK有效性证明,主链上的Rollup智能合约会据此检验状态根转换是否有效,这一过程相当于让操作者「自证清白」。

zkRollup方案通过零知识证明消除了状态转换过程中的有效性疑虑,本质上是通过密码学组件的加持来取代可信方,可以实现无交互、免信任的高安全性,也更加符合加密世界的基本理念,而且能够免除类似于Plasma的挑战期设定,发出资产提取申请后,下次批处理即可到账。zkRollup的缺点在于,零知识证明生成过程复杂、计算成本高、耗费时间长,所以对通用型的智能合约支持不友好,当前更适用于普通转账交易等应用场景。

相关项目:zkSync

zkSync并非单一的zkRollup架构,而是采用zkRollup+zkPorter架构,可以支撑更高的吞吐量,并构建了zkEVM,zkEVM支持Solidity智能合约,与以太坊EVM兼容,开发者可以在zkEVM上构建应用,或迁移以太坊主链上的应用至zkSync2.0。目前zkSync2.0已经上线测试网。

具体而言,zkSync2.0的Merkle树架构如下图所示,分为zkRollup和zkPorter两个分支,两者有各自的Merkle根,并在各自的叶子节点上产生了两种账户:zkRollup账户和zkPorter账户。用户在zkSync2.0可以享受zkRollup和zkPorter账户的混合体验,能够自由选择账户类型,且两者是完全可互操作的。

zkRollup和zkPorter的区别在于数据可用性的实现方式上。

依据上文对zkRollup原理的描述,zkSync2.0的zkRollup为了保证数据可用性,会将所有链下的交易数据进行压缩并发布到以太坊主链。这样的优点是可以达到和主链相同的安全性,但缺点在于,以太坊主链的区块大小是有上限的,即使是通过压缩,其吞吐量也可能无法满足未来的需求。

zkPorter相当于额外建立了一个渠道为链下交易提供数据可用性。zkPorter账户的交易数据会发布到zkPorter,zkPorter由zkSync代币持有者通过权益证明来保障安全性。这样的优点在于能够实现更高的吞吐量,但无法达到zkRollup的媲美主链的安全性。

|||方案3.2·OptimisticRollup

Optimistic的字面含义是「乐观」,OptimisticRollup和zkRollup在理念上的区别也在于此。

zkRollup的理念凸显「悲观」,默认所有的操作者都会作恶,于是要求每个操作者在发起批处理时都要同时提交有效性证明,以让智能合约验证其操作是有效的。

OptimisticRollup的理念偏向「乐观」,其假设所有操作者提交的批处理都是有效的,智能合约无需对其进行检验,而是设定一个类似于Plasma的挑战期,在此期间如果有人发现操作者存在伪造/篡改交易等作恶情况,可以对其发起挑战,挑战成功则会回滚错误的区块,并对相关操作者进行惩罚。OptimisticRollup的本质是欺诈证明,让各参与方互相监督,通过惩罚机制来提高作弊成本。

OptimisticRollup相比zkRollup,优点在于技术复杂度更低,对通用性智能合约的实现更加友好。OptimisticRollup的缺点主要在于和Plasma类似的挑战期设定,资金的提取需要等待长达7天的挑战期结束,这在欺诈证明机制下是无法避免的。

相关项目:Arbitrum

Arbitrum同样是采用欺诈证明,与OptimisticRollup原理大致相同,主要的区别在于解决挑战期内争议的方式。

OptimisticRollup采用单轮欺诈证明,在Rollup运行过程中,如果有人对操作者的批处理操作产生质疑并发起挑战,那么就会在主链上一次性模拟调用执行整个批处理的数据,以验证是否存在欺诈。

Arbitrum采用的是多轮欺诈证明,将规模大的争议拆分成小的争议,一步一步找到该项争议在批处理中的具体位置,然后再通过主链上的智能合约执行该部分来确定它是否正确。也就是仅在以太坊主链中执行最关键的一步,而非执行整个批处理进行验证。

多轮欺诈证明相比单轮欺诈证明,优点在于能够减少主链上的工作量,消耗Gas更低,缺点在于多轮验证需要耗费更多的时间,两者的本质可以归结为解决争议时的链上成本和时间成本之间的权衡。

Arbitrum的另外一个优点是可以完全兼容以太坊EVM,以太坊上的项目可以不修改任何代码地部署至Arbitrum,同时可以使用MetaMask、Chainlink、Truffle等成熟的基础设施服务。

Arbitrum是目前最受关注的Layer2解决方案,包含Uniswap、Sushiswap、Bancor等在内的主流DeFi协议都陆续宣布使用Arbitrum方案,值得一提的是,Uniswap早期合作的Layer2平台是OptimisticRollup,后续通过社区投票决议连接Arbitrum。此外,Chainlink、TheGraph等大量以太坊上的基础设施服务也宣布入驻Arbitrum,Arbitrum的未来生态值得期待。

||小结

Layer2扩容方案已经经历了数年的演进,最初只是为了实现加密货币的快速支付,后续随着DeFi的发展,Layer2也就顺理成章地成为了解决区块链技术规模化应用的主流技术方案。在扩展以太坊的道路上,状态通道和Plasma已经被逐渐抛弃,Rollup开始成为包含Vitalik在内的整个以太坊社区最认可的解决方案,其中OptimisticRollup和Arbitrum是在目前的技术背景下最易实现的方案,而随着零知识证明技术的进步,zkRollup则更有可能成为最终的Layer2方案。

END

·风险提示·

以上内容均基于网络资料分析整理,仅作为项目研究使用,切勿作为投资依据。

请注意防范各类以「区块链」和「虚拟货币」等名义进行的非法集资、网络等活动。币萌将严格遵守国家法律和监管规定,坚决抵制各类违法活动。如发现内容含敏感信息,请后台联系我们,我们会及时处理。

·加入社群·

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-3:241ms