STIC:以太坊扩容最热门主力方案 Rollup 学习指南_YearnAgnostic Finance

Rollup解决了Plasma等前辈在开发过程中发现的「数据可用性」问题,ZKRollup和OptimisticRollup方案成为了当前以太坊扩容改进的主力军。读懂ZKRollup和OptimisticRollup,从这篇开始。

撰文:潘致雄,链闻研究总监

以太坊在诞生后遭遇的最多质疑就是性能问题,在二层网络解决方案Plasma几乎全面溃败后,前沿研究领域又将眼光放在了Rollup技术上。

当前以太坊链上交易的吞吐量约每秒可执行不到30笔交易,虽然接近比特币的几倍,但离大规模应用还有较远的距离。相比之下,Visa或支付宝的交易处理能力的峰值至少每秒上万笔。

加密货币经常被提及的一个用户场景是「跨国汇款或支付」,采用链上发行的稳定币USDT、USDC或PAX作为交易媒介,以目前以太坊每秒20多笔交易的性能,离满足全球的需求还有很大差距。

另一个比较热门的用户场景是去中心化金融,3月12日「黑色星期四」期间,以太坊网络在链上清算和交易的首次大规模压力测试中,虽说勉强可用,但交易成本提高了数百倍。只有交易成本降到比传统方式更低之后,区块链才更有实用价值。

为了提升交易性能,以太坊设立了多个研究方向,第二层网络解决方案Plasma曾是其中最重要的一个。但在过去2年多的发展中,研究人员逐渐发现Plasma以及改进版本PlasmaCash存在不少的问题,比如要求用户定期上线以及数据可用性问题,制约了Plasma的发展。

在Plasma诞生的一年后,名为Rollup的技术浮出水面。基于此概念,还诞生了多个分支,最主流的是ZKRollup和OptimisticRollup两个方案。

Rollup技术解决了之前Plasma暴露出的问题,提供了和以太坊Layer1相同的数据可用性和安全性,而且还能极大提高网络的吞吐能力,同时降低单笔交易成本。正因如此,虽然很多人在广义上称Rollup为Layer2的技术,但事实上却介于Layer1和Layer2之间。

Rollup是什么?

Rollup的核心理念其实很简单,就是将原本散布在区块中的大量交易数据,打包成一笔「浓缩」的交易,发布到链上。为确保其中每笔交易的有效性,各种Rollup方案设计了不同的机制以确保整个过程的安全性与Layer1保持一致。ZKRollup以零知识证明zk-SNARKs的密码学技术确保安全性,而OptimisticRollup则继承了Plasma的惩罚机制,以确保节点如果作恶将付出很大的代价。

当然,Rollup的各种方案都存在不同的取舍。比如,ZKRollup的缺点是支持通用型智能合约更难,而且「浓缩」数据的过程耗时较长;而OptimisticRollup的整体安全性略差一些。不过,各个开发团队具体的实现方案,都针对性优化了上述的这些权衡,部分问题已有显著改善。

Rollup技术将有助于提升链上应用的竞争力,特别是对于高频交易的场景,有望降低转账或交易费用。不过由于本身机制的设计,相比直接的链上交易来说,Rollup类交易可能在链上的结算速度会慢一些。出于这个原因,Rollup的具体应用场景可以包括:

普通转账或支付提升匿名性的转账或支付去中心化交易所去中心化身份系统去中心化社交媒体Rollup概念出现还不到两年,各个Rollup实现方案已经陆续上线了测试网,如MatterLabs和FuelLabs的方案,而应用层的产品也在开发之中,最先上线主网的是由路印Loopring开发的去中心化交易所,其他也宣布将采用Rollup的项目包括Synthetix、Dharma、AZTEC等。

接下来,我们更深入了解学习一下。

Plasma失败了吗?

关于区块链扩容的讨论起源于比特币网络,针对比特币成为「全球支付工具」的愿景,社区、开发者和矿工最终讨论出的一个方案是,将高频的交易迁移到比特币之外的一个虚拟层中进行,或可以称为「Layer2」,而不是依赖于比特币自身,不过,最终的结算还是需要依赖Layer1进行。

