注:原文来自Delphi Digital,作者是Can Gurel。

报告要点:

单片链受限于单个节点可处理的内容,而模块化生态则越过了这一限制,提供了一种更可持续的扩容形式;

模块化背后的一个关键动机是有效的资源定价。模块化链可通过将应用程序分成不同的资源池(即费用市场)来提供更可预测的费用;

然而,模块化引入了一种新的称为数据可用性(DA)的问题,我们可以通过多种方式解决该问题。例如,Rollup可以批量处理链下数据,并将其提交到链上,通过在链上提供“数据可用”,它们克服了这个问题,并继承了基础层的底层安全性,建立了去信任的L1<>L2通信;

最新形式的模块化链,称为专用数据可用性(DA)层,其旨在用作Rollup的共享安全层。鉴于DA链具有可扩展性优势,其有可能成为区块链扩容的终局,而Celestia 是这方面的先驱项目。

ZK-Rollups可提供比Optimistic Rollups 更多的可扩展性,我们已经在实践中观察到了。例如,dYdX的吞吐量大约是Optimism 的 10 倍,同时消耗的L1空间仅仅是后者的1/5。

链上活动正在以极快的速度在发展,而随之而来的是用户对区块空间的需求。

从本质上讲,这是一场可扩展性战争,这涉及到了平行链、侧链、跨链桥、zone、分片、rollup、数据可用性(DA)等技术术语。在这篇文章中,我们尝试消除这种噪音,并详细阐述这场可扩展性战争。所以,在你系好安全带之前,请先喝杯咖啡或茶,因为这将是一段漫长的旅程。

寻求可扩展性

自从 Vitalik提出著名的可扩展性三难困境以来,加密社区便一直存在着一种误解,即认为三难困境是一成不变的,一切都必须权衡取舍。虽然这在大多数情况下是正确的,但我们时不时会看到三难困境的界限被拉升了(要么是通过真正的创新,要么通过引入额外但合理的信任假设)。

当我们浏览不同的设计时,我们会重点介绍其中的一些示例。但在我们开始之前,定义可扩展性的含义是很重要的。简而言之,可扩展性是在不增加验证成本的情况下处理更多交易的能力。考虑到这一点,让我们来看看当前各大区块链的tps数据。在这篇文章中,我们将解释实现这些不同吞吐量水平的设计属性。重要的是,下面显示的数字并不是它们能够达到的最高水平,而是这些协议历史使用情况的实际值。

单片链 VS 模块化链

单片区块链

首先,让我们来看单片链,在这个阵营中,Polygon PoS和BSC并不符合我们的可扩展性定义,因为它们只是通过更大的区块来增加吞吐量(众所周知,这种权衡会增加节点的资源需求,并牺牲去中心化以提高性能)。虽然这种权衡有其市场契合度,但它们并不是长期解决方案,因此并没有那么引入注目。而Polygon 认识到了这一点,并正在转向以rollup为中心的更可持续的解决方案。

另一方面,Solana 是对完全可组合的单片区块链边界的一次认真尝试,Solana 的秘密武器被称为历史证明 (PoH)账本,PoH 的想法是创建一个全局时间概念(一个全局时钟),所有交易,包括共识投票,都带有发行人附加的可靠时间戳。这些时间戳允许节点在不等待每个区块上彼此同步的情况下取得进展。Solana 通过优化其执行环境来并行处理tx,而不是像EVM 那样一次处理一笔tx,从而实现更好的扩容。

尽管 Solana 实现了吞吐量增益,但在很大程度上,它仍然归功于更密集的硬件和网络带宽使用。虽然这降低了用户的费用,但它将节点操作限制在有限的数据中心。这与以太坊形成了对比,以太坊虽然由于高昂的费用而无法为许多人所使用,但最终由其活动用户管理,这些用户可以在家中运行节点。

单片区块链如何会失败?

单片区块链的可扩展性,最终会受到单个强大节点可处理能力的限制。不管人们对去中心化的主观看法如何,在将治理权限制在相对较少的行动者手中之前,只能大力推动这种容量。相比之下,模块化链在不同节点之间拆分总工作量,因此可产生比任何单个节点可以处理的总吞吐量更多的吞吐量。

