本文中的以太坊升级(原名以太坊 2.0)阶段信息已过时,仅供参考。以太坊升级的最新介绍请点此查看。
金融是区块链最容易落地的场景。过去的一年,我们在以太坊生态中看到的各种去中心化的金融产品,很多都带着传统金融产品的影子,像是去中心化的借贷,交易,衍生品等。而金融追求效率,比特币网络每秒 5 笔,以太坊 15 笔的交易处理能力,相较于 Visa 网络均值 2000 笔,峰值数万的效率,仿佛不同时代的产品。
区块链的 TPS(每秒可处理交易)在很大程度上限制了区块链的普及,由此也限制了普惠金融。最近出现了一个新词叫 DeFi 后现代,而我以为 DeFi 的现代还未到来,过去半年间流行的 DeFi 可能只是公元前。受限于 TPS,价高者得的交易处理机制使 DeFi 热潮时以太坊网络贵且拥堵,最拥堵时 gas 值突破了 1000 gwei,单笔交易花费几十上百美元成为家常便饭。这样的交易代价也将很多人拒于 DeFi 门外。
面对当前可拓展性极其有限的难题,以太坊社区和开发者提出了两个方向的解决方案,Layer2 和分片(Eth2 的一个重要升级)。Layer2 字面意思是二层网络,相对的,当前的以太坊主网也称为一层网络(Layer1),二层网络也就是基于当前以太坊主网的一个系统。
Layer2 方案主要是从减轻 Layer1 负担的角度出发,将 Layer1 的大量计算需求搬到 Layer2 上;分片则是从更基础的角度,通过增加 Layer1 数量达到提升基础带宽的目的。Eth2 预计总共将分为 4 个阶段实施,目前处于阶段 0 存款合约的启动阶段,关于 Eth2 的具体信息不在本文展开,后续我们会对 Eth2 的最新进展持续跟进。这篇文章接下来将和大家介绍 Layer2 的常见方案和主要进展。
在 DeFi 拥堵时,Layer2 作为解决拥堵的救星之一也被热炒,相关概念代币价格也一路走高。在这背后,Layer2 到底是如何解决以太坊交易处理效率低下的问题呢?
我们知道当前以太坊交易处理能力主要受限于区块体积和出块时间。区块体积决定了当前以太坊网络单个区块可容纳的交易笔数;出块时间决定了平均每 12 秒才能产生一个区块。
目前主流的 Layer2 方案有很多,本文重点介绍 Plasma、Rollup 两种,其中 Rollup 又可细分为 Optimistic Rollup 和 ZK Rollup,这些方案从不同角度来解决以太坊交易处理能力有限的问题。
Plasma
Plasma 是以太坊社区中出现的第一个试图解决网络处理问题的方案,早在 2017 年被提出,也被寄予厚望。
在介绍 Plasma 前需要先了解「侧链」的概念。由于以太坊主网拓展不易,开发者就想到了创建一个连接到主网的独立区块链,也就是侧链,通过在侧链上高效处理交易来实现对主网的扩容。而侧链的潜在问题是安全性,作为一个独立的区块链,侧链需要有自己的矿工,建立足够的算力来保障安全,而足够的算力和不作恶的矿工,对于当前除比特币和以太坊之外的区块链来说,都是一个不小的门槛。
不同于侧链,Plasma 将 Layer2 交易数据处理后提交到 Layer1,并且增加了欺诈性证明的退出机制,通过这种方式利用 Layer1 算力保障 Layer2 安全性。
理论状态下,Plasma 可将以太坊的 TPS 提升至 1-9k。由此 Plasma 受到了广泛关注。但在随后的开发中,更多现实问题暴露出来:
- 用户从中取出资金的周期过长
- 所有用户都被要求监控 Plasma 链上的所有交易
再往后,Plasma 的发展陷入停滞,进展缓慢,不过近期我们也观察到一些项目基于 Plasma 再继续探索并有所突破,下文中将介绍相关项目的进展。
Rollup
Rollup 是当前最受关注,也是最有可能真正落地的 Layer2 方案。上面提到以太坊网络每个区块中可包含的交易数量是有限的,而 Rollup 则是通过将数千笔交易打包压缩,然后将处理后简洁的数据同步到以太坊主网中实现 TPS 的提升,解决网络交易处理能力有限的问题。
和 Plasma 的区别在于,Plasma 是将交易处理后的结果同步到 Layer1,我们无法直接通过它上传 Layer1 的数据了解到每一笔交易的信息,而 Rollup 压缩处理后同步到 Layer1 的交易数据中包含了每笔交易的基本信息。
通过上面的描述也可以了解到,Rollup 方案对交易处理能力的提升是线性的,打包压缩的交易数量越多,打包后的数据也就越大。在实际测试中,Rollup 可将 TPS 提升 100 倍。在当前的以太坊网络下(即第一代以太坊),TPS 最高可达到 2k,也就是 Visa 处理能力均值;和 Eth2 的分片结合后,理论 TPS 可达到 20k+,接近或超过 Visa 网络峰值水平。
根据如何确保压缩数据的正确性,Rollup 又可分为 ZK Rollup 和 Optimistic Rollup。
ZK Rollup
ZK Rollup 通过零知识证明 zk-SNARKs 的密码学技术来确保安全性,ZK 是 zero knowledge(零知识)的缩写。
> 零知识证明:证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。
ZK Rollup = 交易压缩 + 零知识证明(zk-SNARK)
ZK Rollup 核心思想是在链下达成交易共识,并通过零知识证明保证链下交易状态的安全性,同时压缩交易数据,最后将数据同步至主链。
通过下图对比,可以更直观地认识零知识证明是如何压缩交易数据的:
通过将每笔交易中的签名信息等进行零知识证明处理,来达到压缩交易数据的目的。目前的 ZK Rollup 方案可将当前以太坊网络的 TPS 提升 30 倍,达到每秒约 500 笔交易的处理能力。
但由于对智能合约创建零知识证明的过程较长,所以目前零知识证明算法对通用型的智能合约支持不友好。当前 ZK Rollup 方案更适用于普通转账交易等场景。
Optimistic Rollup
由于 ZK Rollup 存在无法良好支持智能合约,生成零知识证明耗时较长的问题,2019 年 6 月,Optimistic Rollup 方案被提出,这个方案中去除了零知识证明,增加了惩罚机制,来达到保障数据安全性(略低于 ZK Rollup 方案)的同时又可以更方便地支持通用性智能合约的目的。
Optimistic Rollup 方案采用了 OVM(Optimistic 虚拟机),OVM 是功能完备、与 EVM(以太坊虚拟机)基本兼容的环境。通过 OVM,将 DApp 移植到 Layer2 变得简单,而且也使得项目方无需部署各种 Layer2 扩容方案,而只需接入 OVM,就可以使用其中的各类 Layer2 结构。
因此,目前 Optimistic Rollup 更适合于 DeFi 应用,此方案可将 TPS 提升至 100,通过 BLS 签名聚合技术可进一步提升至 500。
各方案的采用情况
目前基于 Plasma 方案的团队主要有 OmiseGo(OMG),其 Plasma MVP 已上线主网,Tether(USDT 发行方)已确定将与其合作。
基于 ZK Rollup 方案的团队的有 Matter Labs,Hermez 等,以其中采用最广泛的 Matter Labs 团队为例,其开发的 zkSync 已上线主网,并且预计将于 2021 年推出通用兼容 Solidity 的代码。目前生态合作项目有 Curve、Gitcoin 和 Balancer 等。
基于 Optimistic Rollup 方案的团队主要是 Optimism,他们开发的 OVM 已于 9 月 25 日上线测试网,并且已经和 Uniswap、Synthetix 和 Coinbase Wallet 达成生态合作。
Photo by Nick Fewings on Unsplash
未来会怎么样?Layer2 作为解决以太坊可拓展性问题最有效的路径之一,还需要不断地优化和开发。希望当 Layer2 进一步流行和采纳后,可以帮助当前的以太坊网络从狭窄小路升级为宽阔车道,让更多人可以使用 DeFi 产品,体验到去中心化金融。再往后,当 Eth2 分片上线,我们期待见到以太坊网络从地面交通成长为海陆空运输系统。
到时,我们或许将真正进入 DeFi 的现代。