这就是比特币「闪电网络」的由来。而Plasma曾是以太坊Layer2解决方案中最受瞩目的一个,不仅因为这是由JosephPoon和以太坊创始人VitalikButerin共同发布的白皮书,而且还有不少项目宣布过,将基于Plasma技术展开研发。

Plasma通过将高频的交易迁移到以太坊网络之外的侧链之上,定期将批量交易的哈希值发布到以太坊主网,然后设置一些防恶意攻击机制,确保资金安全性。最终的目的是为以太坊扩容,提升交易吞吐量,减少交易成本。PlasmaGroup、Matic、LeapDAO和OmiseGo等团队都曾经是Plasma技术最主要的研发团队,有些项目也获得过以太坊基金会和Consensys等机构的资助。

但毕竟这是个试验性的项目,在项目的研发过程中,很多现实问题被暴露了出来,其中最重要的两个挑战是:

数据可用性:因为仅将批量交易的整体哈希值发布到Layer1上,而不是每一笔交易均发布到底层公链,所以具体的交易数据不存在Layer1上,用户需要自己存储具体的交易数据。用户体验差:为了避免恶意攻击,Plasma在设计挑战期的机制的时候,用户需要定期上线网络,否则可能错过而遭受不必要的损失。

虽说Plasma也推出过更新版的标准PlasmaCash,但这些问题也依旧存在,最终导致了PlasmaGroup和LeapDAO两个研发团队在今年初决定,放弃Plasma技术,并转向另一个新技术的研发:Rollup。

而Matic依旧坚持在Plasma技术的开发中,他们计划在5月15日至5月底期间启动主网的上线流程,并逐步进行去中心化,扩展到超过100个节点。究竟Matic有没有处理好上述的这些问题,值得更多时间的观察。

无论如何,研究以太坊扩容技术的开发社区,已经将更多精力切换到研究Rollup了。

为什么Rollup有机会?

在Plasma诞生的一年后,一位匿名人士BarryWhitehat在Github中提出了「Rollup」的概念,试图以「SNARK」对以太坊进行扩容。

SNARK是零知识证明的一类密码学技术,全称是「简洁化的非交互式零知识证明」。

关于零知识证明的更多信息,可以参阅:一文说透密码学历史、工作原理、零知识证明及潜在影响

Rollup一词本身的含义为「卷曲」或「卷起」,或者可以引申为「汇总」或「聚合」。在数据库的标准计算机语言SQL中,语法中的「Rollup」可以帮助Groupby语句,将搜索出的一系列结果以聚合的数据显示,或许这是他以Rollup命名该技术的由来。

在BarryWhitehat提出Rollup概念时,它是这样被定义的:

「Rollup通过将交易聚合,仅需要在链上进行一次交易,就可以验证多笔其他交易。」而打包交易和验证交易的方式是通过zk-SNARK技术实现的,这样就能大幅度减少交易成本,确保安全性,也可以解决Plasma之前遇到的问题。

有人会将Rollup归类为Layer2技术,但VitalikButerin却不这么认为。

在Rollup概念被提出后,VitalikButerin于同月在以太坊研究论坛中发表文章介绍该技术,他是这么解释的:「我们可以将在以太坊上的资产转账交易的规模进一步增加,而且不需要使用Layer2技术中引入的『活性假设』,只需要使用ZK-SNARKs为大量的交易进行验证。」

有意思的是,「Rollup」这个名字一开始没受到重视。2019年的1月,MatterLabs推出了名为「PlasmaIgnis」的技术,因为在此之前Layer2的主流技术是Plasma,所以他们以「零知识证明版本的Plasma」作为研究方向。但从技术角度来说,这其实不能算是Plasma的一类,更像是Rollup。后来该团队全面放弃了PlasmaIgnis这个名字,转而采用ZKRollup作为技术的方向,后续也推出了他们自己基于ZKRollup的技术实现方案ZKSync,还进行了更多的深度定制和优化。