至关重要的是,去中心化只是模块化图片的二分之一。与去中心化一样重要的是模块化背后的另一个动机,即有效的资源定价(即费用)。在单片链中,所有tx都争夺相同的区块空间并消耗相同的资源。因此,在区块链拥堵的情况下,市场对单个应用的超额需求会对链上的所有应用产生不利影响,因为每个人的费用都在上涨。自从 CryptoKitties 在 2017 年造成以太坊网络拥堵之后,这个问题一直就存在着。重要的是,额外的吞吐量从来没有真正解决过问题,而是推迟了它。互联网的历史告诉了我们,每增加一次容量都会为新的、不可行的应用腾出空间,而这些应用往往会迅速消耗刚刚增加的额外容量。

最后,单片链根本无法针对具有不同优先级的、截然不同的应用进行自我优化。以 Solana 为例,Kin 和 Serum DEX 就是一个例子。Solana 的低延迟适用于像 Serum DEX 这样的应用,然而,维持这样的延迟也需要限制状态增长,这是通过为每个账户收取状态租金来强制执行的。反过来,这对像 Kin 这样的账户密集型应用会产生不利影响,这些应用程序由于高昂的费用而无法向大众提供 Solana 的吞吐量。

展望未来,期望单一资源池能够可靠地支持各种crypto应用(从Metaverse、游戏到DeFi和支付)是天真的。虽然增加完全可组合链的吞吐能力很有用,但我们需要更广泛的设计空间和更好的资源定价以供主流采用。这就是模块化方法发挥作用的地方。

区块链的演进

在扩容的神圣使命中,我们见证了从“可组合性”到“模块化”的趋势转变。首先,我们要定义这些术语:可组合性是指应用程序以最小化摩擦的方式相互无缝交互的能力,而模块化是将系统分解为多个单独部件(模块)的工具,这些部件(模块)可以随意剥离和重新组装。

以太坊Rollup、ETH 2.0分片、Cosmos Zone、波卡平行链、雪崩Subnet、Near的Chunk以及Algorand的副链都可以被视为模块。每个模块在各自的生态系统中处理总工作负载的一个子集,同时保持跨通信的能力。当我们深入研究这些生态系统时,我们会注意到,模块化设计因其跨模块实现安全性的方式而大不相同。

Avalanche(雪崩)、Cosmos和Algorand等多链hub最适合独立安全模块,而以太坊、波卡(Polkadot)、Near和Celestia(一种相对较新的L1设计)则设想了最终共享或继承彼此安全性的模块。

多链/多网络Hub

最简单的模块化设计称为互操作性Hub,这是指通过标准协议相互通信的多条链/网络。Hub提供了更广阔的设计空间,因此它们可以在许多不同层面定制特定于应用的区块链,这包括虚拟机(VM)、节点需求、费用模型以及治理。应用链的灵活性是通用链上的智能合约无法比拟的,让我们简要回顾一些例子:

Terra 为价值超过80亿美元的去中心化稳定币提供了支持,它有一个特殊的费用和通胀模型,Terra针对其稳定币的采用和稳定性进行了优化。

目前IBC处理量最大的跨链DEX Osmosis,其对tx进行了加密,直到它们最终确定以防止front-running抢先交易。

Algorand 和 Avalanche 旨在在自定义网络上托管企业用例。从政府机构运营的CBDC到由游戏公司委员会运营的游戏网络,这些都是可行的。重要的是,这种网络的吞吐量可通过更强大的机器来提高,而不会影响其他网络/链的去中心化水平。

Hub还提供了可扩展性优势,因为它们可以更有效地使用资源。以雪崩Avalanche为例,C-Chain 用于兼容 EVM 的智能合约,而X-Chain 用于 P2P 支付。因为支付通常可以相互独立(Bob 支付 Charlie 不依赖于 Alice 支付 Dana),X-Chain 可以并发处理某些tx。通过核心实用程序分离VM,雪崩Avalanche可以处理更多的tx。

