撰文:潘致雄,链闻研究总监
以太坊在诞生后遭遇的最多质疑就是
性能问题,在二层网络解决方案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的缺点是支持
以太坊信标链更新Altair升级拟于三季度部署到信标链:5月10日消息,以太坊2.0开发人员BenEdgington表示,目前客户端团队在实施Altair(一个信标链更新)规范等方面进展顺利,Altair规范交付的拟议时间表为,在5月21日左右冻结规范,6月初上线短期测试网(仅Altair规范),6月底分叉测试网,7月下旬至8月上旬会部署到信标链。Altair中的一个重要新功能是“轻客户端同步委员会”,此委员会里的验证者会定期得到激励,把区块头的信息提供给轻客户端。[2021/5/10 21:42:32]
通用型智能合约更难,而且「浓缩」数据
的过程耗时较长;而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在设计挑战期的机制的时候,用户需要定期上线网络,否则可能错过而遭受不必要的损失。
Circle向以太坊网络新增发1,914万枚USDC:据DAppTotal.com稳定币专题页面数据显示:10月02日23时47分 ,USDC发行方Circle向以太坊网络新增发1笔价值1,914万美元的USDC, 块高度为:10977489,交易哈希值为:0xba1a69cdef14441c408e53b10e47f7a12a6e1463af8bb9256fd07224eabc0289 。截至目前,Circle在以太坊网络上的ERC20 USDC总发行量已达2,567,077,461枚。[2020/10/2]
虽说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?为大量的交易进行验证。」
以太坊的链上手续费连续三个月上升:据Tokenview区块浏览器数据显示,上半年比特币链上手续费共计约合6841.1万美元,以太坊链上手续费共计约合4397.08万美元。值得注意的是,虽然以太坊在六月发生了三笔高额手续费转账,但在排除三笔高额手续费的影响后,以太坊在六月的链上手续费仍超过了1500万美元,高于比特币在六月的1124.94万美元。[2020/7/3]
有意思的是,「Rollup」这个名字一开始没受到重视。2019年的1月,
MatterLabs?推出了名为「
PlasmaIgnis」的技术,因为在此之前Layer2的主流技术是Plasma,所以他们以「零知识证明版本的Plasma」作为研究方向。但从技术角度来说,这其实不能算是Plasma的一类,更像是Rollup。后来该团队全面放弃了PlasmaIgnis这个名字,转而采用ZKRollup作为技术的方向,后续也推出了他们自己基于ZKRollup的技术实现方案?
ZKSync,还进行了更多的深度定制和优化。
?MatterLabs联合创始人?AlexGluchowski?在2019年1月份发的推特。
由于早期ZKRollup的概念中,主要的缺点是生成SNAKR证明过程较长,而且也未能支持通用型的智能合约,所以FuelLabs联合创始人、以太坊二层扩容方案的长期研究者?
JohnAdler?在2019年6月提出了另一个方案,称为?
OptimisticRollup。该方案吸收了ZKRollup对于数据可用性的优势,以及Plasma的
惩罚机制,由于去除了零知识证明,所以可以更方便地支持通用型的智能合约。
Optimistic意思是「乐观的」,所以在该方案中,不是通过SNARK处理后再将数据聚合到链上,而是默认「乐观」相信节点会将
最新且准确的数据发布到链上,否则其他人在验证后,如果发现有问题可以发起挑战,成功后节点会受到惩罚。
所以整体来看,Rollup的技术相比较Plasma,最关键的是解决了
数据可用性的问题,所有交易数据都是在以太坊链上的,
安全
性也能和以太坊主链相同级别。
那既然同样都是把交易发布在链上,为什么Rollup比普通的转账的吞吐量更高,成本更低呢?
因为在构建Rollup类交易的时候,大量的普通转账行为可以通过某些技巧
进行压缩,最终在通过
零知识证明SNARK?处理后,虽然SNARK生成过程较长且资源消耗
较大,但分摊到每一笔交易中就微不足道了。在VitalikButerin的初始提案中有具体的数据可以参考,虽然后续有各种不同的实现和差别。
行情 | 过去24小时以太坊总交易额为1190811ETH:根据amberdata.io数据显示,过去24小时以太坊总交易额为1190811ETH,较此前数据下降13.01%;日活跃用户量181853万,用户活跃下降12.15%;新增合约40014个,较此前数据上升35.39%;平均交易费用为11.58GWEI,下降5.06%;代币交易数量335143,较此前下降10.54%;交易总量582767,较此前下降7.42%。[2019/8/12]
在他的方案中,单笔交易的构成类似于:
相比普通链上交易所需要的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还是牺牲了很多成本的。
行情 | 以太坊昨日新用户增长趋势降低 老用户活跃度略微上升:据Searchain.io数据显示:昨日以太坊新增交易地址 36,185,较昨日增长1.78%,较上周同期减少 10.88%;活跃地址 285,887,较昨日增长1.97%,较上周同期增长8.13%。流入交易所 226,965,其中大额占比 22.72%;流出交易所 277,926,大额占比 18.22%。交易所余额整体呈流入状态,换手率同比下降4.14%。分析师认为,以太坊昨日新用户增长趋势降低,老用户活跃度略微上升;ETH流入流出交易所的数量有所下降,换手率较前日,较上周同期均在下降。从链上指标反馈来看,用户的交易热情较弱。[2018/10/15]
除了两个最流行的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的介绍:
https://ethresear.ch/t/the-optimal-snark-less-on-chain-scaling-solution/4790
ArbitrumRollup,可以参考OffchainLabs的介绍:
https://medium.com/offchainlabs/how-arbitrum-rollup-works-39788e1ed73f
另外还有一个基于账户的
匿名Rollup项目:
https://ethresear.ch/t/account-based-anonymous-rollup/6657
未来
为了以太坊链上应用生态的发展,
扩容是一个持续且重要的话题,毕竟,离以太坊2.0最终形态至少还有2-3年的时间。在此之前,DApp、DeFi、游戏等各种
链上应用生态是无法规模化的,
计算资源将成为重要的瓶颈,任何一个强势的DApp都可能迅速将链上的计算资源占满。以3月12日为例,Maker协议因以太坊价格暴跌而发起的抵押品拍卖清算流程,就是因为
整体网络拥堵而产生了巨额损失。
曾经最重要的扩容方案Plasma,在实现过程中遭遇一些问题之后,开发者社区将更多精力转移至Rollup,因为它解决了前辈在开发过程中发现的「
数据可用性」问题。虽然有一些取舍,但还是比以太坊Layer1效率高上几十数百倍。而衍生出两个最重要的分支ZKRollup和OptimisticRollup,分别选择了不同的挑战以确保安全性:是研究困难的
零知识证明密码学技术,还是寻找出一套安全且照顾用户体验的
博弈机制。
不过,那些上百倍的提升目前还是理论值,或许是实验室环境下的最优情况,在此之前还有很多的
研发工作和配套的优化。只有这些方案被实现,并且被应用集成且大规模采用之后,才能知道真实的性能,或是否有其他的弱点和问题。
毕竟实践才能出真知。Rollup不是第一个扩容方案,也不会是最后一个。虽然我们都知道目标在哪里,但是实现的路径依旧是曲折的。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。