Murakami.Flowers将向持有者空投T恤,快照已于7月11日进行:7月26日消息,takashi murakami官方宣布将向Murakami.Flower持有者赠送T恤。快照已于北京时间2022年7月11日7:59进行。T恤领取时间截止北京时间2022年8月1日7:59。[2022/7/26 2:38:11]

MatterLabs联合创始人AlexGluchowski在2019年1月份发的推特

由于早期ZKRollup的概念中,主要的缺点是生成SNAKR证明过程较长,而且也未能支持通用型的智能合约,所以FuelLabs联合创始人、以太坊二层扩容方案的长期研究者JohnAdler在2019年6月提出了另一个方案,称为OptimisticRollup。该方案吸收了ZKRollup对于数据可用性的优势,以及Plasma的惩罚机制,由于去除了零知识证明,所以可以更方便地支持通用型的智能合约。

Optimistic意思是「乐观的」,所以在该方案中,不是通过SNARK处理后再将数据聚合到链上,而是默认「乐观」相信节点会将最新且准确的数据发布到链上,否则其他人在验证后,如果发现有问题可以发起挑战,成功后节点会受到惩罚。

所以整体来看,Rollup的技术相比较Plasma,最关键的是解决了数据可用性的问题,所有交易数据都是在以太坊链上的,安全性也能和以太坊主链相同级别。

那既然同样都是把交易发布在链上,为什么Rollup比普通的转账的吞吐量更高,成本更低呢?

因为在构建Rollup类交易的时候,大量的普通转账行为可以通过某些技巧进行压缩,最终在通过零知识证明SNARK处理后,虽然SNARK生成过程较长且资源消耗较大,但分摊到每一笔交易中就微不足道了。在VitalikButerin的初始提案中有具体的数据可以参考,虽然后续有各种不同的实现和差别。

在他的方案中,单笔交易的构成类似于:

相比普通链上交易所需要的2.1万的Gas费用来说,以上这种单笔交易由于缩减了体积,所以总共仅需892Gas。

但是由于SNARK证明的计算资源消耗较多,约600kGas,以及运行合约所需约50kGas,所以这也就意味着,必须要批量处理很多交易,才可以分摊这几百k的间接成本。以太坊单个区块Gas上限以8M计算的话,如果以纯ETH交易来说,吞吐量约为:

8M/21k/15秒≈25tps

而该方案中的吞吐量约为:

/892/15秒≈550tps

这就是Rollup既能保证Layer1数据的可获得性,也能大幅减少数据需求并减少单笔交易的成本的主要原因。

除了上述提到的Rollup方案研发团队之外,不少应用层的项目也看到了Rollup的优势,宣布将研究或集成Rollup技术。从目前公开的项目来看,选择OptimisticRollup的项目更多一些,包括去中心化交易所、DeFi协议、匿名服务等,很可能是因为项目方考虑到OptimisticRollup的优势为支持通用智能合约,以及不会像ZKRollup需要花费很多时间生成SNARK证明,毕竟在没有优化方案之前,可能会影响应用的使用体验。

宣布采用ZKRollup方案的项目目前并不多,但是路印Loopring的去中心化交易所是当前Rollup项目中开发进度最快的一个,早在2月底就已经上线以太坊主网,开始了公开测试。虽然后来也遇到了前端页面的非致命漏洞,但是他们的经验会为后续很多其他即将采用ZKRollup的项目提供参考和指导意义。

到底可以减少多少链上的交易成本呢?路印给出了重要的实战数据,在他们采用的方案中,批量处理4096笔交易时,单笔交易只需要375Gas。也就是在正常的Gas费用下,每次交易成本为0.09分人民币,换句话说,100万笔交易的成本大约为900元。

但曾经研发Plasma技术的团队LeapDAO却认为Rollup技术不是万灵药。在他们进行了具体的数据分析后,为大家提供了很多值得参考的数据。根据他们的估算,整体而言Rollup可以为以太坊网络提升略超过10倍的吞吐量,因为相比Plasma还是牺牲了很多成本的。

