拆分与重构:模块化架构下的区块链新生态
1 背景
区块链可扩展性问题一直是业界难以逾越的一道鸿沟,众多项目努力创新却始终无法突破“不可能三角”的桎梏。随着去中心化应用生态的蓬勃兴起,对区块空间的需求激增,原有架构难以负荷,吞吐量瓶颈日益显现。如果可扩展性问题无解,那么应用层的繁荣也将无以为继。
“模块化区块链 (Modular Blockchain) ”范式正是在此背景下提出的。模块化概念起源于两篇文章。第一篇是由 Mustafa Albasan 和 Vitalik Buterin 在 2018 年共同撰写的,题为《欺诈与数据可用性证明》。这篇文章阐述了如何在保持安全性和去中心化的前提下解决区块链的可扩展性问题。具体方法是让轻节点接收并验证来自全节点的欺诈证明,同时设计数据可用性证明系统,以减小链上容量与安全性之间的取舍。随后在 2019 年,Mustafa Albasan 撰写了关于 Lazy Ledger 的白皮书,详细介绍了一种旨在解决可扩展性问题的创新架构。在此架构中,区块链仅用于对交易数据进行排序和确保其可用性,而不负责执行和验证交易。后续 Rollup 的出现使这一概念更加明晰。
归根到底,模块化区块链的核心思想非常简单:依照功能层级将 Layer 1 区块链的核心组件解耦,划分为相互独立的功能模块,由此即可对不同模块进行针对性的修改和扩展,从而实现更具可扩展性、可组合性的去中心化系统。
本文将从传统区块链架构和实现方式所面临的问题出发,详细介绍模块化范式的概念、关键技术原理以及生态发展情况。
1.1 区块链分层结构
区块链本质上是一个由交易驱动、状态不断更新的分布式状态机,每个状态转换由一个区块表示,所有节点通过特定共识机制达成一致并共同维护该状态机。
区块链系统的运行过程中涉及了状态转换的计算、交易数据的存储、共识达成等环节,由此也可将区块链划分为四个基本层级:
- 执行层 (Execution) :负责从当前状态出发,执行交易的计算逻辑,根据交易输入和执行规则,计算出新的状态转换。
- 结算层 (Settlement) :负责 Rollup 的证明验证和争议仲裁,为其提供最终性保障。结算层是模块化架构中的可选部分,单体链架构中不存在这一层。
- 共识层 (Consensus) :负责确认状态转换的有效性,确保所有分布式节点达成共识,对状态机状态保持一致视图。可以为结算层和数据可用性层提供安全性保障
- 数据可用性层 (Data Availability) :负责发布和存储验证状态转换所需的交易数据,保障其可及性和可用性,确保交易可被验证和审计。
单体链架构和模块化架构的核心区别就在于:单体区块链在一条链上同时执行上述四层的功能,而模块化区块链则尝试将不同的功能分配到多个不同的链上完成。
一般而言,常见的 Layer 1 公链都可被视为单体区块链,其优点是可以从钱包、应用、中间件到基础设施,全方位独立地建立完整的生态系统,各方之间维持紧密的关系。但是随着生态发展壮大,单体链通常会面临交易阻塞、交易成本上升、网络参与门槛过高以及维护全网状态的成本增加等问题。本质上,单体链同时负责所有功能的架构决定了其必然要面对所谓的区块链“可扩展性三难”。
1.2 可扩展性三难
与分布式系统领域的“CAP定理”类似,区块链“可扩展性三难”(或称“区块链不可能三角”)要求区块链的架构必须在安全性、去中心化和可扩展性这三种属性之间做出权衡,最多取二舍一,三者不可兼得。
具体而言:
- 安全性 (Security) :指网络在遭受攻击时仍能正常运行的能力。这一特性是区块链的核心准则,不应妥协。因此,实践当中取舍通常发生在可扩展性和去中心化之间。
- 去中心化 (Decentralization) :指网络中控制权的分散程度。Web2 和 Web3 系统之间、区块链和传统分布式系统之间的核心区别是可验证性,用户可以通过亲自操作全节点来验证区块链的运行状况。因此可以用全节点数量来衡量区块链系统的去中心化程度。要使区块链更去中心化,运行节点的硬件要求就不应成为参与网络的限制因素,验证网络的资源要求也应当较低。
- 可扩展性 (Scalability) :指区块链的吞吐量与其验证成本的比率,即区块链在保持验证资源要求较低的条件下处理更多交易的能力。提高吞吐量的方法主要有两种。一是增加区块大小,从而增加每个区块可以包含的交易数量。但大区块必然导致网络中心化,因为运行全节点的硬件要求会随着计算输出需求的提高而提高。第二种方法是将执行转移到链下进行,将计算负担从主网节点外包出去,利用证明来在链上验证计算结果。
模块化架构旨在通过“关注点分离”原则解决区块链可扩展性三难。例如,通过分离执行层和数据可用性层,区块链可以在保持网络的去信任化和去中心化特性的同时扩展吞吐量,这本质上是通过打破计算和验证成本之间的相关性来实现的。
2 模块化概览
模块化区块链由相互连接的模块或组件构成,每个模块负责特定的功能。这种架构简化了系统的开发、测试和维护,同时增强了其灵活性和可扩展性。通过将组件解耦,并分别进行针对性优化,可以实现 1 + 1 > 2 的效果。在模块化生态中,每条链只负责少数功能,其余部分都交由其他层来完成,不同的链成为了一个个“可插拔”的模块,开发者可以根据用例自由进行组合或替换。
当前的模块化生态主要根据上述区块链四层模型来划分功能,为使读者对各层级的作用有更直观的理解,这里用 F1 比赛进行类比:
- 执行层根据交易输入和执行规则计算得出新的状态转换,类似于 F1 比赛按规则进行并计算出车队积分;
- 结算层负责证明验证和争议仲裁,类似于在 F1 比赛期间组委会回看录像、做出判罚并解决车队争端;
- 共识层负责确保分布式节点间形成共识,类似于各地的车迷观看同一场比赛,并就积分结果达成一致;
- 数据可用性层负责发布和存储验证状态转换所需的数据,类似于直播并录制 F1 比赛,所有人都能通过观看回放来验证积分是否正确。
在对各层级的作用和功能有了清晰直观的认识后,接下来将简要介绍各层的背景及项目发展现状。
2.1 执行层
在执行层项目真正落地之前,我们经常听到一个词:以太坊杀手。不少新公链尝试从单体链本身的交易结构、区块设计、共识机制和网络广播机制等方面着手进行探索和研究,依靠有着海量交易吞吐量、极快交易速度和低廉交易成本的高性能公链与以太坊正面竞争,希望取而代之。可见用户对于交易吞吐量、交易速度和交易成本等方面的需求与以太坊当时的性能存在着严重的不匹配。
与此同时,以太坊生态对于各种各样的技术和解决方案也在持续进行探索研发。自 2020 年 Vitalik Buterin 发表文章《以 Rollup 为中心的以太坊路线图》以来,以太坊经历了多次升级,逐渐向 Rollup 中心架构转型,该架构不再强调以太坊基础层本身的可扩展性,转而专注于共识、结算和数据可用性,模块化叙事也由此开始受到广泛关注。
时至今日,以 Rollup 为主体方案的执行层 L2 路线已经占据主导地位,其中基于欺诈证明的 Optimistic Rollup(Optimism、Arbitrum)在项目构建、用户吸引和留存方面都陆续超越其他 EVM 兼容的新公链,此外,基于零知识证明的 ZK Rollup(Starknet、Hermez、zkSync、Scroll、Taiko 等)以及并行交易项目(Fuel,AltLayer、Smooth)也在各自的方案领域持续发展。共享定序器、互操作协议、Rollup 框架以及 Rollup-as-a-Service (RaaS) 等基础设施在快速涌现,这些解决方案能进一步优化执行层 L2 技术栈,更好地将单体链功能抽象到专门的层级中。
根据 Dune 的数据,自上线以来,以太坊 L2 的活跃度始终保持着强劲的上升趋势,L2 单日交易量相较一年前增长近三倍,当前占以太坊单日总交易量的 73.6%。
L2 上的单日活跃地址数超过 64 万个,一年内增长近六倍,比以太坊多出近 23 万个。这些数据体现出了当前执行层 L2 的关键地位和重要作用,未来,随着大量用户和开发者被吸引而来,执行层 L2 还将继续为区块链扩容和模块化生态的发展提供动力。
2.2 结算层
在模块化架构中,结算层是可选层,可作为 Rollup 和其他应用的部署平台,也可为传统智能合约应用提供具有共享流动性的通用执行环境。Rollup 在结算层上以智能合约的形式部署。合约既负责 Rollup 交易证明的发布和验证,也可以充当到 Rollup 的跨链桥。结算层可以将 Rollup 桥接回结算层然后再桥接到另一个 Rollup,也可以用状态转换证明来验证所有部署在结算层的 Rollup 的状态,以实现低成本、低延迟的跨链桥。结算层依靠智能合约执行和 Rollup 数据发布赚取手续费,对用户来说手续费相较于 L1 会低很多,因为执行层的交易数据会被压缩发布到共识和数据可用性层,这些基础层的执行成本会由结算层用户分摊。总体而言,结算层作为模块化范式的独特组成部分,为 Rollup 提供了争议解决机制、高效的跨链桥方案和共享流动性的途径,开发者根据需求精准定制 Rollup。
在实际应用中,结算层有多种实现方式:可以将高性能的单体公链用作结算层,也可以选择专门用于结算的模块化链。前者的实现形式类似于当前典型的 L2 Rollup,后者则可以根据需求做出更多针对性的优化:
- 结算层的主要服务于部署在其之上的 Rollup,因此专门化的结算链可以通过限制应用的部署,尽可能减少用户的直接交互,从而为 Rollup 提供更大的区块空间。面向用户的应用应部署在专门化的执行层,而执行层则部署在专门化的结算层,由此通过更清晰的职责划分实现降本提效。
- 结算层可以利用欺诈证明或有效性证明创建信任最小化轻节点。结算层轻节点接收并验证证明,独立判断区块的有效性并拒绝无效区块,无需再依靠共识盲信验证者,系统安全性进一步提升。想要验证结算层的执行层只需运行一个轻节点即可。
2.3 共识层
当前,PoS 共识机制在 Web3 世界已成为主流。PoS 共识的核心是利用权益保护网络,权益的价值将决定网络的总体价值,只有足够高价值的权益才能保障高价值的网络。著名的 PoS 网络包括 Cosmos、波卡和以太坊等。
Cosmos 秉承最小化信任机制,作为 Hub 不会干预生态应用链的共识过程。虽然 Cosmos 生态的应用链可以利用完善的开发栈,但是,建立和维护应用链网络的验证者集需要极高的门槛和成本,这也是信任和安全的代价。许多应用链通常通过空投吸引 Cosmos 的验证者,以高额的通胀奖励鼓励他们进行质押以保护网络。为了降低共识机制的成本并提高应用链的安全性,Cosmos 2.0 提出了各种改进方案,例如借助 Cosmos 的安全共享 ICS 为应用链提供安全性,以及通过 Space Mesh 实现应用链的共识共享等。此外,Cosmos 生态的 Babylon 还尝试引入比特币网络的 PoW 共识,以增强应用链的安全性。
波卡融合了强大的链上治理模型和先进的共识理念。通过平行链卡槽拍卖机制,波卡直接将共识机制的保障范围扩展到其他链的交易。尽管这些机制在共识复用方面具有前瞻性理念,但由于链上治理效率和共识需求之间存在不匹配,导致了波卡平行链逐渐淡出视野。
以太坊作为共识层资源的优势非常明显,多年的 PoW 发展历程使其积累了大量的价值。经过多年的探索和迭代,以太坊的 PoS 机制已经日臻完善。结合其强大的智能合约平台和不断蓬勃发展的执行层产品,以太坊 PoS 成为共识层资源的前提条件已经成熟。在现有的以太坊质押逻辑基础上,通过设计合理有效的激励和惩罚机制,可以复用质押的以太坊,实现安全性的延伸和共享。EigenLayer 在这一领域进行了多年的研究,提出了再质押 (Restaking) 概念。再质押旨在解决区块链安全碎片化问题。在构建去中心化网络时,项目方必须确保其具备可靠的加密经济安全机制。但从零开始建立 PoS 共识需要巨额的资本投入,且要耗费较长时间。若项目发行代币来实现安全保障,则需说服生态参与者承担新币的价格风险和质押以太坊的机会成本。即便由此成功建立了共识,也难以与以太坊的安全性相媲美。
再质押协议通过整合以太坊等大型链的安全性,并使其可被其他应用程序利用,来解决这一问题。质押者可以在获取主链质押奖励的同时,获得保护其他应用的额外收益。这一方案不仅提高了质押资产的资本效率,也为各种新兴应用引入了去中心化的安全机制。
2.4 数据可用性层
“Don’t trust, verify” 是区块链世界的一条核心准则,其中的 “verify” 就包含了对数据可用性的要求。具体而言,数据可用性指的是用户对于验证区块所需数据确实可供所有网络参与者访问的置信度。所有 L1 单体链其实都隐式地确保了 DA,如以太坊全节点会下载每个区块的所有数据副本,下载本身就要求数据必须可用,缺少数据的区块将被丢弃,不会被添加到区块链中。但对于模块化链、L2 Rollup 和轻节点而言,DA 问题显得尤为重要。与面向终端用户的应用层相比,DA 本质上是一个面向 Rollup 开发者的概念。在 Rollup 的运作模式下,DA 层应该是对用户透明的,应用用户通常不会直接与交易数据交互,只需享受 Rollup 带来的廉价、快速的交易体验即可。但尽管 DA 看似远离用户视线,其影响却不容小觑,DA 方案直接决定了 Rollup 的成本,而成本最终会传递给终端用户。可见 DA 在模块化生态中扮演着重要角色,在用户体验和开发者创新方面都起到了关键性作用。
我们知道,目前的 L2 Rollup 是将执行层抽离出来,在 L1 外执行交易,然后将用于证明状态转换的数据发布到 L1 上。不同类型的 Rollup 方案需要发布的数据也不同,ZK Rollup 只需发布轻量的有效性证明,而 OP Rollup 由于欺诈证明的要求,需要将其所有交易数据发布到 L1 ,这实际就是将 L1 用作 DA 层。当前,两类 Rollup 都使用 Calldata 将数据发布到以太坊,Calldata 是与以太坊交易一同传递的数据,用于实现信息交换。由于 Calldata 本身的空间大小有限,且其中所有的数据都会被以太坊节点处理并永久存储于链上,这一方面会导致状态膨胀,给全节点带来更多存储负担,另一方面也带来了高昂的数据可用性成本。理论上而言,L2 的数据并不需要永久存储于以太坊 L1 上,仅需存储一定时间满足欺诈证明等验证需求即可。换言之,以太坊 L2 的交易数据在过去是缺乏合适的存储空间的。从数据上看,L2 80% 的交易成本以及 Gas 费用均来自于 Calldata 中昂贵的数据存储成本。以太坊吞吐量和区块空间有限,L2 性能受限的同时,还面临着与普通交易相同的手续费竞争。在需求高峰期,随着 Gas 费飙升,DA 成本甚至能占到 L2 手续费的 90% 以上。
以太坊即将实施的 Dencun 升级正是为了解决上述问题,升级包括了 EIP-4844 ( “Proto-Danksharding” ),这一提案的应用将会在以太坊区块中引入一种新的数据存储结构:Blob。Blob 将专门用于存储 L2 向 L1 提交的交易数据。
Proto-Danksharing 所引进的每个 Blob 大小为 128 KB,每个以太坊区块计划包含 3-6 个 Blob(0.375 MB - 0.75 MB),未来逐步拓展至 64 个。相比之下,目前以太坊每个区块可以容纳的数据大小不到 200KB,引入 Blob 后,以太坊区块可容纳的数据量将显著提高。
引入 Blob 后,L2 所提交的交易数据将不再需要竞争 Calldata 的存储空间,而是直接提交至 Blob 中进行存储。并且,Blob 的数据会在大约一个月左右的时间后自动删除,进一步降低没必要的存储负担。Blob 的引进意味着 L2 的交易费用将极大地降低(约降低 90%),并且,由于 Blob 相当于为 L2 额外拓展了区块空间,L2 能同时提交的交易吞吐量也将显著提高。若 Dencun 升级后成功实现了一个区块外挂 3 个 Blob 的平均目标,L2 的吞吐量将有接近 2 倍的提升。若最终实现了一个区块外挂 64 个 Blob 的目标,L2 的吞吐量将有接近 40 倍的提升。
另外,Blob 还拥有独立的费用市场。Proto-Danksharing 还引入了一种新型 Gas,称为 Blob Gas。EIP-4844 中的 Blob Gas 费用机制植根于之前引入的 EIP-1559 机制,其中 Blob 的存储空间将根据自己的费用市场进行拍卖。这意味着 Blob 的费⽤市场完全独立于区块空间的需求,以此提高网络资源分配的灵活性和效率。Blob 中的数据存储成本约为每字节 1 个数据 Gas (one data-gas per bype),而 Calldata 定价为每字节 16 个数据 Gas (16 data-gas per byte)。相比之下,Blob 的数据存储成本显著低于 Calldata 的数据存储成本。
目前,以太坊 Rollup 数据可用性市场仍由以太坊原生 DA 主导。但第三方独立的专用 DA 方案,如 Celestia、EigenDA、Avail 等已经陆续推出,后续以太坊原生 DA 的主导地位可能会受到挑战。专用 DA 层不仅对数据可用性采样、纠删码等技术方案进行了探索,也有各自对于数据可用性领域的研究突破,例如 Polygon Avail 的 Fast Sync 技术和 Celestia 的主权性和互操作性。未来值得关注的是,Celestia 等专用 DA 层究竟会成为主流还是被以太坊长期愿景中的完整 Danksharding 所取代。
3 主要项目
当前的模块化赛道项目众多,本节将选取具有代表性的项目进行详细介绍。主要包括:提出模块化区块链概念的数据可用性协议 Celestia,利用再质押原语扩展以太坊共识安全性的 EigenLayer,以及基于模块化方式构建的以太坊首个 SVM 通用 L2 Eclipse。
3.1 Celestia
作为首个提出模块化区块链概念的项目,Celestia 在该领域中有着极高的知名度和先驱地位。近来替代 DA 赛道蓬勃发展,Celestia 也功不可没。2023 年 11 月,Celestia 主网上线并获得了市场热捧,首次空投估值即达 20 亿美元,至今完全稀释估值 (FDV) 更是一路飙升至 180 亿美元以上。
Celestia 也是首个专门针对数据可用性进行优化的网络,其数据可用性层由 PoS 链构成,基于 Cosmos SDK 构建,能为 L2 网络提供临时存储批量交易数据的专用空间。功能上,Celestia 仅负责数据可用性与共识部分,交易执行和结算负载都被转移至其他网络。Celestia 本身不执行智能合约,也不支持跨 Rollup 桥接和争议解决机制。其核心功能是:以信任最小化的方式存储和编码数据、达成数据顺序共识并允许用户检索数据。就本质而言,Celestia 更像是去中心化的数据平台,这种专门化的设计也使其上的 L2 网络能够有效避免以太坊上数据费用高昂和网络拥堵的问题。
关键技术及原理
Celestia 的可扩展性方案的核心是将执行与共识解耦,并引入数据可用性采样 (Data Availability Sampling, “DAS”) 和命名空间 Merkle 树 (Namedspace Merkle Trees, “NMTs”) 等关键技术。DAS 使轻节点无需下载整个区块数据即可验证数据可用性;NMTs 使得应用程序仅需处理与其相关的部分数据,从而显著降低了数据处理需求。
图9 Celestia 的 2D Reed-Solomon 编码
-
数据可用性采样 (DAS) :如图 10 所示,Celestia 使用 2D Reed-Solomon 编码处理区块数据,将其划分为 $k×k$ 个分片,排列成 $k×k$ 的矩阵,并通过多次 Reed-Solomon 编码扩展为 $2k×2k$ 的扩展矩阵。计算扩展矩阵行和列的 $4k$ 个独立 Merkle 根,再对这些根计算 Merkle 根,结果将被用作区块头中的区块数据承诺。要验证数据是否可用,Celestia 轻节点会对 $2k×2k$ 个数据分片进行采样。每个轻节点在扩展矩阵中随机选择一组坐标,向全节点查询所选坐标处的数据分片及对应的 Merkle 证明。如果轻节点每个采样查询都收到有效响应,则以高概率确认整个区块数据可用。 具体而言,要使 2D Reed-Solomon 矩阵中的分片不可恢复,则在 $(2k)^2$ 个分片中至少需要 $(k+1)^2$ 个分片不可用。因此,轻节点应当从扩展矩阵中随机采样 $0<s<(2k)^2$ 个不同的分片,只有在收到所有分片时才接受该区块。给定如图 10 所示的 $2k × 2k$ 扩展矩阵 $E$,其中有 $(k + 1)^2$ 个分片不可用。如果节点从 E 中随机抽取 $0 < s ≤ (2k)^2$ 个分片,那么至少抽到一个不可用分片的概率为:
\[p_1(X \geq 1) = 1 - \prod_{i=0}^{s-1} \left(1 - \frac{(k+1)^2}{4k^2 - i}\right)\]图 11 显示了对于 $k = 32$ 和 $k = 256$,概率随着采样数 $s$ 的变化。在进行 15 次采样后,概率超过 99%,数据量仅相当于 $k = 32$ 时 0.4% 的区块大小,$k = 256$ 时 0.005% 的区块大小。
图10 概率 $p_1(X \geq 1)$ 随采样数 $s$ 的变化
轻节点会将收到的附带正确 Merkle 证明的数据分片在网络中广播,因此只要 Celestia 网络中的轻节点共采样至少 $k×k$ 不同数据分片,诚实全节点就能够恢复完整的区块。
目前,DAS 技术使 Celestia 在区块链数据可用性扩展方面具备显著优势,尤其相较于仍在开发类似解决方案的以太坊。只要网络中有足够的节点对区块进行采样,Celestia 就能保持安全性。网络中轻节点越多,集体下载和存储的数据就越多,因而区块大小可以相应地增加,同时无需牺牲安全性或去中心化特性。Celestia 主网上线初期区块大小为 2 ~ 8 MB,可通过链上治理升级。
-
命名空间默克尔树 (NMTs) :Celestia将区块数据划分为多个命名空间,每个应用(如 Rollup)对应一个命名空间,每个应用只需下载与其相关的数据,可以忽略其他应用的数据。为了实现这一点,节点要能证明所提供的数据是完整的,即返回了给定命名空间的所有数据。为此,Celestia 使用了命名空间默克尔树。NMT 是一种有序的 Merkle 树,使用修改过的哈希函数,树中的每个节点都包含了该节点所有后代节点中消息的命名空间范围。树的叶节点按照消息的命名空间标识符进行排序。
在 NMT 中,每个非叶节点包含所有后代叶节点中最低和最高的命名空间标识符,以及子节点哈希值的拼接。由此可以创建 Merkle 包含证明,保证所返回数据的完整性。NMT 使应用可以仅下载与自身相关的交易数据,从而提高了网络效率。
发展潜力
根据 Celenium 的数据,Celestia 已处理超过 1250 万笔交易,累计 Blob 大小为 4.8GB。Celestia 的优势在于其高性能、低成本的数据可用性服务。未来,Celestia 的成败取决于能否被执行层和结算层的协议广泛采用,进而吸引更多终端用户和资本。目前,L2 网络 Manta Pacific 以及 Aevo 和 Lyra 等面向高吞吐量场景的应用链已采用 Celestia 作为其数据可用性层。
另一方面,将 Celestia 作为数据可用性层相较于使用以太坊原生 DA 会引入新的安全风险,依赖 Celestia 的 L2 网络和应用链需要信任其共识机制和加密经济保障。因此,对各类协议项目方而言,是否选择 Celestia 本质上是在安全性和可扩展性之间做权衡取舍。总体而言,与以太坊生态联系不紧密、性能要求高、成本敏感的新兴项目,如游戏、AI、社交等赛道的 DApp,未来与 Celestia 合作的可能性较大。而传统 DeFi 协议,由于对安全性要求较高且可扩展性带来的提升相对有限,可能更倾向于选择以太坊原生 DA。
值得一提的是,Celestia 提供了以太坊回退 (Ethereum fallback) 机制,在 Celestia 主网出现中断时,L2 网络将回退到使用以太坊的 Calldata 来保障数据可用性,从而确保用户可以继续安全、无缝地进行交易,降低了安全风险。此功能目前已支持 OP Stack 和 Arbitrum Nitro。
图12 Celestia 的以太坊回退机制 此外,Celestia 还提供了桥接其模块化 DA 层与以太坊的 Blobstream。Blobstream 将 Celestia 的数据根承诺中继到部署在以太坊上的轻客户端智能合约中,确保数据的可用性和完整性。在以太坊上,L2 的智能合约可以通过与 Blobstream 轻客户端智能合约交互来验证特定数据块确实已经在 Celestia 上发布并可用。一旦验证了数据的可用性和完整性,L2 就可以安全地从 Celestia 网络读取数据,并在以太坊上重新执行或处理这些数据。由此即可实现用 Celestia 保障数据可用性的同时用以太坊进行结算,从而充分利用两个网络的优势,即 Celestia 的可扩展性和数据可用性,以及以太坊的安全性和去中心化特性。
Blobstream 是实现 Celestia 可扩展、安全和去中心化区块链生态系统愿景的关键部分。这一技术促进了未来区块链技术所需的互操作性。Blobstream 当前的实现是基于零知识证明的 Blobstream X。
在生态方面,Celestia 目前已经吸引了 Eclipse、Dymension、AltLayer、Saga 等一系列 L2 网络及提供商,并积极与跨链桥、结算层方案、游戏、排序器等赛道的项目合作。同时也在推进技术整合,如与 Arbitrum Orbit、Polygon CDK等集成,优化开发者体验。生态的不断扩张和多元化也反过来对 Celestia 的发展起到了正面作用,多个项目都宣布对 TIA 质押者进行空投,这也推动了其质押人数不断上升。
3.2 EigenLayer
EigenLayer 是基于以太坊构建的协议,引入了“再质押”这一加密经济安全的新原语。该机制允许在共识层上对 ETH 进行再次抵押。质押者可以通过 EigenLayer 重新利用自己质押的 ETH,为网络上的其他协议和应用提供安全服务,并从中赚取收益。本质上,EigenLayer 是通过再质押来聚合和扩展以太坊基础层的加密经济安全性,解决区块链安全碎片化的问题,并建立去中心化信任的市场。
如上图所示,传统意义上的以太坊原生质押,主要是以网络验证者为主,其最大的弊病在于门槛高 (32 ETH)、锁定期长。在此背景下,流动性质押平台应运而生。流动性质押协议基本业务就是将散户质押的 ETH 聚合成池,以满足以太坊验证节点 32 ETH 的要求。用户存入 ETH 的回报是协议 1:1 铸造的 ERC-20 衍生代币,也就是流动性质押代币 (Liquid Staking Token, “LST”)。若用户要取回 ETH,则 LST 退还(销毁),同时获得质押的同等份额的 ETH 及奖励。目前规模最大的质押平台当属 Lido,占据了近 70 以上的市场份额。流动性质押协议主要解决了两个问题:
- 降低门槛:如 Lido 可以质押任意数量的 ETH 且无技术门槛;
- 释放流动性:如在 Lido 质押 ETH 可以获取 stETH,stETH 可以参与 Defi 或者近似等价地兑换 ETH。
而 Eigenlayer 再质押则在此基础上更进一步,作为质押凭证的 LST 可以在 Eigenlayer 上进行再次质押。这一方面为以太坊生态的新兴应用提供了扩展的以太坊安全性,另一方面则为质押者带来更多收益。用户存入 LST 资产时,也会获得一个流动性再质押凭证 (Liquid Restaking Token, “LRT”),用户可以使用 LRT 进行更多的金融操作,例如抵押或借贷等,从而进一步释放再质押中锁死的流动性。
关键技术及原理
EigenLayer 系统中的参与者有三类:
-
再质押者:质押其 ETH 或 LST 以保护网络上的其他协议,并从中赚取额外收益,同事承受额外的罚没条件。
-
节点运营商(验证者):再质押者可选择由其资产委托给可信的节点运营商,无需自己运行 EigenLayer 节点。节点运营商从收益中抽成获利。
-
主动验证服务 (Actively Validated Services, “AVS”):指构建在 EigenLayer 之上的服务,也称模块,旨在吸引再质押者为其提供安全性。AVS 可以是DA 层、虚拟机、预言机网络、跨链桥等。
基于该体系,EigenLayer 引入了两个核心概念:通过再质押实现的池化安全性、开放市场。
-
通过再质押实现的池化安全性:EigenLayer 使新模块无需发币,而是通过再质押的 ETH 来获得安全性。具体而言,在再质押者将 LST 或 ETH 锁定给验证者后,验证者即可选择要保护模块,并将提现凭证设置为 EigenLayer 智能合约,以接受在行为失当时的自动罚没。作为回报,被保护模块会为安全性和验证者服务付费,这些费用将发放给验证者和再质押者。由此,以太坊强大的加密经济安全性便被池化到了构建于其之上的其他协议之中。
-
开放市场治理:EigenLayer 建立了一种开放的市场机制,允许验证者权衡风险回报比,自由选择为哪些模块提供池化安全性。模块则需要利用适当的激励措施吸引验证者。本质上,这一模式类似于风投公司和创业者间的关系,再质押者在支持创新并获取额外收益的同时也要承担相应(罚没)风险。EigenLayer 认为这一设计是对区块链治理能力的补充和完善,同时也使新模块能够有效利用验证者中的异构资源,从而更好地实现安全性和性能的权衡。
这两个因素共同建立起了竞争性的自由市场,新协议可以直接购买池化的以太坊安全性,因而消除了启动新共识网络所需的大量资金成本。理想情况下,这一设计还将具有飞轮效应:由 EigenLayer 保障的协议越有价值 => 对再质押者的回报就越高 => ETH 的价值提高 => 以太坊的安全性提高 => 为 EigenLayer 上的协议带来更高的安全性 => 进一步激励开发者在其上构建新协议。
发展潜力
截至目前,EigenLayer 的 TVL 已超过 300 万 ETH,折合约 110 亿美元,其增长速度惊人,现已成为以太坊上锁仓量仅次于 Lido (以太坊头部流动性质押协议)的项目。值得注意的是,这一数字是在 EigenLayer 设定了 LST 存款上限且还未推出任何 AVS 的情况下达到的。但其实我们很难将长期的质押需求与短期内用户对积分和空投挖矿的兴趣完全区分开来。随着协议的成熟,长期来看再质押的 ETH 数量或许仍会保持增长,但在积分挖矿结束或 AVS 奖励低于预期时,TVL 可能会在短期内出现下降。
EigenLayer 协议本身及其所代表的再质押模式在推动创新的同时也存在着潜在风险:
-
验证者串谋攻击:由于验证者可以选择为多个不同的 AVS 进行再质押,理论上可能使攻击在经济上可行。EigenLayer 白皮书中对此提出了一个开源仪表板的解决方案,该仪表板可以监控验证者的再质押行为,使协议可激励仅参与少数 AVS 的验证者。
- 意外罚没:EigenLayer 上不成熟 AVS 的智能合约安全问题或程序 bug 可能导致意外罚没。针对这一问题,EigenLayer 提出了两种解决方案:
- 针对 AVS 代码库的安全审计;
- 可通过多签否决罚没决定的治理层 (此方案存在中心化问题,仅作为辅助手段存在,最终将被移除)。
-
罚没冲突:EigenLayer 允许将同一笔再质押的 ETH 质押给多个 AVS,这会导致不同服务间罚没和索赔条件的层级关系难以厘清。每个协议都会创建自己定制的罚没条件,因此可能出现:一个 AVS 因为不当行为要罚没再质押ETH,而另一个 AVS 则要求收回同一笔再质押 ETH 作为对受损参与者的补偿。这就导致了罚没冲突。随着越来越多的 AVS 启动,运营者的角色会变得更加复杂,罚没规则也更难以遵循。而在此之上,LRT 的引入进一步抽象了再质押的复杂性,可能令持币者难以识别潜在的风险。
-
协议可持续性:代币是协议经济激励和收入的主要来源,如果所有价值都经由 EigenLayer 流向 ETH,那么某些项目可能难以长期发展壮大。
-
LRT 估值风险:LRT 也存在不可忽视的估值风险,例如在质押退出队列延长时(如以太坊 Dencun 硬分叉后验证者波动限制从14 降至 8),LRT 可能暂时偏离其内在价值。而如果 LRT 像 LST 一样在 DeFi 中被广为接受且被用作抵押品,则可能加剧清算风险,在流动性较低的市场中尤甚。此外,LRT 本质上代表着一系列多元化的投资组合持仓,这些持仓的风险状况可能会随着时间的推移而发生变化。可以添加或移除成分,或者 AVS 本身也可能因其收益或偿付能力风险而发生变化。市场低迷可能会同时影响多个 AVS,进而危及 LRT 的稳定性,加剧被迫清算和市场波动的风险。递归借贷只会放大这些损失。
-
共识过载及协议类型受限:基于 EigenLayer 构建的协议在出现重大损失时如果依赖以太坊的底层共识,会将冲击传导至 L1 网络,从而引发以太坊网络自体的规范冲突,也就是所谓“共识过载”问题,用金融世界的话语就是:对共识的过度加杠杆可能引发共识本身的坍塌。如 Vitalik Buterin 的文章所言,以太坊不能对任何应用级别的失误负责,再质押平台上复杂金融系统出错造成的损失是不应依靠以太坊 L1 硬分叉来修正或弥补的。EigenLayer 的白皮书和其 CEO 的推文也显示出对这一观点的认同。这可能会限制能在 EigenLayer 上构建的协议类型。
We welcome this excellent analysis of the different kinds of risks using restaking for different use cases a la @eigenlayer by @VitalikButerin. It is consistent with what we have been advocating with Eigenlayer. A brief summary here: https://t.co/8ppF9jUp6t
— Sreeram Kannan (@sreeramkannan) May 21, 2023
3.3 Eclipse
Eclipse 是全面拥抱模块化叙事的典型项目,其主要目标可以概括为:通过合理利用模块化技术栈来构建以太坊上性能最优的通用 L2 方案。具体而言,在当前的架构中,Eclipse 使用了并行处理的 Solana 虚拟机 SVM 作为其执行环境,使用 Celestia 作为数据可用性层,并在以太坊主网上进行结算。由此 Eclipse 将 SVM 的速度和可扩展性、Celestia 的吞吐量和可验证性以及以太坊的安全性和流动性结合了起来,最大限度地发挥出了模块化架构的优势。
关键技术及原理
-
执行:SVM
SVM 及其 Sealevel 运行时亮点在于支持交易的并行处理,不会导致数据竞争或状态冲突的交易将被分配到不同的处理器核心中并行执行。得益于此,SVM 可以随计算机处理器核心数量的增长和成本下降而直接获得硬件级的扩展性。 而单线程运行时(例如现有的 EVM)则很难从单核心成本的下降中受益。由下图不难看出,过去十多年里,单线程性能的提升速度在不断降低,性能提升主要都来自处理器核心数量的增加,因此充分利用并行处理,顺应这一趋势至关重要:
当前也有一些针对 EVM 并行化的初步尝试,但这些方案都存在一些限制:在保持 EVM 兼容性的前提下加入并行化功能,往往需要进行权衡,导致性能不佳。并且即便实现了并行化,也无法解决 EVM 面临的其他瓶颈问题,例如状态增长问题等。相比之下,SVM 采用了不同的技术路线,通过智能合约事先声明状态依赖关系的方式,实现了更优化的并行处理。
Solana 上的交易需要显示声明将要读写的内存位置(即账户)。以下这段代码定义了相关信息的格式,运行时会使用这些信息来决定哪些交易可以并行执行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
pub struct AccountInfo<'a> { /// Public key of the account pub key: &'a Pubkey, /// The lamports in the account. Modifiable by programs. pub lamports: Rc<RefCell<&'a mut u64>>, /// The data held in this account. Modifiable by programs. pub data: Rc<RefCell<&'a mut [u8]>>, /// Program that owns this account pub owner: &'a Pubkey, /// The epoch at which this account will next owe rent pub rent_epoch: Epoch, /// Was the transaction signed by this account's public key? pub is_signer: bool, /// Is the account writable? pub is_writable: bool, /// This account's data contains a loaded program (and is now read-only) pub executable: bool, }
SVM 的另一显著优势在于局部手续费市场。现有区块链的手续费市场大多采用全局模式,导致热门应用会抬高整个网络的手续费,影响其他用户。例如,NFT 铸造热潮可能令整个网络交易手续费飙升,普通用户的转账也无法以可接受的成本进行。Solana 通过局部手续费市场巧妙地解决了这一问题,有效避免了跨应用程序状态争用的问题。该方案的核心在于 Solana 独具特色的并行化运行时,令调度器能够高效识别并优先处理无冲突交易,让其以更低的手续费完成。而未来 Solana 将在协议层面实现局部手续费市场,更加彻底地解决跨应用程序状态争用问题,确保单个应用的手续费高峰不会影响网络的其他部分。而 EVM 由于缺乏天然的并行化能力,难以像 Solana 一样高效实现局部手续费市场,如果采用启发式方法,不仅效率低下,还可能带来新的安全风险。
兼容性方面,开发者可以利用 Neon EVM 和 Solang 在 Eclipse 主网上部署以太坊智能合约。Neon EVM 是一款以智能合约形式运行在 SVM 链上的 EVM,为 Eclipse 主网带来了完整的 EVM 兼容性,包括 EVM 字节码支持和 Ethereum JSON-RPC,同时吞吐量远超单线程 EVM。得益于 Neon EVM 的局部手续费市场机制,每个 Neon EVM 实例都拥有独立的手续费管理体系。应用只需部署自己的合约,即可享受应用链的优势,无需分散用户体验、安全性或流动性。但值得注意的是,基于 Neon EVM 的应用和基于 SVM 的 Eclipse 应用将无法互操作,使用 Neon EVM 部署的 DApp 类似于部署到 Eclipse 的应用 Rollup,两者在安全性方面也存在差异。此外,Solang 编译器能够将 Solidity 智能合约代码编译为 SVM 字节码,使开发者可以轻松将现有 Solidity 合约迁移到 Neon EVM 平台。
-
数据可用性:Celestia
以太坊当前的带宽不足以支持 Eclipse 主网的目标吞吐量和费用,EIP-4844 升级也无法解决这一问题。如前文所述,EIP-4844 平均每个区块提供约 0.375 MB 的数据块空间(上限为 0.75 MB),对于经过基本压缩(每笔交易约 154 字节)的 ERC-20 转账交易,所有 Rollup 总计约 213 TPS,而对于经过压缩 (每笔交易约 400 字节) 的 Swap,所有 Rollup 总计约 82 TPS。
以太坊每个 Slot 时间为 12s
对转账交易:0.375 × 1024 × 1024 ÷ 154 ÷ 12 = 212.77 TPS
对 Swap:0.375 × 1024 × 1024 ÷ 400 ÷ 12 = 81.92 TPS相较之下,Celestia 的 Blob 空间达 8 MB,且 DAS 轻节点使用户能够自行验证 Eclipse 区块数据是否可用,随着更多 DAS 轻节点上线,DA 层可以安全地提高吞吐量,从而为整个网络的安全扩展做出贡献。Celestia 高度可扩展的数据可用性吞吐量、对轻节点的原生支持以及密码经济安全特性使其成为了 Eclipse 主网在数据可用性方面的最佳选择。如下图所示,Blobstream 将转发由 Celestia 验证者集签名的证明,向以太坊证明一批 Eclipse slot 的数据已正确发布。Eclipse 的验证桥可以利用来自 Celestia 的数据根来验证供欺诈证明使用的数据。
Eclipse 团队表示也将继续监测以太坊在 EIP-4844 实施后 DA 方面的进展,如果以太坊能为 Eclipse 提供更好的扩展能力从而惠及用户,Eclipse 也可能会考虑将 DA 迁移到以太坊。
-
结算:以太坊
Eclipse 与其他主要 L2 方案一样,也在以太坊上进行结算。Eclipse 内置了一个与以太坊连接的验证桥,Eclipse 节点需要同时运行以太坊全节点,并通过验证桥来确定自身的主链和交易顺序。由此, Eclipse 能从以太坊中继承部分安全性。该验证桥会验证所有 Eclipse 上的交易,防止提交无效状态。此外,在某些故障情况下,该验证桥还能保证最终的活性 (liveness) 和抗审查性 (censorship resistance)。即使定序器 (sequencer) 出现宕机或试图审查 L2 上的交易,用户也可以通过验证桥强制包含其交易。
以太坊结算也决定了 ETH 将在 Eclipse 生态中将扮演重要角色。目前 Eclipse 没有发币计划,使用 ETH 作为 gas 代币。
-
证明:RISC Zero
Eclipse 使用 RISC Zero 生成零知识欺诈证明,避免中间状态序列化带来的性能损耗。
总体而言,欺诈证明需要包含三类内容:
- 交易输入的承诺(一般通过提供 Rollup 状态树的 Merkle 根实现)
- 交易本身
- 重新执行该交易会产生不同于链上指定输出的证明
Eclipse 的执行器会为每个交易发布一个包含输入和输出的列表(包括账户哈希和相关全局状态),以及产生每个输入的交易索引。交易会发布到 Celestia 链上,任何全节点都可以按部就班地从自身状态中拉取输入账户、计算输出账户,并确认以太坊上的承诺是正确的。
可能出现的两种主要错误类型:
- 输出错误:在此情况下,验证器会在链上提供正确输出的零知识证明。Eclipse 使用 RISC Zero 为 SVM 的执行生成零知识证明,这使得结算合约无需在链上运行交易本身即可确保正确性。
- 输入错误:在此情况下,验证者会在链上发布指向历史数据的引用,证明输入状态与声明的不符。利用 Celestia 的 Blobstream,Eclipse 的结算合约可以确保该历史数据确实证明了欺诈行为。
发展潜力
目前,Eclipse 仍处于开发和测试阶段,测试网已上线,计划在 2024 年第二季度上线主网。以太坊仍将 Rollup 视为其发展路线图的核心部分,抛开关于正统性的争论不谈,这也意味着以太坊将 L2 的广义定义留给了市场,在赋予开放性的同时,也巧妙地引入了各种形式的竞争。Eclipse 利用这一点,通过模块化开发将以太坊的安全性、Solana 的高性能以及 Celestia 的 DA 可扩展性相结合,构建出了强有力的市场叙事。
早期的 Rollup 方案大多优先考虑 EVM 兼容性,或者专注于优化零知识证明的效率。但近来技术的巨大进步使这些权衡取舍不再必要,反而让现有方案处于劣势:
- 高性能并行虚拟机(例如 SVM)
- 支持 DAS 轻节点的 DA 扩容方案(例如 Celestia)
- 零知识证明基础设施(例如 RISC Zero)
- 跨生态的代码(例如 Neon 和 Solang)和用户 (例如 MetaMask Snaps) 可移植性
作为以太坊上首个基于 SVM 的通用 L2,Eclipse 拥有巨大的后发优势。
虽然 Optimism 的 Superchain、zkSync 的 Hyperchains、Arbitrum 的 Orbit chains 等都拥有共享基础设施的多链愿景,但都局限在优化同一生态内的跨链体验,并未解决跨生态的互操作性问题。模块化建设并不等于孤岛式发展。维护多个链上的账户会给用户带来更多复杂性,而依赖基础设施提供商来运营和维护多链也会更加昂贵。Eclipse 利用 SVM 的并行虚拟机和局部手续费市场,很好地解决了现有 L2 在复杂性、成本、用户体验、流动性等方面的权衡问题,将 Solana 的性能与以太坊的安全性、可验证性和网络效应结合了起来。
Eclipse 的出现为以太坊和 Solana 生态带来了新的机遇和协同效应。对于以太坊生态而言,Eclipse 带来了 Solana 优越的性能和并行处理能力,为开发者提供了构建新型 DApp 的强大工具。而对于 Solana 生态而言,Eclipse 为开发者提供了从以太坊上获取大规模流动性和庞大用户群的机会,同时也将进一步推动围绕 SVM 的开发者和工具生态的繁荣发展。Eclipse 有望打破两大 L1 网络以往相对隔离的局面,为 Solana 和以太坊生态的融合带来新的可能性。
4 总结
面向服务的微服务架构已经成为现代软件开发的主流模式。其核心思想是将应用程序拆分成多个功能独立的服务,每个服务可以自主开发、部署和运行,服务之间通过通信和数据共享进行协作,从而实现更高的扩展性、灵活性和可维护性。尽管在分布式事务、服务治理、安全性等方面仍存在挑战,但随着技术的进步和经验的积累,这些问题正逐步得到解决。模块化区块链与微服务架构有许多相似之处。通过将区块链的各个层级解耦,开发者得以单独维护和优化特定功能模块,不同层级可灵活组合来适应更复杂的应用场景。
模块化架构是对区块链价值主张的进一步延伸,也是对打破不可能三角的一次重要尝试。但与此同时,其设计的多样性也导致了系统复杂性的增加,如何构建稳定的模块化系统将成为重要挑战。此外,流动性的碎片化问题、跨链通信以及安全问题也同样值得关注。
目前,模块化已经成为了区块链技术的重要探索方向,整个生态都在迅速发展,从执行层、共识层到数据可用性层,从底层的基础设施到上层的应用,都有新的技术和项目在不断涌现。未来,相信模块化区块链将会带来更多创新和机遇,为推动区块链技术的应用和发展做出重要贡献。