1. 首页 > 知趣科技

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

以太坊在诞生后遭遇的最多质疑就是性能问题,在二层网络解决方案 Plasma几乎全面溃败后,前沿研究领域又将眼光放在了Rollup技术上,当前以太坊链上交易的吞吐量(TPS)约每秒可执行不到30笔交易,虽然接近比特币的几倍,但离大规模应用还有较远的距离。相比之下,Visa或支付宝的交易处理能力的峰值至少每秒上万笔。

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

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

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

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

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

Rollup 是什么?

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

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

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

普通转账或支付

提升匿名性的转账或支付

去中心化交易所

去中心化身份系统

去中心化社交媒体

Rollup 概念出现还不到两年,各个 Rollup 实现方案已经陆续上线了测试网,如 Matter Labs和 Fuel Labs 的方案,而应用层的产品也在开发之中,最先上线主网的是由路印 Loopring 开发的去中心化交易所,其他也宣布将采用 Rollup 的项目包括 Synthetix、Dharma、AZTEC等。

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

Plasma 失败了吗?

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

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

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

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

数据可用性:因为仅将批量交易的整体哈希值发布到 Layer 1 上,而不是每一笔交易均发布到底层公链,所以具体的交易数据不存在 Layer 1 上,用户需要自己存储具体的交易数据。

用户体验差:为了避免恶意攻击,Plasma 在设计挑战期的机制的时候,用户需要定期上线网络,否则可能错过而遭受不必要的损失。

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

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

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

为什么 Rollup 有机会?

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

SNARK 是零知识证明的一类密码学技术,全称是「简洁化的非交互式零知识证明」(zero-knowledge succinct non-interactive argument of knowledge)。

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

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

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

「Rollup 通过将交易聚合,仅需要在链上进行一次交易,就可以验证多笔其他交易。」

而打包交易和验证交易的方式是通过 zk-SNARK 技术实现的,这样就能大幅度减少交易成本,确保安全性,也可以解决 Plasma 之前遇到的问题。

有人会将 Rollup 归类为 Layer 2 技术,但 Vitalik Buterin 却不这么认为。

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

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

Matter Labs 联合创始人 Alex Gluchowski 在 2019 年 1 月份发的推特。

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

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

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

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

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

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

相比普通链上交易所需要的 2.1 万的 Gas 费用来说,以上这种单笔交易由于缩减了体积(比如,以太坊地址是 20 bytes,以上这个仅需 3 bytes),所以总共仅需 892 Gas。

但是由于 SNARK 证明的计算资源消耗较多,约 600k Gas,以及运行合约所需约 50k Gas,所以这也就意味着,必须要批量处理很多交易,才可以分摊这几百 k 的间接成本。

以太坊单个区块 Gas 上限以 8M 计算的话,如果以纯 ETH 交易来说,吞吐量约为:8M /21k/15秒≈25tps

而该方案中的吞吐量约为:(8M - 600k - 50k)/ 892 / 15 秒 ≈ 550 tps

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

除了上述提到的 Rollup 方案研发团队之外,不少应用

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

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

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

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

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

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

ZK Rollup 进展

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

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

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

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

 1/5    1 2 3 4 5 下一页 尾页

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//zqkj/4746.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456