除了两个最流行的Rollup衍生版本外,还有一些以太坊二层扩容方案也采用了Rollup这个名字,比较常见的两个是SKALELabs提出的BLS-Rollup和OffchainLabs的ArbitrumRollup。

不过OptimisticRollup的提出者JohnAdler认为,BLS-Rollup不算是通常意义上的Rollup,更像是一种批处理技术。而ArbitrumRollup在2018年发布论文和2019年发布白皮书时都未提及Rollup,他们在今年初上线测试网时才称之为ArbitrumRollup。

ZKRollup进展

ZKRollup技术研发中最重要的公司是MatterLabs和iden3,两者均已推出测试网。但他们产品的定位略有差异,MatterLabs更像是通用型解决方案,而iden3是专用型解决方案。

MatterLabs推出的是一套完整的通用型解决方案,叫做ZKSync。该方案考虑到了ZKRollup存在的一些缺点,提出了相应的机制优化,比如之前提及的,生成SNARK证明耗时较长,以及较难支持通用智能合约。MatterLab联合创始人兼首席执行官AlexGluchowski表示,「在伊斯坦布尔升级之后,ZKSync将处于非常有利的位置,可轻松地达到每秒数千的交易量」。

为了实现通用智能合约这一需求,MatterLabs还推出了零知识证明智能编程语言及框架Zinc,在今年2月推出了首个版本v0.1Alpha。MatterLabs表示,Zinc是用于创建安全的零知识证明线路以及基于其运行程序的智能编程语言和执行环境,Zinc遵循Rust原理,并基于简化的Rust语法,精通Rust、C、Solidity等语言的开发者可在一天内快速上手。

而iden3研究ZKRollup的初衷则是为了他们原本项目考虑的。iden3这个名字,可以想象成是identity的3.0,感受一下,是不是类似于「Web3」?所以iden3团队专注的是为数字世界提供一种开源的身份管理系统,利用零知识证明zk-SNARK提升隐私特性,而Rollup则可以增加身份认证系统和应用层在链上交互行为中交易吞吐量。

而从应用层来说,路印Loopring和AZTEC分别解决了用户链上交易和隐私的需求。路印Loopring的去中心化交易所是当前Rollup项目中开发进度最快的一个,早在2月底就已经上线以太坊主网,开始了公开测试。

AZTEC是一个隐私技术解决方案,在今年2月就上线了以太坊主网,但是他们还在考虑采用Rollup技术,以显著降低以太坊网络中隐私交易的成本。他们原本在隐私技术中就采用了零知识证明ZK,扩容方案选择的是ZKRollup,所以他们给新的这套方案取名为ZKZKRollup,或ZK2Rollup。第一个ZK是利用SNARK技术中的「简洁性」提升网络的可扩展性,将多笔交易合并为一笔以减少交易成本,第二个ZK是利用SNARK作为隐私技术,将合并前的每一笔普通交易升级为隐私交易。

OptimisticRollup进展

OptimisticRollup技术中最重要的公司是FuelLabs、Optimism和NutBerry,他们研发的是通用型的OptimisticRollup解决方案。相比ZKRollup,由于去除了复杂的零知识证明这类复杂的密码学技术,所以支持通用的智能合约会更容易一些。

OptimisticRollup虽然比Plasma增加了数据可用性的优点,但也直接吸纳了之前Plasma的成果,除了都用同一套博弈和惩罚机制之外,Optimism团队表示,这两个方案可以共享很多基础设施和代码。另外,他们认为对于一个成熟的Layer2生态系统,Rollup、Plasma和状态通道应该是可以在同一个客户端内一起工作的。

其实在PlasmaGroup对外公开放弃Plasma技术之前的2019年年底,就组建了一家新公司Optimism,专注于实施OptimisticRollup,该公司目前已经从加密风险基金Paradigm和设计公司IDEO旗下的IDEOCoLabVentures筹集了350万美元种子轮融资。新募集的资金主要用于实施OptimisticRollup解决方案和基于该解决方案构建应用程序。尽管这是一家商业公司,但该研究小组表示,希望继续为开源项目做贡献,并与公众分享自己的研究成果。

