Jump Crypto:详解各类区块链扩容解决方案

作者:Rahul Maganti,Jump Crypto合伙人

原标题:《A Framework for Analyzing L1s

编译:胡韬,链捕手

介绍

在上一篇文章中,我们建立了一个分析 L1 的框架,特别是考虑到最近已经建立了无数的新链。我们还简要指出,许多这些新颖的 L1 背后的动机主要集中在寻找区块链可扩展性的解决方案。让我们仔细看看其中的一些解决方案。在这篇文章中,我们的目标是:

  • 提供各种第 1 层和第 2 层扩展解决方案的概述。
  • 沿着一些核心维度分析和比较这些不同的解决方案。
  • 给出我们对哪些扩展架构最有前途的看法。

可扩展性三难困境

在2017 年初的一篇博客文章中,Vitalik Buterin 提出了可扩展性三难困境,指的是定义区块链系统可行性的三个主要属性:(1)去中心化;(2) 安全;(3) 可扩展性。‌‌

在这三个方面,我们认为在不过度损害其他两个支柱的情况下,可扩展性仍然是最难解决的问题。安全性和去中心化对于这些系统的性能仍然至关重要,但正如我们稍后将看到的,解决扩展分布式系统的挑战也为去中心化和安全性提供了关键突破,这是出于非常根本的原因。因此,我们强调有效扩展区块链的能力将是更普遍地决定加密行业未来成功的关键因素。

从广义上讲,扩容有两种主要类别:第 1 层和第 2 层。两者对于增加区块链的吞吐量都是相关的和关键的,但侧重于 Web3 堆栈的不同方面甚至层。在过去的几年里,扩容无疑得到了很多关注,并且经常被吹捧为大规模采用区块链技术的关键途径,尤其是在零售用途不断攀升和交易量增加的情况下。

第 1 层 (L1s)

第 1 层很少有主要的扩展架构脱颖而出:

  • 状态分片
  • 并行执行
  • 共识模型的改进
  • 有效性证明

状态分片

分片有很多种,但核心原则始终保持不变:

  • 分片分配验证和计算的成本,因此每个节点都不需要验证每笔交易。
  • 分片中的节点,就像在更大的链中一样,必须:(1)中继交易;(2) 验证交易;(3) 存储分片的状态。
  • 分片链应通过以下方式保留非分片链的安全原语:(1)有效的共识机制;(2) 安全证明或签名聚合。 

分片允许将一条链拆分为K个不同的独立子网或分片。如果网络中总共有N个节点,则有N/K个节点操作K个子网中的每一个子网。当给定分片(比如K_1)中的一组节点验证一个区块时,它会给出一个证明或一组签名,声称该子网是有效的。然后所有其他节点,S-{K_1}需要做的就是验证签名或证明。(验证的时间通常比重新运行计算本身要短得多)。

要理解分片的扩展优势,关键是要理解这种体系结构在增加链的总计算能力方面提供的价值。现在,假设一个节点的平均容量为C:O(C)。假设链需要处理B块。非分片链的计算能力是微不足道的O(C);然而,由于分片链可以并行处理块,因此分片链的容量为:O(CB)。一般来说,运行时节省的成本是倍增的!这里可以找到Vitalik更深入的技术解释。切分是以太坊2.0和近几年发展路线图中最显著的基础组件。

并行执行

分片和并行执行在许多方面是相似的。虽然分片尝试在不同子链上并行验证区块,但并行执行侧重于将处理各个节点交易的工作分开。这种架构的效果是,节点现在可以并行处理数千个合约!

我们不会详细介绍其工作原理,但这里有一篇很棒的文章,更深入地介绍了 Solana 中并行执行如何通过Sealevel工作。

共识模型

共识是第 1 层区块链协议的核心——对于要在链上最终确定的交易/数据,网络中的参与者需要一种就链状态相互达成一致的方式。  因此,随着新交易的添加和链的进展,共识是确保共享状态一致性的一种手段。然而,不同的共识机制也可能导致我们衡量区块链性能的关键指标出现根本差异:安全性、容错性、去中心化、可扩展性等等。然而,单独的共识模型并不能决定区块链系统的性能。不同的共识模型适用于不同的扩展机制,最终可以确定特定网络的功效。

第 2 层 (L2s)

从根本上说,第 2 层扩展基于第 1 层上的资源(无论是计算资源还是其他资源)变得异常昂贵的前提。为了降低用户、服务和其他社区参与者的成本,应将繁重的计算负载移至链外(第 2 层),同时仍试图保留第 1 层上的加密和博弈论原语提供的底层安全保证(公私密钥对、椭圆曲线、共识模型等...)

