以太坊:Rollup 未来在以太坊的角色 -「Rollup - 以太坊 L2 扩容新范式」活动文字回顾

以太坊扩容在社区中的讨论如火如荼,多个解决方案正在加紧开发,并有望在今年全部上线主网。在整个以太坊Layer2方案爆发的前夕,imToken联合ETHPlanet、EthFans、ECN、上海前沿技术研讨会和HiBlock等多家优秀的以太坊生态社区与公司,共同策划一场以太坊扩容主题系列活动。

4月23日举办了第一场活动:Rollup-以太坊L2扩容新范式杭州线下Meetup。

以下是本次imToken首席科学家Chang-Wu的分享:「Rollup未来在以太坊的角色」的文字版,由imToken整理。

演讲整理

我先带大家了解一下什么是Rollup,以及Rollup未来与Eth2路线图又是一个什么样的关系。

首先,我们都知道现在以太坊网络的一个block,它的计算单位是gaslimit,每个区块的gaslimit都有上限,目前这个上限值已经被调整为1500万,这1500万就代表每个区块可以包含的计算单元,也就是每个区块里所有交易累计消耗的gaslimit不能超过1500万gas。

举例来说,单纯的ETH转账,每笔的gaslimit是21000。如果一个区块中所有交易都是ETH转账,那么单个区块中最多可包含的交易笔数就是1500w/21000=714笔。同时,目前以太坊出块平均时间是12秒,那么用714除以12,我们就可以知道目前以太坊网络每秒可处理交易数的上限。

ConsenSys在万事达卡的支持下推出ConsenSys Rollups:金色财经报道,以太坊软件开发公司ConsenSys在万事达卡的支持下推出ConsenSys Rollups,为金融组织和其他机构提供企业级可扩展性,解决Quorum技术堆栈上可扩展应用程序的关键挑战。ConsenSys聘请万事达卡共同开发关键构建块,以使区块链技术在以太坊主网上可扩展或供私人使用。据悉,ConsenSys Rollups是一种创新的模块化软件解决方案,用于许可区块链应用程序,专注于提供可扩展性和隐私功能,可以连接到任何兼容以太坊虚拟机(EVM)的区块链。ConsenSys Rollups利用零知识(ZK)证明来保护特定的交易元素,例如账户余额、发送者、接收者和金额,以防止这些重要的交易数据在网络上公开共享。[2021/12/17 7:44:53]

最近大家都看到了,现在的网络是非常拥挤的,尤其是在柏林升级前,区块gaslimit只有1200万的时候。但即使是通过升级把gaslimit提升到了1500万,我们仍然看到每个区块几乎都是满的,区块空间利用率接近饱和。

也就是说这时候你想要放入更多的交易其实是很困难的。同时我们也注意到,因为一些DeFi项目的兴起、需求等等,每当市场上有震荡的时候,手续费就会特别昂贵。过去一段时间,我相信大家也注意到在星火矿池维护的实时评估gas的网站上,有时甚至能看到900、1000Gwei这样非常昂贵的手续费的产生。?

V神:Rollups预计在短期和中长期成为以太坊扩容的基石:以太坊创始人V神发布《不完全的Rollups指南》一文,其中介绍了Rollups技术、原理及其发展。他在最后说道:Rollups是强大的二层扩容范例,预计在短期和中期(也可能是长期)将成为以太坊扩容的基石。

Rollups已经看到了以太坊社区的巨大热情,因为与之前的二层扩容尝试不同,Rollups可以支持通用EVM代码,允许现有的应用程序轻松迁移。为了做到这一点,Rollups做出了一个关键的妥协:不尝试完全脱离链,而是把每个交易的少量数据留在链上。有很多类型的Rollup,在设计空间中也有很多选择。

他指出Rollups仍处于发展早期,开发仍在快速进行中,但确实有效,其中一些(特别是Loopring、ZKSync和DeversiFi)已经运行了几个月。在未来的几年里,Rollup领域将会出现更多令人兴奋的工作。[2021/1/5 16:27:16]

所以在这一现状下我们认识到由于DeFi不停增长的需求,导致网络拥挤、每个区块都是饱和的状态、手续费昂贵。即便近期提升了区块的gaslimit,但仍不足以满足链上的交易需求。?