为了支持以太坊的智能合约,Optimism已经发布了虚拟机OptimisticVirtualMachine(OVM)的Alpha版本。OVM是嵌入在以太坊虚拟机中的副本,允许开发者使用OptimisticRollup时,可使用和EVM相同的开发者工具集和智能合约语言。

刚开始,OptimisticRollup被称为「最小可行合并共识」,在JohnAdler于去年6月提出了这个概念后,就成立了FuelLabs,以实行他们的扩容方案。

FuelLabs将开发一条无需信任的以太坊侧链Fuel,专门针对以太坊链上的支付进行设计,在伊斯坦布尔升级之前,保守估计能将以太坊ERC-20代币交易成本降低至原来的五分之一。

今年1月,FuelLabs基于OptimisticRollup的以太坊侧链Fuel的公开测试网上线,代码也已开源。值得注意的是,他们测试网的合约就已经支持所有的ERC-20代币了,毕竟ERC-20本就是一种智能合约。后来在3月,他们宣布推出一门新的以太坊底层语言Yul,作为对Yul的实验性升级,为Yul添加了各种QoL功能。Yul是由Solidity开发者编写的一门旨在进一步优化编译目标的低级中间语言,简单且具有实用的低级语法,让开发人员比Solidity更接近原始以太坊虚拟机,同时具有优化gas费使用效率的潜力。

NutBerry相比上述两个影响力更小一些,但他们的目标是开发一个基于OptimisticRollup的Layer2解决方案,且支持具有状态的智能合约。该项目最早被发布在以太坊研究论坛,其中描述了该项目将分为四个里程碑:支持ERC-20标准、支持ERC-721标准、支持无状态智能合约、支持具有状态的智能合约。NutBerry已于今年2月发布了第二个测试网,已支持ERC-712。

OptimisticRollup的应用层产品相对较多一些,可能是因为支持智能合约更简单,所以对于这些DeFi、DEX或隐私服务这些需要智能合约处理逻辑的应用来说,更方便一些。这些应用将会在后续的一两个季度内逐步上线,不用多久就能体验到了。

其他Rollup

虽然其他几个Rollup解决方案和上述的这些项目不太一样,但是他们都以Rollup命名,所以本文也做相关的整理和收集:

BLS-Rollup,可以参考SKALELabs的介绍ArbitrumRollup,可以参考OffchainLabs的介绍另外还有一个基于账户的匿名Rollup项目

未来

为了以太坊链上应用生态的发展,扩容是一个持续且重要的话题,毕竟,离以太坊2.0最终形态至少还有2-3年的时间。在此之前,DApp、DeFi、游戏等各种链上应用生态是无法规模化的,计算资源将成为重要的瓶颈,任何一个强势的DApp都可能迅速将链上的计算资源占满。以3月12日为例,Maker协议因以太坊价格暴跌而发起的抵押品拍卖清算流程,就是因为整体网络拥堵而产生了巨额损失。

曾经最重要的扩容方案Plasma,在实现过程中遭遇一些问题之后,开发者社区将更多精力转移至Rollup,因为它解决了前辈在开发过程中发现的「数据可用性」问题。虽然有一些取舍,但还是比以太坊Layer1效率高上几十数百倍。而衍生出两个最重要的分支ZKRollup和OptimisticRollup,分别选择了不同的挑战以确保安全性:是研究困难的零知识证明密码学技术,还是寻找出一套安全且照顾用户体验的博弈机制。

不过,那些上百倍的提升目前还是理论值,或许是实验室环境下的最优情况,在此之前还有很多的研发工作和配套的优化。只有这些方案被实现,并且被应用集成且大规模采用之后,才能知道真实的性能,或是否有其他的弱点和问题。

毕竟实践才能出真知。Rollup不是第一个扩容方案,也不会是最后一个。虽然我们都知道目标在哪里,但是实现的路径依旧是曲折的。

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

大币网

[0:62ms0-3:991ms