这方面的早期尝试主要涉及在链下两方之间建立“可信通道”,然后在第 1 层完成状态更新。状态通道通过“将区块链状态的某些部分锁定到由一组定义的参与者控制的多重签名合约中”来做到这一点。Plasma 链由 Vitalik 首先在本文中提出:允许创建无限数量的侧链,然后使用欺诈证明(PoW、PoS)来完成第 1 层上的交易。

Rollup(它们有什么好处)

Rollup也是一种将计算移至链下(第 2 层),同时仍记录消息或交易在链上(第 1 层)的方式。原本会在第 1 层记录、挖掘和验证的交易在第 2 层记录、汇总和验证,然后发布到原始第 1 层。该模型实现了两个目标:(1)释放基础层的计算资源;(2) 仍然保留第 1 层的底层密码学安全保证。

  • 交易被“汇总”,然后传递给由 Sequencer 排序的的收集箱合约交易
  • 存储在 L2 上的合约执行链外合约调用
  • 然后,合约将新状态的 Merkle 根作为 calldata 发回 L1 链

Optimistic Rollup

验证者将在先验假设它们有效的情况下将交易发布到链上。如果他们这样选择,其他验证者可以质疑交易,但肯定不是必须的。(把它想象成一个无辜的直到被证明有罪的模型)。然而,一旦发起挑战,两方(比如 Alice 和 Bob)就被迫参与争议解决协议。

在高层次上,争议解决算法的工作原理如下:

  1. Alice 声称她的断言是正确的。Bob 不同意。
  2. 然后 Alice 将断言分成相等的部分(为简单起见,假设这是一个二等分)
  3. 然后 Bob 必须选择他认为断言的哪一部分(比如前半部分)是错误的
  4. 递归运行步骤 1 - 3。
  5. Alice 和 Bob 玩这个游戏,直到子断言的大小只是一个指令。现在,协议只需执行此指令。如果 Alice 是正确的,那么 Bob 就会失去他的股份,反之亦然。

可以在此处找到对 Arbitrum 争议解决协议的更深入解释。

在 Optimistic 的情况下,成本很小/恒定O(1)。在有争议的情况下,该算法在O(logn)中运行,其中n是原始断言的大小。

这种 Optimistic 验证和争议解决架构的一个关键结果是,Optimistic Rollup 有一个诚实方保证,这意味着要使链安全,协议只需要一个诚实方来发现和报告欺诈行为。

Zero-Knowledge Rollups

在当今的许多区块链系统和第 1 层中,共识是通过有效地“重新运行”交易计算来验证链的状态更新来实现的。换句话说,要在网络上完成交易,网络中的节点需要执行相同的计算。这似乎是一种验证链条历史的幼稚方法 — 确实如此!那么问题就变成了,有没有一种方法可以确保我们可以快速验证交易的正确性,而不必在大量节点上复制计算。(对于那些有一定复杂性理论背景的人来说,这个想法是 P vs. NP 的核心)嗯,是的!这就是 ZK rollups 派上用场的地方——实际上,它们确保验证的成本大大低于执行计算的成本。

现在,让我们深入了解 ZK-Rollups 如何在保持高度安全性的同时实现这一目标。在高级 ZK-rollup 协议中包含以下组件:

  • ZK 验证者 - 验证链上的证明。
  • ZK Prover - 从应用程序或服务中获取数据并输出证明。
  • 链上合约 - 跟踪链上数据并验证系统状态。

已经出现了大量的零知识证明系统,尤其是在去年。有两种主要的证据类别:(1)SNARK;(2) STARK,尽管他们之间的界限每天都变得越来越模糊。

我们不会讨论 ZK 证明系统现在如何工作的技术细节,但这里有一个很好的图表,它说明了我们如何从智能合约获得类似于可以有效验证的证明的东西。

Rollup比较的关键维度

速度

正如我们之前提到的,扩展的目标是提供一种方法来提高网络处理交易的速度,同时降低计算成本。因为 Optimistic Rollups 没有为每笔交易生成证明(在诚实的情况下没有额外的成本),它们通常比 ZK Rollups 快得多。

隐私

ZK 证明本质上是保护隐私的,因为它们不需要访问计算的基础参数来验证它。想想下面这个具体的例子:假设我想向你证明我知道锁和盒子的组合。一种天真的方法是与你分享组合并要求您尝试打开盒子。如果盒子打开,那么很明显我知道这个组合。但是假设我必须证明我知道这个组合而不透露任何关于组合的信息。让我们设计一个简单的 ZK-proof 协议来演示它是如何工作的:

  • 我请你在一张纸上写下一句话
  • 我把盒子递给你,让你从盒子上的一个小缝里撕开那张纸
  • 我背对着你,把组合打进盒子里
  • 我打开纸条,把纸条还给你。
  • 你确认纸条是你的!