波卡二层扩容协议Plasm开始研究ZK-Rollups 并计划于Q4公布相关信息:10月13日,波卡二层扩容协议Plasm发推公布项目周报。周报显示,Plasm Network计划将实现Rollup解决方案,并已开始着手研究ZK-Rollups。官方表示,这方面的信息应该将在2020年第四季度公布。此外,周报还提到,Plasm已集成以太坊虚拟机EVM并升级至Substrate 2.0。[2020/10/13]

对此,我们越来越需要通过扩容来支撑以太坊网络整体的交易量。这就是我们今天想要和大家介绍的主题-Rollup,中文叫做卷叠。通过引入Rollup技术方案,我们可以将以太坊网络的交易处理能力由当下Eth1上的20TPS提升至4000TPS。?

那么Rollup是什么,以及它在Eth2路线图中又会扮演什么样的角色呢??

我们都知道Eth2想要通过分片的方法来提升整体的交易量。具体而言,分片是通过将交易发送到不同的Eth2分片去做执行,因为分片本身的设计允许不同的交易在不同分片上平行处理,以此从最底层的协议上进行优化,达到给网络整体扩容的目的。但是呢,我们也都知道,Eth2的阶段0是去年12月份刚上的,上面谈到的分片实际运转起来可能要等到阶段1.5或阶段2。如果没有过渡或者说妥协的方案出来,这中间将是漫长的等待期,而且期间网络将一如既往的拥堵。这也是为什么Rollup二层网络解决方案在近期越来越受到欢迎和普及。??

动态 | 路印协议在以太坊主网启动采用zkRollup对以太坊进行扩容的DEX:路印协议LOOPRING宣布启动Loopring v3上的首个DEX,同时也是首个采用zkRollup对以太坊主网进行扩容的项目。[2019/12/23]

那接下来,我们开始介绍Rollup,我会通过说明Rollup的每一个步骤来向大家解释它是如何实现扩容的。?

首先,下图中间黑线上面代表Layer1,下方代表Layer2。Layer1的主网就是现在Eth1的主链,Rollup项目方会在这条主链上部署一个智能合约。

用户在这个合约中可以deposit资产,存入后,Rollup运营商或服务商就会在二层网络上把这些资产映射出来。关于具体的映射方式,我们可以把它想像成是以数据库的方式,映射成一个存储的格式,而这个格式可以表示每一个账号现在有多少余额。

通过这种方式将用户在主网Layer1的存入资产与二层网络账户上的余额进行映射。然后,用户就可以在Layer2上进行转账、兑换等操作。那么,当用户们在Layer2发起大量交易时,由谁来对这些交易进行筛选、排序和打包呢???

动态 | 报告:以太坊可通过ZK-Rollup达到Visa的TPS:据U.today消息,以太坊基金会合作初创公司Iden3发布了有关ZK-Rollup功能如何提高以太坊网络速度的报告。报告指出,大规模采用时低吞吐量被认为是最严重的瓶颈,而ZK-Rollup功能将允许在每个以太坊区块中验证更多交易。Visa网络目前平均为2000 TPS,以太坊目前支持大约30 TPS,但是随着ZK-Rollup的实施,这个数字可能会激增6300%。因此,这一突破并非完全不可能。[2019/12/15]

在当前的Rollup二层网络方案中,这个角色一般由项目方来承担,我们称其为sequencer。sequencer的角色,有点像是在打包这些交易,类似Layer1的矿工。但区别在于,sequencer是先把交易整理好,然后才去做打包交易的动作。比如在二层网络中用户A给用户B转10个token,用户B给用户C转20个token,这些交易就会由sequencer来负责验证处理,并且打包整理成最后用户A、B、C的余额应该各有多少。

?但仅做到以上这些仍是不够的,因为以太坊上一笔交易占据的空间非常大。例如仅收款方的地址,就占20个bytes,ECDSA签名占64bytes。对于以太坊区块有限的空间来说,这些数据所占用的空间较大,那么我们是否有办法压缩这些数据呢?

