基本介绍
Layer 2 是被设计为解决以太坊扩展性问题的关键方案之一,通过在以太坊主链之上构建额外的网络层,允许处理更多交易的同时保持主链的安全性和去中心化特性。
Rollup 是一种通过在链下处理交易然后将交易数据“打包”进入主链的 Layer 2 扩容方案,其安全性由 Layer 1 保证,是目前最主流的 Layer 2 扩容方案,相比于其他的链下交易方案,例如状态通道、侧链、Plasma 等,Rollup 有三个特点:
-
Layer 2 是与 Layer 1 相对独立的平台,所有参与用户也是独立的 Layer 2 账户,用户可以在 Layer 2 平台上与其他 Layer 2 用户进行交易,但是 Layer 1 账户 与 Layer 2 账户之间的交互需要通过 Layer 2 运营方部署在 Layer 1 及 Layer 2 上的智能合约,最常见的交互就是 ETH 等代币的转移;
-
所有的交易信息都需要被完整的记录在主链上,即 Calldata 或 Blob 数据(EIP-4844),即使 Layer 2 状态丢失,任何人都可以从主链上存储的信息中恢复出丢失的状态,解决了在以往的链下交易方案中存在的数据可用性问题;
-
交易执行和状态变更在 Layer 2 平台,但是状态摘要会被发布到 Layer 1 链上,因此 Layer 1 链能够通过某种数据有效性验证方式进行验证,通过验证后 Layer 2 的状态将在 Layer 1 主链上锁定;根据其数据有效性验证方式的不同,Rollups 可以进一步细分为 Optimistic Rollups 和 ZK Rollups。
Rollup 发展史
侧链是最早的 Layer 2 方案之一,顾名思义,侧链是与主链(Layer 1)挂钩(peg)的独立区块链,有自己的共识模型和区块参数。当我们将一个区块链挂钩到另一个区块链时,这意味着我们可以在两个区块链之间移动资产。当想要更快交易时,可以将资产从主链转移到侧链并在侧链上进行交易,完成后,再将资产转移回主链。
Plasma 是 2017 年由闪电网络的提出者之一的 Joseph Poon 和以太坊创始人 Vitalik Buterin 提出的一个 Layer 2 扩展解决方案,是侧链的演变方案。
Plasma 链是在以太坊外构建的独立区块链,也称为子链,就像一棵树的树枝,以太坊是主干,也称为根链。每个子链可以在以太坊上部署自定义的智能合约,可用于处理不同的业务。Plasma 链之上可以再构建一层子链,从而形成树状的 Plasma 网络。Plasma 的工作原理是将大的计算任务拆分成小任务,并将它们分配给各个子链进行处理,处理后的结果结果逐层汇总并提交至上层,从而实现了对大量复杂计算的快速和低成本处理。
Plasma 需要提交 Plasma 链上发生的交易的 Merkle 根,当用户试图将他们的资产从 Plasma 链移回根链时,用户可以提交将资产发送给 Plasma 的最新交易的 Merkle 分支。这开始了一个挑战期,任何人都可以尝试证明用户的 Merkle 分支是欺诈性的。如果 Merkle 分支存在欺诈,则可以提交欺诈证明。由于根区块链仅跟踪 Merkle 根,因此与那些发生在主链上的交易相比,它必须处理的数据要少得多,提升了根链的扩展性。
Plasma 是一种无监管的以太坊侧链技术,无监管是指即使 Plasma 链受到恶意攻击或者验证者串谋起来作恶,Plasma 链上的资产也可以安全退回根链。这也是 Plasma 与需要依靠自己的安全模型来保护用户的资产的侧链最大的不同。Plasma 的代表方案是 Polygon 1.0 (Matic)。
但 Plasma 有三个致命的缺点:
-
Plasma 链需要一个运营商将 Merkle 根承诺发布到根链,运营商可以执行「数据可用性攻击」,即拒绝将某些交易发布到链上。在这种情况下,由于缺乏构建欺诈证明的交易,阻止了用户资产退出;
-
当用户试图从 Plasma 链中退出资产时,他们必须提交退出交易请求,然后等待一段时间,即所谓的挑战期。在挑战期的任何时候,任何用户都可以通过提供退出无效的证明来挑战另一个用户的退出;
-
用户必须监控和验证 Plasma 链上的所有交易,以检测恶意节点的行为并及时退出,然而交易验证成本高昂,并且这种监控需求为参与 Plasma 链增加了大量开销。
正因为 Plasma 存在的缺点,从 2019 年开始 Plasma 陷入了发展瓶颈,此时在 ConsenSys 担任 Layer 2 可扩展性研究员的 John Adler 提出了 Optimistic Rollup 方案,由于仍然采用欺诈证明,主要解决了 Plasma 的数据可用性问题。
另一边,Vitalik Buterin 于 2018 年开创性引入了零知识证明技术证明区块状态变化的有效性,这也是 ZK Rollup 的雏形。零知识证明(Zero—Knowledge Proof)最早是由 S.Goldwasser、S.Micali 及 C.Rackoff 在 20 世纪 80 年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。也就是说,证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
zk-SNARK(Zero-Knowledge Succinct Non-interactive Arguments of Knowledge,零知识简明非交互式知识论证)是一类应用广泛的通用零知识证明方案,通过将任意的计算过程转化为若干门电路的形式,并利用多项式的一系列数学性质将门电路转化为多项式,进而生成非交互式的证明,可实现各类复杂的业务场景的应用。
但 zk-SNARK 绕不开的一个点就是中心化的可信设置,可信设置是指在受信任的设置中,多方各自生成一个部分密钥来启动网络,然后销毁该密钥。如果用于创建信任设置的密钥的保密信息没有被销毁,那么这些保密信息可能会被利用通过虚假验证来伪造交易。
2019 年由 Aztec 研究团队提出 Plonk 算法则解决了 zk-SNARK 通用性问题,即可信设置与应用无关,仅需要一次可信设置可以满足所有应用,而且可信设置可以任意更新,只要有一个可信参与者,即可保证可信设置的安全性,可以说 Plonk 算法的提出大大加速了 ZK Rollup 的发展。
Rollup 赛道
纵览 Rollup 赛道,当下的竞争非常激烈,目前已经上线主网的 Layer 2 Rollup 中,仍然是 Optimistic Rollups 占据大部分 TVL,主要原因是 Optimistic Rollups 是最先落地的完全 Rollup 方案,但是随着 ZK Rollups 技术的成熟,越来越多的人开始关注并参与到 ZK Rollups 生态中。
Optimistic Rollups
Optimistic Rollups 依赖于一种“乐观”假设,即大部分交易都是有效的,并允许在发现欺诈行为时进行挑战和回滚。Rollup 的 Layer 1 合约不直接对 Layer 2 提交的新状态进行验证,而是为每个被提交的新状态准备一个挑战期。由于 Rollup 会将所有的交易信息提交到主链并公开,因此任何人都可以对该状态更新进行验证(特别是当该状态更新涉及到自己的钱包时)。如果新状态是错误的,那么验证者可以针对该错误状态产生一份欺诈证明,并在挑战期内提交,从而使该错误的状态更新被无效化。
Optimistic Rollups 代表方案是 Arbitrum 和 Optimism。
Arbitrum 2021 年 9 月正式启动主网,是目前 TVL 最高的 Layer 2 协议。
目前,在 Arbitrum 生态系统中主要有 3 条网络,包括 Arbitrum One、Arbitrum Nova、Arbitrum Orbit。
-
Arbitrum One 是当前 Arbitrum 生态的核心 Rollup 链,其所有交易数据存放在主网以太坊上,我们平常提到的 L2、链上生态应用多运行在该主网上。
-
Arbitrum Nova 是基于 AnyTrust 技术搭建的、专为游戏、社交应用程序和高吞吐量的 DApp 用例而设计的新网络。该网络的交易数据存储在链下,由数据委员会管 DAC 管理。
-
Arbitrum Orbit 是用来构建 Layer 3 网络的开源工具包,支持开发者部署和创建自己的链。开发者可以基于 Orbit 工具包搭建自己的 Rollup 和 AnyTrust 链(Layer 3),选择由 Arbitrum One 或 Arbitrum Nova 其中一条链作为结算层,来实现扩展。
Optimism 2021 年 8 月上线主网,目前拥有 Layer 2 第二大 TVL,上仅次于 Arbitrum。
Optimism 实现了 EVM 等效性,以太坊上的 Solidity 智能合约可以在 Optimism 的 Layer 2 上运行,且不需要构建额外的功能,开发者可以无缝转接到 Optimism 上开发应用。
OP Stack 是 Optimism 推出的开源模块化工具包,涵盖数据可用性层、执行层、结算层、治理层等。开发者可以根据自己的需求场景利用 OP Stack 工具包组装一个定制的 Layer 2 网络。正因如此,OP Stack 为 Optimism 引入了超级链的概念,超级链是指构建在 OP Stack 上的一组 Layer 2 区块链(也称 OP 链)统称。目前,基于 OP Stack 构建的 Layer 网络已有数十条,包含 Base,opBNB,Magi,Worldcoin 等重量级项目。
ZK Rollups
ZK Rollups 则使用零知识证明技术来确保链外处理的交易是有效且正确的,提供更高的安全性和效率。Rollup 的 Layer 2 平台在状态变更后,要为状态变更的正确性提供一份零知识证明,并随着状态变更一同提交到主链上。主链上的合约会对该证明进行验证以确定状态更新的正确性。相比于 Optimistic Rollup 方案,ZK Rollup 不需要设置漫长的挑战期来最终确定 Layer 2 交易,同时也不需要依赖错误的状态更新会在挑战期内被发现的假设。
代表方案是 zkSync, StarkNet,Polygon zkEVM 和 Scroll。
ZK Rollups 是第一个主网上线的 zkEVM 项目,以零知识证明为基础,允许交易在不透露基础数据的情况下被验证。zkSync 的主要特点之一是使用 “乐观” 转账,允许用户发送和接收交易,而无需等待它们在以太坊区块链上被确认。这大大减少了交易时间,并允许更高的交易吞吐量。除了使用零知识证明和乐观的转移,zkSync 还利用其他一些技术来提高可扩展性和安全性。这些技术包括签名聚合,允许将多个签名压缩成一个签名,以及多链支持,这有助于 zkSync 与其他区块链网络交互。
StarkNet 使用了 zkSTARK 的扩容解决方案,这是一个零知识证明系统,允许用户证明计算的正确性而不透露底层数据。这使得网络上的隐私性和安全性更高,并且能够在不需要信任第三方的情况下进行复杂的计算。StarkNet 还利用了分片技术,这种技术允许将区块链分割成多个较小的链,或称 “分片”,可以并行处理。这允许更大的吞吐量和更快的交易时间,因为每个”分片”可以独立于其他”分片”进行处理。
Polygon 2.0 推出其 ZK Rollups 技术,称为 Polygon zkEVM。这项技术通过使用零知识证明来解决以太坊区块链的可扩展性问题,从而使以太坊网络上的交易更快、更便宜,并且这种实现是在字节码级别而不是语言级别上兼容的。
Scroll 是一个与 EVM 兼容的 ZK Rollups,可以支持与以太坊相同的编程语言和智能合约,允许开发人员轻松地将他们现有的应用程序迁移到 Rollup 网络,而不需要对他们的代码进行任何修改。
总结
区块链由于自身的性能问题导致其难以满足当下需求,基于 Optimistic 和零知识的扩容方案将有望解决区块链性能瓶颈,在不牺牲去中心化和安全性的前提下提高交易速度和交易吞吐量。Rollups 通过将计算转移到链下来提高区块链的吞吐量,即将大量交易打包到一个 Rollup 区块内,并在链下为该区块生成一个有效性证明,Layer 1 上的智能合约只需验证该证明即可直接应用新的状态,可以实现更低的 Gas 和更高的链上安全性。
短期内,Optimistic Rollups 很可能在通用的 EVM 计算中胜出,而 ZK Rollups 则可能在简单的支付、交易和其他特定应用场景中胜出,主要原因还是 Zk Rollups 虽然比 Optimistic Rollups 更快、更高效,但并没有为现有的智能合约提供一个简单的方式来迁移到 Layer 2 。
但得益于近年来区块链、隐私计算等新兴技术应用的发展,零知识证明技术成为了构建信任的重要技术,从中长期来看,随着 ZK-SNARK 技术的改进,ZK Rollups 将在所有场景中胜出,成为以太坊扩容方案的最终答案。