就是这样!一个简单的零知识证明。一旦你确认该纸币实际上与你放入盒子中的纸币相同,我已向你证明我能够打开盒子,因此先验地知道盒子的组合。

通过这种方式,零知识证明特别擅长允许一方向对方证明声明的真实性,而无需透露对方不会拥有的任何信息。

以太坊EVM 兼容性

以太坊虚拟机 (EVM) 定义了一组指令或操作码,用于实现基本的计算机和特定于区块链的操作。以太坊上的智能合约编译成这个字节码。然后字节码作为 EVM 操作码执行。EVM 兼容性意味着你正在运行的虚拟机指令集和 EVM 指令集之间存在 1:1 映射。

当今市场上最大的第 2 层解决方案是建立在以太坊之上的。当以太坊原生项目想要迁移到第 2 层时,EVM 兼容性提供了一种无缝的、最少代码的扩展路径。项目只需要在 L2 上重新部署他们的合约并从 L1 桥接他们的代币。

最大的 Optimistic Rollups 项目 Arbitrum 和 Optimism/Boba 都与 EVM 兼容。zkSync 是为数不多的考虑到 EVM 兼容性而构建的 ZKRollup 之一,但仍然缺乏对一些 EVM 操作码的支持,包括ADDMOD、SMOD、MULMOD、EXP 与 CREATE2。虽然无法提供支持CREATE2确实会给与合约的反事实交互、限制升级性和用户入门带来问题,但我们认为对这些操作码的支持将很快实现,从长远来看不会成为使用ZK rollup的重大障碍。

桥接

因为 L2 是独立的链,它们不会自动继承原生 L1 代币。以太坊上的原生 L1 代币必须桥接到相应的 L2 才能与部署在那里的 dApp 和服务进行交互。无缝连接代币的能力仍然是一个关键挑战,不同的项目探索各种架构。通常,一旦用户调用depositL1,就需要在 L2 端铸造一个等价的代币。为这个过程设计一个高度通用的架构可能特别困难,因为有广泛的代币和代币标准驱动协议。

最终性

最终性是指确认链上交易有效性的能力。在第 1 层,当用户提交交易时,它几乎是瞬间完成的。(尽管节点处理来自 mempool 的交易需要时间)。在第 2 层上,情况不一定如此。提交到运行 Optimistic Rollups 协议的第 2 层链的状态更新将首先假定更新是有效的。但是,如果提交此更新的验证者是恶意的,则需要有足够的时间让诚实的一方来质疑该声明。通常,此挑战期设置为约 7 天。平均而言,想要从 L2 提取资金的用户可能需要等待大约 2 周!

另一方面,ZK Rollups 不需要这么大的挑战期,因为每个状态更新都使用证明系统进行验证。因此,ZK Rollups 协议上的交易与底层第一层上的交易一样是最终的。毫不奇怪,ZK Rollups 提供的即时确定性已成为争夺 L2 扩展优势的关键优势。

一些人认为,虽然 Optimistic Rollups 不一定能保证 L1 的快速最终性,但快速提款通过让用户在挑战期结束之前获得资金,提供了一种清晰、易于使用的解决方法。虽然这确实为用户提供了一种访问其流动性的方法,但这种方法存在几个问题:

  • 用于维护 L2 到 L1 提款的流动性池的额外开销。
  • 快速提款不是通用的——仅支持代币提款。不能支持任意 L2 到 L1 调用。
  • 在挑战期结束之前,流动性提供者无法保证交易的有效性。
  • 流动性提供者必须:(1)信任他们提供流动性的人,限制去中心化的好处;(2) 构建自己的欺诈/有效性证明,有效地违背了利用 L2 链中内置的欺诈证明/共识协议的目的。

测序(Sequencing)

排序器与任何其他完整节点一样,但可以任意控制收件箱队列中的排序交易。如果没有这种排序,网络中的其他节点/参与者无法确定特定批次交易的结果。从这个意义上说,这为用户在执行交易时提供了一定程度的确定性。

反对为此目的使用定序器(Sequencers)的主要论点是,它们会造成故障的中心点——如果定序器出现故障,则可用性可能会受到影响。等一下……这是什么意思?这不是破坏去中心化的愿景吗?嗯……有点。排序器通常由开发 L2 的项目运行,通常被视为半信任实体,通常为项目利益相关者采取行动。对于一想到这一点就咬紧牙关的去中心化强硬派,你可能会因为知道这里和这里正在对去中心化公平排序进行大量工作/研究而感到安慰。

最近大型 L2 生态系统(包括 Arbitrum / Optimism)上的测序仪中断,继续证明了对容错、去中心化测序的需求。