这些生态系统还可以通过根本性创新进行垂直扩展。Avalanche 和 Algorand 在这里尤其突出,因为它们通过减少共识的通信开销实现了更好的扩容,Avalanche 通过“二次抽样投票”过程来实现这一点,而Algorand 使用廉价的 VRF 节点来随机选择一个唯一的委员会来就每个区块达成共识。

以上,我们列出了hub方式的优势。然而,这种方法也遇到了一些关键的限制。而最明显的限制,就是区块链需要引导自己的安全性,因为它们无法共享或继承彼此的安全性。众所周知,任何安全的跨链通信都需要受信任的第三方或同步假设。在hub方式的情况下,受信任的第三方成为交易对手链的主要验证者。

例如,通过 IBC 从一条链连接到另一条链的代币,总是可以被恶意的大多数源链验证者赎回(窃取)。在今天只有少数链共存的情况下,这种多数信任假设可能会很好地工作,然而,在可能存在链/网络长尾的未来,期望这些链/网络信任彼此的验证者以进行通信或共享流动性,远非是理想的。这将我们带到提供跨链通信的rollup和分片,并提供超越多数信任假设的更强保证。

数据可用性(DA)

经过多年的研究,人们普遍认为所有安全共享工作都归结为一个非常微妙的问题,称为数据可用性(DA),要理解其中的原因,我们需要快速了解一下节点在典型区块链中的运行方式。

在典型的区块链(以太坊)中,全节点下载并验证所有的tx,而轻节点只检查区块头(多数验证者提交的区块摘要)。因此,虽然全节点可以独立检测和拒绝无效交易(例如无限印代币),但轻节点将大多数人提交的任何内容视为有效tx。

为了改进这一点,理想情况下,任何单个全节点都可以通过发布小的证明来保护所有轻节点。在这样的设计下,轻节点可以像全节点一样以类似的安全保证运行,而无需花费尽可能多的资源。但是,这引入了一个称为数据可用性(DA)的新问题。

如果恶意验证者发布了一个区块header,但扣留了区块中的部分或全部交易,则全节点将无法判断该区块是否有效,因为丢失的交易可能无效或导致双花。如果没有这些知识,全节点就无法生成无效欺诈证明来保护轻节点。总之,首先要使保护机制发挥作用,轻节点必须确保验证者已提供所有交易的完整列表。

DA 问题是模块化设计中不可或缺的一部分,在涉及跨链通信时,它将超越多数信任假设。在L2中,rollup之所以特别,是因为它们不想回避这个问题。

Rollup

在rollup的环境中,我们可以将主链(以太坊)视为rollup (Arbitrum)的轻节点,Rollup在L1上发布其所有的交易数据,以便任何愿意将资源放在一起的 L1 节点都可以执行它们,并从头开始构建rollup 状态。有了完整的状态,任何人都可以将 rollup转换为新状态,并通过发布有效性或欺诈证明来证明转换的有效性。在主链上拥有可用数据,允许 rollup在可忽略的单一诚实节点假设下运行,而不是在诚实多数的情况下进行。

考虑以下内容以了解rollup如何通过此设计实现更好的可扩展性:

由于具有当前 rollup 状态的任何单个节点,都可以保护没有该状态的所有其他节点,因此rollup 节点的中心化风险较小,因此可以合理地使rollup区块更大。

即使所有 L1 节点都下载与其交易相关的rollup数据,但只有一小部分节点执行这些tx并构建rollup状态,从而减少了整体的资源消耗。

rollup数据在发布到 L1 之前,使用了巧妙的技术进行了压缩。

与应用链类似,rollup可以针对特定用例定制他们的 VM,这意味着更有效地使用资源。

截至目前,我们都知道有两大类的rollup:Optimistic rollup和ZK-rollup,从可扩展性的角度来看,ZK-rollup 比 Optimistic rollup 更有优势,因为它们以更有效的方式压缩数据,从而在某些用例中实现了更低的 L1 占用空间。这种细微差别已经在实践中可以观察到了。Optimism 将数据发布到 L1 以反映每笔tx,而 dYdX 将数据发布以反映每个账户余额。因此,dYdX 的 L1 占用空间是 Optimism 的 1/5,并且估计处理的吞吐量大约是 10 倍的差距。这种优势自然会转化成ZK-rollup二层网络拥有较低的费用。

