基本介绍

Layer2 是被设计为解决以太坊扩展性问题的关键方案之一,通过在以太坊主链之上构建额外的网络层,允许处理更多交易的同时保持主链的安全性和去中心化特性。

Rollup 是一种通过在链下处理交易然后将交易数据“打包”进入主链的 Layer2 扩容方案,其安全性由 Layer1 保证,是目前最主流的 Layer2 扩容方案,相比于其他的链下交易方案,例如状态通道、侧链、Plasma 等,Rollup 有三个特点:

  1. Layer2 是与 Layer1 相对独立的平台,所有参与用户也是独立的 Layer2 账户,用户可以在 Layer2 平台上与其他 Layer2 用户进行交易,但是 Layer1 账户 与 Layer2 账户之间的交互需要通过 Layer2 运营方部署在 Layer1 及 Layer2 上的智能合约,最常见的交互就是 ETH 等代币的转移;

  2. 所有的交易信息都需要被完整的记录在主链上,即 Calldata 或 Blob 数据(EIP-4844),即使 Layer2 状态丢失,任何人都可以从主链上存储的信息中恢复出丢失的状态,解决了在以往的链下交易方案中存在的数据可用性问题;

  3. 交易执行和状态变更在 Layer2 平台,但是状态摘要会被发布到 Layer1 链上,因此 Layer1 链能够通过某种数据有效性验证方式进行验证,通过验证后 Layer2 的状态将在 Layer1 主链上锁定;根据其数据有效性验证方式的不同,Rollups 可以进一步细分为 Optimistic Rollups 和 ZK Rollups。

Rollup 发展史

侧链是最早的 Layer2 方案之一,顾名思义,侧链是与主链(Layer1)挂钩(peg)的独立区块链,有自己的共识模型和区块参数。当我们将一个区块链挂钩到另一个区块链时,这意味着我们可以在两个区块链之间移动资产。当想要更快交易时,可以将资产从主链转移到侧链并在侧链上进行交易,完成后,再将资产转移回主链。

Plasma 是 2017 年由闪电网络的提出者之一的 Joseph Poon 和以太坊创始人 Vitalik Buterin 提出的一个 Layer2 扩展解决方案,是侧链的演变方案。

Plasma 链是在以太坊外构建的独立区块链,也称为子链,就像一棵树的树枝,以太坊是主干,也称为根链。每个子链可以在以太坊上部署自定义的智能合约,可用于处理不同的业务。Plasma 链之上可以再构建一层子链,从而形成树状的 Plasma 网络。Plasma 的工作原理是将大的计算任务拆分成小任务,并将它们分配给各个子链进行处理,处理后的结果结果逐层汇总并提交至上层,从而实现了对大量复杂计算的快速和低成本处理。

Plasma 需要提交 Plasma 链上发生的交易的 Merkle 根,当用户试图将他们的资产从 Plasma 链移回根链时,用户可以提交将资产发送给 Plasma 的最新交易的 Merkle 分支。这开始了一个挑战期,任何人都可以尝试证明用户的 Merkle 分支是欺诈性的。如果 Merkle 分支存在欺诈,则可以提交欺诈证明。由于根区块链仅跟踪 Merkle 根,因此与那些发生在主链上的交易相比,它必须处理的数据要少得多,提升了根链的扩展性。

Plasma 是一种无监管的以太坊侧链技术,无监管是指即使 Plasma 链受到恶意攻击或者验证者串谋起来作恶,Plasma 链上的资产也可以安全退回根链。这也是 Plasma 与需要依靠自己的安全模型来保护用户的资产的侧链最大的不同。Plasma 的代表方案是 Polygon 1.0(Matic)。

但 Plasma 有三个致命的缺点:

  1. Plasma 链需要一个运营商将 Merkle 根承诺发布到根链,运营商可以执行「数据可用性攻击」,即拒绝将某些交易发布到链上。在这种情况下,由于缺乏构建欺诈证明的交易,阻止了用户资产退出;

  2. 当用户试图从 Plasma 链中退出资产时,他们必须提交退出交易请求,然后等待一段时间,即所谓的挑战期。在挑战期的任何时候,任何用户都可以通过提供退出无效的证明来挑战另一个用户的退出;

  3. 用户必须监控和验证 Plasma 链上的所有交易,以检测恶意节点的行为并及时退出,然而交易验证成本高昂,并且这种监控需求为参与 Plasma 链增加了大量开销。