资本效率

Optimistic Rollups 与 ZK Rollups 之间比较的另一个关键点是它们的资本效率。如前所述,Optimistic L2 依赖欺诈证明来保护链,而 ZK Rollups 则利用有效性证明。

欺诈证明提供的安全性基于一个简单的博弈论原则:攻击者试图分叉链的成本应该超过他们能够从网络中提取的价值。在 Optimistic Rollups 的情况下,验证者将一定数量的代币(例如 ETH)押在他们认为随着链进展而有效的 Rollup 区块上。恶意行为者(那些被发现有罪并由诚实节点报告的行为者)将被罚款。

因此,资本效率和安全性之间存在根本性的权衡。提高资本效率可能需要缩短延迟/质询期,同时增加欺诈性断言未被网络中其他验证者检测或质询的可能性。

移动延迟期相当于沿着资本效率与延迟期曲线移动。然而,随着延迟期的变化,用户需要考虑其对安全性和最终性之间权衡的影响——否则他们会对这些变化无动于衷。

目前 Arbitrum 和 Optimism 等项目的 7 个延迟期是由社区考虑到这些方面决定的。这是Offchain Labs 的 Ed Felten 对他们如何确定延迟期的最佳长度的深入解释。

通过构造(依赖于密码学假设而不是博弈论假设),有效性证明不易受到相同的资本效率/安全性权衡的影响。

以太坊特定应用链/扩展

当我们谈论多链未来时,我们到底指的是什么?是否会有大量具有不同架构的高性能第 1 层、更多的第 2 层扩展解决方案,或者只有少数具有针对自定义用例的定制优化的第 3 层链?

我们的信念是,对基于区块链的服务的需求将从根本上由用户对特定类型应用程序的需求驱动,无论是 NFT 铸造还是用于借贷、质押等的 DeFi 协议……从长远来看与任何技术一样,我们希望用户希望从底层原语(在这种情况下,为结算、可扩展性和安全性提供核心基础设施的 L1 和 L2)中抽象出来。

以太坊特定于应用程序的链提供了一种通过利用狭窄优化来部署高性能服务的机制。因此,我们预计这些类型的链将成为旨在推动大规模采用的 Web3 基础设施的关键组成部分。

这些链的出现主要有两种方式:

  • 具有自己的原语的独立生态系统专注于非常特定的应用程序。
  • 在现有 L1 和 L2 链之上构建的附加层,但经过微调以优化特定用例的性能。

在中短期内,这些独立的链可能会出现显着增长,但我们认为这是它们短期新颖性的功能,而不是可持续兴趣和使用的信号。即使是现在,像Celo这样更成熟的特定于应用程序的链似乎也相对稀少。虽然这些独立的特定于应用程序的链生态系统为特定用例提供了卓越的性能,但它们通常缺乏使其他通用生态系统如此强大的特性:

  • 灵活性和易用性
  • 高度可组合性
  • 流动性聚合和对本地资产的访问

下一代扩展基础设施必须在这两种方法之间取得平衡。

分形扩容方法

分形扩容方法与这种区块链扩容的“分层模型”高度相关。它提供了一种独特的方式来将原本孤立的、不同的应用程序特定链生态系统与更广泛的社区统一起来,这样做有助于保持可组合性,实现对通用逻辑的访问,并从底层 L1 和 L2 获得安全保证。

它是如何工作的?

  • 交易根据它们打算服务的场景在本地事例之间拆分。
  • 利用底层 L1/L2 层的安全性、扩展性和隐私属性,同时针对独特的定制需求进行优化
  • 利用基于证明证明和递归证明的新型架构(用于存储和计算)
  • 任何消息都附有证明该消息和导致该消息的历史有效的想法

结束的想法

区块链扩展在过去几年中变得更加突出,这是有充分理由的——在像以太坊这样的高度去中心化的链上进行验证的计算成本已经变得不可行。随着区块链的普及,链上交易的计算复杂度也在快速增长,进一步增加了保护链的成本。对现有第 1 层和动态分片等架构的优化可能非常有价值,但需求的急剧增长需要采用更细致的方法来开发安全、可扩展和可持续的去中心化系统。

我们相信这种基于构建针对特定行为优化的链层的方法,包括针对特定应用程序的通用计算和支持隐私的逻辑。因此,我们将 Rollup 和其他第 2 层技术视为通过启用链下计算/存储和快速验证来扩展吞吐量的核心。

如有任何问题、意见或想法,请联系@Rahul Maganti!

如有疑问联系邮箱:微信:ETH_88889
*本文转载自网络转载,版权归原作者所有。本站只是转载分享,不代表赞同其中观点。请自行判断风险,本文不构成投资建议。*