zk-Rollup (ZKR) 被 V 神称为以太坊的终极 L2 扩容解决方案。很多专家学者,包括 Vitalik 本人认为通用型的 ZKR 平台还需要数年的时间才会看到。因此,现阶段的焦点是期望 Optimistic Rollup (比如 Optimism、 Arbitrum 和 Boba Network)可以先担起以太坊扩容的大旗,之后随着 ZKR 技术的成熟和就绪,大家再转向 ZKR。但令人激动的是,ZKR 技术已经开始通过 zkSync 和 StarkWare 等平台走向市场。
本文将聚焦于 L2 扩容的发展以及 zk-Rollup 的崛起。
“不可能三角”是以太坊这样的 L1 区块链面临的永恒的难题,不同的链也总是在去中心化、安全性和可扩展性三者间寻找平衡。很多时候,一条区块链为了顾及其中两个方面,而不得不牺牲第三个方面。
以太坊更侧重于去中心化和安全性,因此不得不面临可拓展性方面的限制。以太坊链上手续费之高,以至于大部分人不能承担在 L1 层的转账费用(见下图的 Messari 研究报告)。
人们需要一个方案,既可以解决可拓展性问题,同时也不会牺牲去中心化或安全性。
有两种方法可以对区块链进行扩容,第一种是对 L1 层区块链本身进行扩容,方法有增加区块大小,或分片(将交易分配给不同组的验证者,而不是让验证者处理所有交易)。然而,这样做肯定会带来去中心化或安全性上的牺牲。第二种方法是将 L1 层网络上的交易转移至 L2 层。使用 L2 层扩容方案在不牺牲去中心化或安全性的前提下,解决区块链的可扩展性问题。
L2 解决方案在二层对交易进行汇集,然后发送至 L1 层网络进行结算。这样,每一批交易付一笔 gas 费用,而不是每笔交易都付 gas 费用。因此,所有交易对 gas 费用进行平摊,有效降低了每笔交易的费用。这样,L1 就成为了 L2 上所有执行交易的结算层。
总结一下,L2 解决方案在不牺牲去中心化或安全性的前提下,通过非常低廉的手续费来帮助区块链进行扩容。
模块化区块链 vs. 单片式区块链
L2 扩容是“模块化区块链”的一部分。在传统的“单片式区块链”中,所有的功能都发生在 L1 。
从本质上来说,区块链主要处理三件事:
在‘单片式区块链’中,所有这三种功能都是由 L1 进行。因此,L1 也受到“不可能三角”的限制,从而影响到效率。 “模块化区块链”将每项功能进行划分,不同的功能采用不同的解决方案,比如: L2 解决方案上对执行层的扩容,在 L1 层进行结算前在 L2 层进行交易归集和执行。此外,还会有其它的解决方案来改进安全性和数据可用性(从 PoW 转向 PoS 以及数据分片)。
过去一年中,因为新用户对于低 gas 费的追求,许多其它的 L1 区块链网络日渐崛起。这也让一些人认为这些替代性的 L1 网络才是社区真正需要的扩容方案。虽然从某种程度上来说,不无道理——像 Solana 这样的区块链也在引入新型的架构。不少 L1 区块链兼容 EVM,并称有更高的 TPS,但仍然要指出在使用率达到一定高水平的阶段,这些区块链也会遇到和以太坊一样的可拓展性问题。近期,Avalanche 因网络活跃度的提升而带来的 gas 数十倍飙升就是个例子。
作者当然并不是反对 Avalanche,只是为了指出 L2 扩容方案对于高需求量的区块链来说都是非常必须的,而不仅仅是以太坊。扩容是区块链发展和演进中非常重要的一部分,随着交易量的增长,其它 L1 网络也会面临以太坊的同样问题。L2 解决方案则可以在保持去中心化和安全性的前提下让区块链进行扩容。
那么问题来了,L2 到底是什么?它的工作原理又是如何?
以太坊 L2 扩容史是从“状态通道”(state channels)到 Plasma 到 Rollup 的演变史。
状态通道是一种由多签智能合约支撑的链下扩容方案,ETH 等资产锁定在合约中,用户之间创建双向支付通道,用户可以在链下进行点对点的转账,然后在链上进行结算。
换句话说,状态通道就像是在“记账”,用户彼此之间可以在链下进行数百次交易,然后通过向以太坊 L1 发送最后一笔交易来停止记账。这样一来,原本是许多笔的交易,通过状态通道得以简化。
这样并非每笔交易都在 L1 进行处理,于是节省了手续费,但是并不支持更加广泛的应用,因为用户必须通过多签来与特定的其它方之间进行转账。
Plasma
Plasma 创造了一系列的“子链”来分散转账负荷。每一条子链都有一个运营者(中心化角色、多签或 PoS 系统)可以在 L2 区块中处理成千上万笔交易,并捆绑为一笔单一交易提交给 L1。如果遇到有争议的交易,会采用“欺诈证明”的方式来验证。
Plasma 的方向是正确的,但问题是 L2 每一笔交易的数据并不能为 L1 所用,也就是说数据可用性(DA)是在链下的。因此,这种方法不能作为通用型方案。
“通用型”意味着什么?为何如此重要?
通用型方案支持 EVM 运行环境。通用型 L2 方案可以让现有的以太坊应用简单方便地迁移到 L2。这样的重要性在于已有的应用是经过测试的,相比新代码的合约风险更小;而且这些应用已经有了足够的用户基础,这些用户也能够受益于 L2 手续费的降低。
如何建立通用型的 L2?这里就到了我们要将的 Rollup 部分。
Rollup
记住,“通道”和 Plasma 将所有交易高效地在链下(off-chain)进行处理,并不会将每笔交易的数据同步到 L1 ,这也限制了它们称为通用型解决方案的能力。
Rollup 搭建在以太坊主网之上,它将多笔交易汇总起来,打包成一笔提交给以太坊主链,而不是让主链单独处理每一笔交易。Rollup 将运算和状态存储放到链下,但是每笔交易中的部分数据在链上,也就是对主网可用,因此每笔交易依然是回到 L1 进行结算。rollup 的高效之处在于将每笔交易的大小进行压缩,然后再在 L1 进行结算。这将大大增加可拓展性,但仍受 L1 数据可用性的限制。
数据可用性是指每笔交易的数据储存在链上,数据可用性的重要意义主要体现在两个方面:
这也是为何以太坊将 Rollup 作为主要的 L2 扩容方案—— Rollup 可以让用户在 L2 上体验 L1 层的各种应用,而且花费手续费更低,同时还能维持 L1 的去中心化和安全性。比如 Uniswap 就可以非常简单地迁移到 Optimism L2 上。
Rollups 的分类
目前,主要有两种类型的 Rollups: Optimistic Rollups (使用欺诈证明)和 ZK Rollups (使用零知识证明)
在 Optimistic Rollup 中,L2 交易被验证人进行排序和分组,送到 L1 层进行结算。网络上的任何人都可以成为验证人,这些验证人提交以太坊等资产作为押金。任何网络的参与者都可以针对一笔交易提出异议,如果真的存在欺诈,那么发送这笔虚假交易的验证人的押金就会被没收。在一批交易得到处理后,有一个7天的异议提交窗口期。Optimistic Rollup 又被称为“欺诈证明”,在被证明是欺诈前,所有的交易都乐观地被假设是“有效的”。
Optimistic Rollup 二层扩容方案是由 Optimism 和 Arbitrum 提出并首先推向市场,但相对于其它新型的 L1 层区块链(Solana 或 Avalanche)并没有得到广泛采用和关注。L2 上的手续费依旧不算低廉,应用开发缓慢,用户迁移的动力不足。根据 DeFiLama 的数据,截至2021年11月30日,Arbitrum 和 Optimism 的 TVL 仅仅占以太坊 L1 总 TVL 的一小部分。
Zero Knowledge-Rollups (ZKR)
Zero Knowledge-Rollups (ZKR) 依赖零知识证明这项密码学技术。ZKR 将交易执行和共识、数据可用性分离开来,L2 上的多个交易打包之后会变成一个零知识证明(zkSNARK 或 zkSTARK)并可被 L1 快速验证,所以零知识证明验证的成本会分摊到每个交易上,这样能省 Gas Fee 和提高 TPS。
因为 Rollup 上的每笔交易的 input 数据都储存在 L1 ,其它节点可以验证这些交易的有效性,决定是否接受或拒绝这笔交易。因此,如果 zk Rollup 上的一个用户想要进行一次双花,L1 上的节点就会拒绝。
ZKR 的另外一个重要的特性是验证比运算成本低很多,这样的简洁性为扩容提供了条件。但零知识证明技术上复杂度非常高,需要大量的运算,交易的时延也会变长。
简单来说,相较于 Optimistic Rollup,ZKR 技术上更加复杂,每笔交易手续费更低,但是运算成本更高昂。
StarkWare 和 zkSync 是 ZKR 领域的两个主要选手,他们在通用型 ZKR 平台上的进展均比市场期望的更快。zkSync 采用的是零知识证明中的 SNARK 技术,StarkWare 采用的是更具可拓展性的 STARK 技术。后面我们会有专门的文章介绍这两个项目。
采用 STARK 技术的目前有 :
@StarkWareLtd
@0xPolygonMiden
采用 SNARK 技术的目前有 :
@zksync
@loopringorg
@0xPolygonHermez
@aztecnetwork
@0xPolygonZero
【References】
Twitter: ZK 爱好者 @ZKP101