与 Optimistic rollup 上的欺诈证明不同,来自 ZK-rollup 的有效性证明还支持一种新的可扩展性解决方案,称为 volition。尽管volition的全部影响还有待观察,但它们似乎非常有希望,因为它让用户可以自由决定是在链上还是在链下发布数据。这允许用户根据其交易的类型决定它们的安全级别。zkSync 和 Starkware 都将在接下来的几周/几个月内推出 volition方案。

尽管rollup应用了巧妙的技术来压缩数据,所有数据仍必须发布到所有 L1 节点。因此,rollup只能提供线性扩展性收益,并且在降低费用方面会受到限制,它们还会受到以太坊gas价格波动的高度影响。为了可持续扩展,以太坊需要扩展其数据容量,这解释了以太坊分片的必要性。

分片和数据可用性(DA)证明

分片进一步放宽了所有主链节点下载所有数据的要求,而是利用一种称为 DA 证明的新原语来实现更高的可扩展性。使用 DA 证明,每个节点只需下载一小部分分片链数据,知道其中的一小部分就可以共同重建所有分片链区块。这实现了跨分片的共享安全性,因为它确保任何单个分片链节点都可以提出争议,由所有节点按需解决。Polkadot 和 Near 已经在他们的分片设计中实现了 DA 证明,这也将被 ETH 2.0 所采用。

在这一点上,值得一提的是,ETH 2.0 的分片路线图与其他路线图有什么不同。尽管以太坊的最初路线图是像 Polkadot一样,但它最近似乎转向了仅分片数据。换句话说,以太坊上的分片将作为rollup的DA 层。这意味着以太坊将像今天一样继续保持单一状态。相比之下,Polkadot 在每个分片具有不同状态的基础层上执行所有执行。

将分片作为纯数据层的一个主要优点是,rollup可以灵活地将数据转储到多个分片上,同时保持完全可组合。因此,rollup的吞吐量和费用不受单个分片的数据容量的限制。有了 64 个分片,rollup的最大总吞吐量预计将从 5K TPS 增加到 10万 TPS。相比之下,无论波卡整体产生多少吞吐量,费用都会受到单个平行链的有限吞吐量(1000-1500 TPS)的约束。

专用的DA 层

专用的DA层是模块化区块链设计的最新形式。它们使用了ETH 2.0 DA 层的基本思想,但将其引导到不同的方向。这方面的开创性项目是 Celestia,但诸如 Polygon Avail 等较新的解决方案,也在朝着这个方向发展。

与ETH 2.0 的 DA 分片类似,Celestia 充当了基础层,其他链(rollup)可以插入以继承安全性。Celestia 的解决方案在两个基本方面与以太坊不同:

它不会在基础层执行任何有意义的状态执行(而 ETH 2.0 会)。这使rollup免于高度不可靠的基础层费用,在有状态的环境中,这些费用可能会因为代币销售、NFT 空投或高收益农耕机会的出现而飙升。Rollup消耗相同的资源(即基础层中的字节)以用于安全性,并且仅用于安全性。这种效率允许rollup费用主要与该特定rollup而不是基础层的使用相关联。

由于DA 证明,Celestia 可以在不分片的情况下增加其 DA 吞吐量。DA 证明的一个关键特性是,随着更多节点参与采样,就可以存储更多数据。在 Celestia 的例子中,这意味着随着更多的轻节点参与DA 采样(没有中心化),区块可以变得更大(更高的吞吐量)。

与所有设计一样,专用的DA 层也有一些缺点。一个直接的缺点是缺少默认的结算层。因此,为了彼此共享资产,rollup必须实施方法来解释彼此的欺诈证明。

总结

我们评估了不同的区块链设计,包括单片链、多链hub、rollup、分片链以及专用的DA层。鉴于多链hub相对简单的基础设施、更广泛的设计空间以及横向扩展的能力,我们认为多链hub最适合解决区块链行业的紧迫需求。而从长远来看,考虑到资源效率和独特的可扩展性,专用的DA层很可能会成为扩容的终局。