方法是有的。现在以太坊上一个地址是20bytes,在二层网络上,我们可以通过编码的方式进行压缩。具体来讲,Layer1上的一个普通地址通过编码可以从20bytes压缩到3bytes。同样的,上面提到的ECDSA签名数据和其他数据也可以进行压缩。sequencer的职责就是压缩交易,并将压缩后的数据放在Data中同步到Layer1上。以上就是Rollup处理交易的过程说明。?

到这一步,我们看到即使是在Layer2上,sequencer最终同样需要把所有交易打包后的数据上链。这里有两个问题需要回答:

为什么要把数据放到链上?原因在于只有当数据上链时,数据才具备可用性,其他人就可以通过这些数据来验证其中包含的交易是否真的成功。避免由于sequencer作恶造成的资产损失。因此数据上链是必要的。如何确保上链的数据是正确的?这就要求sequencer要对数据进行验证,一般是通过提交Proof来确保上链数据正确。在第二个问题上,目前的Rollup方案主要区别在于对数据和Proof的处理上。有的方案只把数据上链,但不对数据进行验证,也就是缺乏Proof,比如Optimism。有的方案则是将数据和对数据的Proof同时上链来保证数据的有效性,比如zkRollup通过零知识证明对数据进行验证,并且把验证得到的Proof和数据一起上链,以此确保对应数据在链上的有效性和资金的安全性。所以zkRollup是目前被大家公认为比较安全的方案。

整体来看Rollup方案,Layer1上的智能合约就像是城堡,其中的资金安全性依赖于Layer1自身的安全性。在Layer1上需要保存各账户的状态转换数据,同时要把Layer2上交易压缩后的数据同步到Layer1上,至于要不要做Proof则取决于具体的项目方的取舍。

Layer2则负责执行交易,将本来在Layer1上处理的交易转移到Layer2上。当前对数据正确性的验证主要有两种典型的方案:

Validityproof:即指类似于zkRollup的零知识证明方案。将数据和对数据的Proof同时上链。Fraudproof:即指类似于Optimism的欺诈性证明方案。由于只将数据上链,所以Optimism需要用户或项目方自身去监测sequencer是否如实地把交易数据同步到了Layer1上。如果监测到欺诈行为,那么就可以通过提交欺诈性证明来保障资产安全。

最后,关于数据可用性,从形态上可以简单分为两个代表:zkRollup和Optimism。主要区别在于对哪些数据上链/不上链方面的取舍。大部分方案都是把数据上链的,但是也有一些方案选择对一部分数据不上链处理,这么做的好处在于可以进一步提升扩容性能,而不用受区块自身可存放数据容量大小的限制;另一个原因是,有些应用顾虑到隐私性或其他一些特性,并不希望所有数据都上链,因而做了取舍,对这部分在这次分享中我们不去详细讨论。

在数据上链/不上链取舍上有一个典型的例子:zkPorter,也就是未来的zkSync2.0。他们宣称在zkSync2.0中可以达到24,000TPS,这主要是通过默克尔树实现的,在不同分支中分别存放zkRollup与zkPorter。对于在意安全性的用户来说,zkRollup是一个更可靠的选择;但在对安全性要求相对较低的应用中,则可以考虑使用部分数据不上链的zkPorter。zkSync2.0通过这种混合的方式实现有保障性的安全和效率的提升。?

那么为什么说Rollup和Eth2的路线图有关?其实前面有提到过,Eth2分片上的交易执行暂时还无法立即到位,社区可能还要在等一段时间。但是在Phase1和Phase1.5间,当分片的数据库成型时,其中的每个分片就好比是一个主网,这些分片的数据层就可以用来存储Rollup的数据。

当未来有分片的时候,虽然我们不能在其上立即进行交易,但是我们可以通过把Rollup的数据存到这些分片中提前发挥分片的作用,达到进一步扩容的目标。?

这部分就是我今天的分享,谢谢大家。

---

风险提示:本文内容均不构成任何形式的投资意见或建议。imToken对本文所提及的第三方服务和产品不做任何保证和承诺,亦不承担任何责任。数字资产投资有风险,请谨慎评估该等投资风险,咨询相关专业人士后自行作出决定。

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

金星链

[0:0ms0-0:638ms