正因为 Plasma 存在的缺点,从2019年开始 Plasma 陷入了发展瓶颈,此时在 ConsenSys 担任 Layer2 可扩展性研究员的 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 赛道,当下的竞争非常激烈,目前已经上线主网的 Layer2 Rollup 中,仍然是 Optimistic Rollups 占据大部分 TVL,主要原因是 Optimistic Rollups 是最先落地的完全 Rollup 方案,但是随着 ZK Rollups 技术的成熟,越来越多的人开始关注并参与到 ZK Rollups 生态中。

Optimistic Rollups

Optimistic Rollups 依赖于一种“乐观”假设,即大部分交易都是有效的,并允许在发现欺诈行为时进行挑战和回滚。Rollup 的 Layer1 合约不直接对 Layer2 提交的新状态进行验证,而是为每个被提交的新状态准备一个挑战期。由于 Rollup 会将所有的交易信息提交到主链并公开,因此任何人都可以对该状态更新进行验证(特别是当该状态更新涉及到自己的钱包时)。如果新状态是错误的,那么验证者可以针对该错误状态产生一份欺诈证明,并在挑战期内提交,从而使该错误的状态更新被无效化。

Optimistic Rollups 代表方案是 Arbitrum 和 Optimism。

Arbitrum 2021年9月正式启动主网,是目前 TVL 最高的 Layer2 协议。

目前,在 Arbitrum 生态系统中主要有 3 条网络,包括 Arbitrum One、Arbitrum Nova、Arbitrum Orbit。

  1. Arbitrum One 是当前 Arbitrum 生态的核心 Rollup 链,其所有交易数据存放在主网以太坊上,我们平常提到的 L2、链上生态应用多运行在该主网上。

  2. Arbitrum Nova 是基于 AnyTrust 技术搭建的、专为游戏、社交应用程序和高吞吐量的 DApp 用例而设计的新网络。该网络的交易数据存储在链下,由数据委员会管 DAC 管理。

  3. Arbitrum Orbit 是用来构建 Layer 3 网络的开源工具包,支持开发者部署和创建自己的链。开发者可以基于 Orbit 工具包搭建自己的 Rollup 和 AnyTrust 链(Layer 3),选择由 Arbitrum One 或 Arbitrum Nova 其中一条链作为结算层,来实现扩展。

Optimism 2021年8月上线主网,目前拥有 Layer2 第二大 TVL,上仅次于 Arbitrum。

Optimism 实现了 EVM 等效性,以太坊上的 Solidity 智能合约可以在 Optimism 的 Layer2 上运行,且不需要构建额外的功能,开发者可以无缝转接到 Optimism 上开发应用。

OP Stack 是 Optimism 推出的开源模块化工具包,涵盖数据可用性层、执行层、结算层、治理层等。开发者可以根据自己的需求场景利用 OP Stack 工具包组装一个定制的 Layer2 网络。正因如此,OP Stack 为 Optimism 引入了超级链的概念,超级链是指构建在 OP Stack 上的一组 Layer2 区块链(也称 OP 链)统称。目前,基于 OP Stack 构建的 Layer 网络已有数十条,包含 Base,opBNB,Magi,Worldcoin 等重量级项目。

ZK Rollups

ZK Rollups 则使用零知识证明技术来确保链外处理的交易是有效且正确的,提供更高的安全性和效率。Rollup 的 Layer2 平台在状态变更后,要为状态变更的正确性提供一份零知识证明,并随着状态变更一同提交到主链上。主链上的合约会对该证明进行验证以确定状态更新的正确性。相比于 Optimistic Rollup 方案,ZK Rollup 不需要设置漫长的挑战期来最终确定 Layer2 交易,同时也不需要依赖错误的状态更新会在挑战期内被发现的假设。

代表方案是 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 区块内,并在链下为该区块生成一个有效性证明,Layer1 上的智能合约只需验证该证明即可直接应用新的状态,可以实现更低的 Gas 和更高的链上安全性。

短期内,Optimistic Rollups 很可能在通用的 EVM 计算中胜出,而 ZK Rollups 则可能在简单的支付、交易和其他特定应用场景中胜出,主要原因还是 Zk Rollups 虽然比 Optimistic Rollups 更快、更高效,但并没有为现有的智能合约提供一个简单的方式来迁移到 Layer2。

但得益于近年来区块链、隐私计算等新兴技术应用的发展,零知识证明技术成为了构建信任的重要技术,从中长期来看,随着 ZK-SNARK 技术的改进,ZK Rollups 将在所有场景中胜出,成为以太坊扩容方案的最终答案。