本文作者:太和研究员 Claire Tang、Shu Quan
模块化与区块链扩容
1.1 区块链的扩容需求
1.2 扩容的演进-为什么走向模块化?
Rollup的原理
2.1 Rollup如何运行?
2.2 Rollup费用模型
Rollup赛道竞争格局
3.1 竞争格局分析
3.2 Optimistic Rollup vs zk Rollup
Layer 2的展望
4.1 Layer2目前面临一些问题
4.2 对Layer 2的一些思考
区块链扩容就是追求更高的可扩展性,可扩展性的定义是在不增加验证成本的情况下处理更多交易的能力。扩容经历了从单片链到模块化链的一系列尝试,重心也从追求可组合性转变到模块化。
让我们来回顾一下区块链的构成。区块链中的区块由两部分组成:区块头和交易数据。我们平时所说的矿工挖矿就是区块中的矿工(或者节点)通过下载整个区块的数据,进行复杂计算,以确保交易有效。一个区块链包括四个模块,分别是执行、结算、共识、数据可用性(后来提出)。如上图所示,单片链是四个模块同时在主链上运行,Rollup则是将执行层与主链解构。单片链依赖单个强大的节点,例如Solana的超级节点,虽然处理速度很快,但是因为太依赖单一节点,很容易宕机。展望未来,只存在几个单片链一定是无法实现区块链的扩容愿景的。
区块链可扩展性的问题,即区块链拥有更多吞吐量的同时保持较低验证成本的能力。增加吞吐量有两种方法:第一是增加区块大小,例如,单片链(Monolithic)包括Ethereum、Solana、BSC、Avalanche等,是通过扩大区块来增加吞吐量,但这样不可避免地来带了中心化的问题,第二是缩短出块时间,但都不太现实。通过模块化可以将区块链分成不同的模块,各个模块各司其职,以便更好地进行资源定价,并且也避免了区块过大过于中心化的问题。
在这个背景下,我们今天的主角Rollup应运而生,Rollup主要是就是将执行层从主链中解构,将执行层放在链下,Rollup在主链上发布交易数据,这些数据在被发布到主链前被压缩并作为call data发布,由此主链上的矿工可以执行并从头构建Rollup状态。有了新状态后,矿工通过欺诈证明或者有效性证明对数据进行验证。
Rollup的提出为区块链扩容和模块化引入了一个很好的思路,不过虽然数据被很好地压缩上链,但是仍然需要将所有数据都发布到L1。而以太坊目前在尝试的分片和一些专用DA层(例如:Celestia)允许每个节点只需下载部分数据就可以重建所有链的区块。
目前来看,以太坊还是当之无愧的公链之王,新公链的出现也无法撼动以太坊的地位。而且以太坊的分片Danksharding为数据Blobs提供区块空间,以支持更高交易量的L2扩容方案。由于以太坊2.0中的分片技术还未落地,模块化DA层方案也还在酝酿当中,Rollup成为当下以太坊扩容的必经之路。虽然Rollup已经吸引了大量的关注,但是很多项目都还在开发阶段。本文将通过分析Rollup赛道的几个重点项目,抽丝剥茧地分析Rollup的优劣,目前的竞争格局,以及未来可能的扩容方向。
Rollup其实就是一个链上智能合约加上链下节点(区块生产者),通常交互过程如下:
以下是一个简易的Layer 2模型,除了第一层交易(支付和存入),所有交易都在第二层执行,交易数据压缩后形成call data,并同步回传到第一层,这个过程称之为使数据可用。我们平时说的四种不同的扩容方案就是针对这个状态同步时的验证方式。
Rollup中最常出现以下三种角色:
欺诈证明即假定不作恶,如果有人发现一个批次的状态根不正确,验证者可以将证明发布到链上证明该批次的计算不正确并获得奖励,OPR上的VM可以说是L2对于L1的适配器,确保L2上的任何计算都可以L1上得到验证,这也是为什么与以太坊EVM兼容如此重要。
有效性证明通过零知识证明,对每个批次的状态根进行验证确认无误,再将数据传回主链。就是每一次排序交易处理都进行一次验证,然后传回主链的交易都有一个证明,但也造成了交易速度变慢的问题。
在了解了Rollup的运行机制后,我们有必要看看它的通用计费模型,以及如何对其进行资源定价。Layer2上的费用主要包含在L1上发布call data的费用以及L2运行Sequencer的费用。而这两部分费用又可以被拆解成为固定成本和可变成本。具体的费用模型如下:
固定成本(L1):
可变成本:
因此,在Layer2上的总成本=固定成本+(交易规模*call data所需gas),可以看到,这个公式中唯一的变量就是交易规模。
根据以上费用模型,理论上来说,交易规模(batch size)越大,用户的per transaction费用越低。交易越多,成本将呈曲线型递减,这是Rollup天然的优势,用户越多越便宜。并且Rollup的交易地板价依赖于ETH主网calldata费用,由于EIP 4488可以将calldata以“blob”的形式发布,将非0字节数据的gas由16gas降至3gas,较大程度降低Rollup主网的交易成本,0字节也能适当降低。
那为什么前段时间的奥德赛活动暂停,用户的per transaction cost会比以太坊还高?理论上来讲,L2在拥塞情况下都会有gas飙升的情况,主网测试期间,为了让流量保持适度水平,Arbitrum有容量节流措施,当流量达到阈值时,L2 gas fee会自动增幅,像以太坊一样。
具体来说,Arbitrum之前使用的虚拟机AVM能承载的网络容量不够,大量用户涌入使得computational gas拉升最高超过1000倍,占用过多带宽,在节点数量不变的情况下,整个网络处理交易能力大幅下降,导致gas费飙升。基于WASM技术的Nitro就是来解决带宽这个问题。Nitro是基于WASM技术构建并将Geth核心编译到Arbitrum中,还提供了新的批处理和压缩系统,因此与EVM更加兼容且预计比当前执行速度快20至50倍。同时,这个事件也和GMX有很大关联,GMX上调了最小交易费用,使得整个网络的平均gas fee飙升。GMX作为Arbitrum上锁仓量最大的项目,还被选入活动任务,可以看出GMX对于Arbitrum网络的影响力和议价能力非常大,而这也是一种网络过度集中的体现。
Optimism & Arbitrum
Optimism和Arbitrum都使用Optimistic Rollup,他们在架构上基本相同,通过sequencer对交易进行执行,并分批次将交易数据和状态根提交到以太坊主网。Optimism和Arbitrum的主要区别在于欺诈证明方式的差异,以及对于MEV处理的不同。
a. 欺诈证明方式
OP使用的是单轮交互型欺诈证明,如果某个Rollup区块的交易数据存在争议,则需要发起一轮争议挑战并质押保证金,然后Rollup协议在Layer1链上对所有Rollup区块里的交易重新进行一遍计算来验证,这样欺诈证明是单次的、及时的,但也占用了更多区块空间,因此链上L1执行需要更多gas。
而Arbitrum使用多轮交互型欺诈证明**,**即通过二分法把这个争议每次分成两半等待挑战者来挑战其中一个,持续进行到只对单个步骤存在争议,L1的仲裁员这时候通过查看指令实际执行的操作来解决争议。好处的话,可以以更低成本解决大于一个交易的争议。相比OP重演一遍有错误的交易所占用的区块空间,Arbitrum在L1的成本部分会相应减少。
b. MEV处理方式
同时,两者在矿工可提取价值(MEV)上的处理方法有差异。Rollup上的MEV和Layer1类似,因为Sequencer也是具有出块权的节点。Optimism使用MEV拍卖(MEVA),认为排序权是有价值的商品,所以通过拍卖来获得重新排序的能力,这个就跟矿工通过链上打包出块并确保网络安全一样,Optimism将MEV获得的收入用于资助生态内的公共产品。Arbitrum则使用Fair Sequencing Service (FSS),致力于将系统内的MEV降到最低。主要是通过Chainlink语言将用户被加密的交易进行网络排序,并使用Aequitas协议执行先进先出(FIFO)排序策略,防止交易顺序被操纵。
MEV对于用户来说就是征收了无形的税收,让套利者操纵订单,人为抬高执行价格,获取利益。而把MEV收入用于公共事务也无法解决不良MEV背后的有害于经济的动机,尤其是恶意MEV的发生。如果一个大户在Uniswap上面提交了一笔大额转账,矿工可以通过机器人抢跑交易获得远高于交易费的收入。这将意味着,我们网络中每个订单都会向拍卖赢家开放,而且零风险,包括抢跑交易、反向交易、三明治交易策略等。而且,拍卖赢家还可以通过停止/延迟交易以惩罚那些他们没有获利的交易,因此,如果你设定严格的Uniswap交易滑点,那拍卖者可能会无限期扣留你的交易。交易排序如此重要,并且是个一直困扰着以太坊的问题,MEVA不会是解决方法。
c. 生态发展/锁仓量
目前Optimistic rollup的锁仓量大概占整个Layer2的80%,而且生态部署比ZK Rollup更加成熟。虽然官方列举了很多项目,但是真正有用户基础和交互的其实不多。Optimism上面最大的项目包括Synthetix、Uniswap、Perpetual,Arbitrum上则是GMX、Curve、Uniswap,这些都已经占据了锁仓量的近50%,虽然项目方说生态内项目超过200个,但排除以太坊上的那些蓝筹,其他都是很小的项目。这是Layer2面临的问题,没有原生优质项目,项目全靠以太坊嫁接,自己生态里面项目又不行,没有用户,没有锁仓就没有意义。
如果仅比较Optimism和Arbiturm,在生态繁荣度上可以看出,Arbitrum略胜一筹,也部署了更多DeFi蓝筹项目。这与Arbitrum上线后的先发优势和开放程度有关。这两个都项目都是在2021年9月L2爆发后锁仓量有了爆发性增长,Arbitrum之前手续费低,加之最先实现EVM完全兼容,因此具备先发优势,并与项目积极合作,生态上吸引了更多项目率先部署,刚上线就有众多明星项目支持,如Uniswap、Balancer、Curve等,而OP增长放缓,当时只有Synthetix深度参与。
zkSync
ZkSync使用SNARK技术构建,相比STATK优势是空间占用更小,技术相对成熟。好处是,很多功能已经上线可以使用。ZK Sync对EVM比较友好,可以做到字节码兼容。ZkSync生态方面没有部署什么大项目,目前锁仓大部分是通过Zigzag这个项目。官方宣传的Curve、1inch,Yearn等头部DeFi项目也都没有上线,生态发展比较停滞。随着zkPorter的加入,zkSync 2.0最先开启Volition模式,不过目前Starknet最新版本也上线了Volition模式。
Starkware
a. 技术
Starkware使用自己发明的STARK技术,比起ZK Sync使用的SNARK技术,STARK证明生成地更快,但验证证明时间慢,且更难兼容EVM。Starkware的蓝图是希望开发自己的生态,不追求EVM兼容。目前StarkEx上95%的锁仓量都在dYdX上,而不确定性是dYdX刚刚宣布使用Cosmos SDK扩展其应用链,这将为StarkEx带来巨大的不良影响。dYdX希望能成为最大的链上衍生品交易所,在其V4中非常强调去中心化,而我们知道Layer2目前都是非常中心化的。Cosmos可以允许各个协议进行模块化定制各自的链,并且dYdX对可组合性要求没有那么高,因此迁移成本没有那么大,而且dYdX代币也许会因为成为L1获得更多的价值捕获。而UniSwap这种项目则不会离开以太坊,另辟公链,因为它们对可组合性的要求很高。
况且,据说dYdX没有写过一行Cairo的代码,都是Starkware团队帮他们写的,由于和dYdX合作的时候Cairo还没有开发出来,而且Starkware满足不了dYdX要求的TPS。所以现在他们选择Cosmos也可以看出,未来开发者更喜欢开放的生态,像Cosmos和以太坊就是很好的例子。Starkware的生态其实是比较闭塞的,说的好听点就是类似IOS和安卓的对比,有点像波卡,都是在自己的生态里面坚守,但是现在波卡生态表现也很一般。
b. 生态发展
StarkEx上dYdX出走后带走了95%的锁仓量,StarkNet今年2月主网刚上线,目前TVL只有56万美元。生态发展非常一般,还没有头部项目,不过Aave,Maker等头部项目都计划支持StarkNet。由于Starkware想跳出以太坊的生态不搞EVM等效,而Cairo语言由于原生的一些优势也许可以实现一些以太坊不能实现的事情,比如支持更高计算力的游戏、聚合跨链流动性(dAMM)等。
目前OP性能优于ZK是毋庸置疑的,以下表格将通过多个维度进行阐述:
a、中心化
众所周知,Sequencer作为二层的区块打包者,是官方运行的,且不接受新的sequence,官方拥有打包区块和压缩数据的权利,因此非常中心化。虽然Starkware在进行社区提案,可以允许更多的节点加入Sequence,但是目前情况就是不够去中心化。加之Arbitrum之前的宕机,以及这次奥德赛活动的暂停都验证了这一点。那么未来Layer2的安全性要怎么保障?可能只能靠社区发起提案,允许更多节点加入sequence,而不是只由官方来运营。
b、无法快速获得最终性
虽然在所有官方文献中都提到Layer2的优势在于其更高的效率和TPS,比Layer1要快100倍,但是根据各大Layer2的官方数据,目前Layer2的真实TPS其实比以太坊主链还低几十倍。这是为什么呢?主要是由于Layer2上交易本来就分为两部分,L2上的交易加数据发布L1,加上L1上的验证。Layer 2官方所宣传的TPS其实只涵盖了第一部分。也就是说,用户在L2上提交交易后,马上获得的交易成功或者失败的反馈,仅仅只是L2上的一个确认,而这不代表这笔交易已经完成,因为它还没有获得L1的最终性。
c、生态和用户需求
目前大的项目对Layer 2几乎没有需求,例如借贷和dex,UniSwap、Aave这种项目在L2上只有几千万的锁仓量,基本可以忽略不计。因为现货交易和借贷的用户并不会在意他们的交易在几秒钟或是几分钟之内完成,所以在以太坊上交易还是在L2上交易对他们的影响并不大。然而,比如合约和游戏对于速度的要求就会非常高,所以他们如果能够得到一个快速反馈,会对他们的体验感有非常大的提升,而这也是Rollup的优势。所以,对于L2需求比较大的目前可能只有衍生品和游戏了,因为这两个赛道更加注重快速交割,例如dYdX和IMX。
Layer 2目前的定位其实有点尴尬,排名第一的Arbitrum锁仓量勉强排进前十,甚至比一些早已不温不火的新公链还要低。未来要怎么去吸引更多的用户是每个Layer2项目方都需要去思考的问题,我们到底需不需要Layer2,他在性能上是否真比其他公链有优势?目前大家对他最大的期待其实就是可以为以太坊扩容,因为它是在共享以太坊安全性的同时,可以兼容EVM,也就是为以太坊生态的开发者和用户提供相同的开发环境和使用体验,共享以太坊强大的用户和开发者社区,因此,是目前呼声最大的扩容方案。但是未来要怎么吸引新用户和新资金入场呢?
由于目前Layer2真的不是很火,生态和锁仓量都很一般,用户还是偏向使用Layer1而不是Layer2。我认为未来的增长点一方面是建立在大型项目的迁移,例如Uni、Aave这些将重心放在Layer2上。像dYdX、IMX这种对速度和交互有所要求的会更有可能,因为它们要么选择Layer2,要么选择新公链。不过dYdX已经出走,因此,IMX作为一条游戏公链也许比其他公链更有希望。又或者生态内出现现象级项目,转化存量用户的同时,吸引新资金进场,就像今年年初的Stepn;还有可能未来在某一时点,使用Layer2真的能够实现大规模降费,或者能够实现更快的最终确定性。
其实市场的爆发都需要新的叙事,向2021年新公链的爆发是因为以太坊没办法扩容,Layer2的技术又还不成熟,加之外部宏观环境的放水导致新进资金比较多,因此导致爆发。2020年的DeFi也是如此,在技术发展到一定时期,应用逐渐落地,加上使用场景和用户的进入,以及较好的宏观环境。目前,我们到了一个比较尴尬的地步,好像故事都讲的差不多了,于是把目光放到了Layer2上面,其实也是旧瓶装新酒,把老概念拿出来炒作。但是如果这个赛道没有耀眼的技术进步,也没有更大的性能提升,凭什么用户要买单呢?未来如果Layer2要发展,要壮大,一定需要在性能和生态发展上更上一层楼。而且现在市面上也有Cosmos这种模块化的公链,还有以太坊的分片、作为DA层的Celestia,势必分流rollup。虽然包括V神在内的一众加密领袖认为,未来的区块链是以基于rollup 的以太坊为核心的,虽然V神一直很看好Rollup,但是不代表市场一定会买单。也许未来就是由超级应用驱动的多链生态呢?或者未来是由模块化DA层和以太坊结算层作为主导呢?是否我们都对 Layer2 的叙事产生了不切实际的期待?
公链技术的发展从只有以太坊一条链,发展到多链世界,到模块化区块链,扩容方案层出不穷,一直都在进步。在技术的发展下,用户、开发者、公链是相互依存的关系。如何增加用户粘性,能够像依赖以太坊那样是Layer 2项目方需要思考的,而且开发的友好、生态和社区的建立的重要性也是毋庸置疑。Rollup可以说是区块链扩容奠定了很好的基础,但目前情况来看一定不是终局。主要是因为Rollup的中心化、过度吹捧的性能,以及略显潦草的生态发展。不过以太坊在开发的分片和Celestia的专属DA层或许会是未来能够使Rollup继续发挥模块化区块链优势的方向,“rollups on rollups”或将成为未来趋势。