模块化区块链兴起:功能层争议的新视角与DA经济学
作者:Zeke, YBB Capital
前言
区块链的三角困境在过去一直是业界难以逾越的鸿沟,而前仆后继的公链项目总想通过不同架构的设计试图跨越这道鸿沟,并成为所谓的“以太坊杀手”。然而事实是残酷的,这么多年来以太坊一人之下的地位从未被超越过,区块链的不可能三角也依旧牢不可破。那么究竟是否存在一种方法为公链补足其缺口,以填满不可能三角?Mustafa Albasan对于模块化区块链的想法正是萌芽于此。
模块化的起源
模块化区块链的诞生源于两篇白皮书,2018年时 Mustafa Albasan 与 Vitalik 共同撰写了一篇名为《Data Availability Sampling and Fraud Proofs》的论文。该文描述了一个通过允许轻客户端接收并验证来自完全节点的欺诈证明,以及设计数据可用性证明系统,减少了链上容量与安全之间的权衡,从而在不牺牲安全和去中心化的前提下,解决区块链的扩展性。
接着在2019年,Mustafa Albasan 撰写《Lazy Ledger》的白皮书时,详细介绍了一个新架构,其中区块链仅用于排序和保证交易数据的可用性,而不负责交易的执行和验证。该架构的目的是解决现有区块链系统的可扩展性问题。当时他把这个称之为“智能合约客户端”。
而智能合约的执行则通过另一个执行层在这个客户端上执行,这便是 Celestia 的雏形。之后Rollup的出现,使得这个构想更具确定性。因为 Rollup 的逻辑就是离链执行智能合约,再将结果汇聚为证明上传至“客户端”的执行层。
通过对区块链的架构以及新扩容技术进行反思,他定义了一个新范式,并将其称之为“模块化区块链(Modular Blockchain)”。
什么是模块化区块链
传统单片区块链的架构通常由四个功能层组成:
- 执行层(Execution layer)——执行层主要负责处理交易和执行智能合约。它包括交易的验证、执行和状态的更新;
- 数据可用性层(Data-availability layer)——数据可用性层在模块化区块链中负责确保网络中的数据可被访问和验证。它通常包括数据的存储、传输和验证等功能,以保证区块链网络的透明度和信任;
- 共识层(Consensus layer)——负责节点间的协议,以达成网络中数据和交易的一致性。它通过特定的共识算法,如工作量证明(PoW)或权益证明(PoS),来验证交易并创建新的区块;
- 结算层(Settlement layer)——负责完成交易的最终结算,确保资产的转移和记录在区块链上永久保存,决定区块链的最终状态。
单片区块链使这些组件的工作都集成于同一个系统内完成,这种高度集成的设计方式必然会导致一些固有问题的存在,比如可扩展性差、灵活性差、维护以及更新困难。
而 Celestia 认为单片区块链不再需要自己完成所有事情。Web3未来的演变将是“模块化区块链”,通过使区块链模块化,并将其过程分配到多个“专属层”中,每个“专属层”负责处理特定的功能层,从而创建一个更优的系统,并且该系统应具备独立、安全、可扩展性的特点。
模块化设计原则
如果一个设计将系统分解成可以交换或替换的较小部分,那么这种设计就是模块化的。其核心理念是只专注于做好部分事(部分或单个功能层的运作),而不是试图做所有事情。如果用我们过去较为熟悉的项目来举例,Cosmos Zones、Polkadot Parachains 其实都可视为模块化的一种。
新视角
基于模块化的新视角来看,对单片区块链及其所属的模块化堆栈,进行再设计的空间将极大的提升。具体用途和架构各不相同的模块化区块链都可以通过组合达成协同工作。在设计多样化的可能性下,这条赛道也诞生了非常多有趣的创新项目。而下文将以模块化视角去讨论目前关于不同功能层的争议及Celestia 是如何诠释“模块化”的。
围绕以太坊为中心的执行层
如果把Rollup看作对于模块化的执行层,我们会发现模块化执行层的项目几乎都是建立在以太坊之上的。其原因自然也不言而喻,以太坊拥有大量资源做为护城河并且去中心化程度是可选择里最强的,但其可扩展性却很差,所以在功能层的再设计方面潜力极大。从近期上线的Move系语言公链( Aptos、Sui )的惨淡对比以太坊上Layer2的空前盛况,也不难看出区块链的基建叙事也从做公链转向为做以太坊的Layer2。那么模块化的存在究竟是好是坏?围绕以太坊为中心的执行层是否扼杀了公链的创新?
区块链扩容图景
首先以执行层为视角出发,对现有的链进行再归类。此处引用Nosleepjon文章《塔图因的双太阳》对区块链目前的执行层分类做个说明。
目前的区块链可被划分为四类:
1.单线程单片区块链:一次处理一笔交易的单体区块链。由于限制,其中大多数已转向 Rollup 或水平扩容路线图。
代表项目:以太坊、Polygon、BNB Chain、Avalanche
2.并行处理单片区块链:一次处理多个交易的单体区块链。
代表项目:Solana、Monad、Aptos、Sui
3.单线程模块化区块链:一次处理一笔交易的模块化区块链。
代表项目:Arbitrum、Optimism、zkSync、Starknet
4.并行处理模块化区块链:一次处理多个交易的模块化区块链。
代表项目:Eclipse、Fuel
单片并行处理架构 VS 模块化架构
目前对于该采用那种方案,说法繁多,尤其是在模块化与整体并行处理这两个概念间的对比。阵营也分为三种:
模块化阵营:模块化拥护者(大多也是以太坊拥护者)认为单片区块链不可能解决区块链的不可能三角。在以太坊上进行叠乐高才能在具备安全与去中心化特性的前提下,得到可扩展性。且模块化具备更多的控制权和可定制性。
单片并行处理阵营:此阵营(引用Kodi与espresso在《单片 VS 模块化:谁才是区块链的未来?》的观点)认为单片并行处理的新公链架构(Move系,Solona等)拥有高度的集成性,整体性能会优于模块化的碎片化设计,并且模块化的架构也并不安全,尤其是需要大量跨链通信,黑客的攻击面反而更广。
中立阵营:当然也有持中立态度,认为两者最终能共存的。比如Nosleepjon认为这个游戏的终局是:两者各有优点,公链的竞争还会存在,Rollup之间则相互竞争。
EndGame
这个问题的重点,实际上可简化为模块化的摩擦缺点(跨链不安全、系统不流畅等)是否大于新公链的中心化问题。从市场来看这个争论,不论是Rollup中心化排序器的缺陷还是跨链桥的可能存在的危险性,都没有让人们转向新的公链。是因为这些问题目前看来都有改进的空间,而新公链却复制不了以太坊链上庞大的生态护城河与去中心化优势。
另一方面,新公链在架构上虽然拥有性能及一体化的优势,但生态上都是对以太坊生态的简单Fork,同质化程度过高,也缺乏流动性。没有什么独占应用能体现自身架构优势,自然也就没有让人们不得不放弃以太坊生态的理由。而Rollup的可塑性足够高,未来新架构的Rollup提升空间还很大。当Rollup也具备非EVM链大部分优势时,“Solana Summer”这种情况以后很难发生。所以在这个问题上,我认为模块化的摩擦缺点小于公链中心化问题。而中立的情况似乎也不存在,以太坊的虹吸效应会如同“iPhone”一样,将大量注重可扩展性的开发者吸引到二层去,新公链则会成为鬼城。
关于基建的未来,我无疑是更倾向于模块化,以太坊的分型扩容也将是公链游戏EndGame的开始,Layer2之间竞争通用链,Layer3之间竞争超级应用链。
目前一级市场正在融资的项目情况也印证了这点,除了大量的以太坊二层项目外,就是对比特币的扩容项目,几乎看不见新公链的身影。
但话又说回来,行业总是建立在以太坊上发展,并且现在的趋势有点过度集中的味道,这种现状真的好吗?缺乏竞争会让一个行业发展停滞,行业需要多样性,需要更多选择。但新公链如何创造破局的苗头,到目前为止都还没有看到。当以太坊不断完善自身缺点的同时,如何找到更大的缝隙去做精准打击是非EVM系需要重点考量的问题。
DA方案的竞技场
说完了执行层的争议,我们再看数据可用性层(DA层)的争议,关于Rollup应该采用哪种数据可用性方案争论一直是业界近期的热门话题,起因则是以太坊基金的研究员Dankrad Feist的一条推文讨论了相关方面的话题。并在观点中明确指出不使用以太坊DA的Rollup不是Layer2,那么过去的Layer1战争是否会演变为正统(采用以太坊DA)Layer2与非正统Layer2之间的战争?那么目前业内对于DA的解决方案主要有以下三种:
一.公链做为结算层
以以太坊为例,在Rollup进行一笔交易时向以太坊递交的费用主要包括以下几类:
执行费用 (Execution Fee):对执行交易所需计算资源的补偿。它包括了执行交易所需的gas费用,通常与交易的复杂性和执行时间成正比。在Rollup中,执行费用可能会包括在链下执行交易的费用,以及生成和验证交易证明的费用;
状态费用 (State Fee):状态费用与更新以太坊主链上的状态相关。在Rollup中,这包括了将新的状态根提交到主链的费用。每当Rollup聚合器生成一个新的状态根并将其提交到主链时,都会产生状态费用。这种费用可能与状态更新的频率和复杂性成正比;
数据可用性费用 (Data Availability Fee):将数据发布至Layer1的费用。
在这些费用中数据可用性费用的占比最大,并且费用高昂,譬如Arbitrum在今年5月6日时由于以太坊的 Gas 费激增,单日支付给了以太坊376.8ETH的天价 Gas 费。
这是由于Rollup在上传数据至以太坊时是使用Calldata的形式上传的,且永久储存这些数据,所以费用非常昂贵。但好处是拥有三个方案中最好的安全性和正统性,目前该方案的成本下降需要等待坎昆升级的EIP-4844更新。通过引入Blob carrying Transactions的交易格式。使交易格式与普通的交易格式相比,多了一个Blob的位置可以用来存放Layer2的数据。而且,Blob数据在一个月后会被节点删除,从而大幅节省了存储空间。
Blob这种交易格式能够提供比Calldata更廉价的数据可用性。主要有两方面原因:一方面,Callda存在于Execution Payload中,而Blob数据存储于Prysm节点或者Lighthouse节点中(而不是在Geth中),相比而言Calldata需要被合约读取时所消耗的资源要多很多;另一方面,Blob数据是短期存储,一个月后节点会删除Blob数据。但其Gas费用依然会高于后两种方案。
二.Validiums DA模式
对于应用链类型的Rollup来说(比如曾经的dYdX、Immutable等),它们通常使用的是头部Rollup项目推出的二层可扩展性引擎制作(目前最多的是StarkEx,但ZK系的头部项目都有类似的方案)。而在DA模式上由于应用链计算量更大,它们更倾向选择使用Validiums这种低成本、高吞吐量的方案。Validiums的原理是利用链下数据可用性和计算来设计,类似于ZK-Rollup,通过发布零知识证明以验证以太坊上的链下交易。然而,不同于ZK-Rollup将数据保持在链上,Validiums将数据保持在链下,对比使用以太坊的方式费用下降90%,是可选择情况下最具成本效益的解决方案。
但由于数据保持在链外,Validium的实体运营商可以冻结用户的资金。为了防止极端情况发生,必须再引入了一个数据可用性委员会(DAC,Data Availability Committees)方案,DAC必须通过其法定人数对状态的每次更新进行签名来确认它已收到数据。这是一种颇具争议的做法,因为你首先得相信实体的安全性而不是链。Dankrad Feist(上文EIP-4844的提出者)发表的推文中,直接点名的便是这种方案。
三.模块化DA
从模块化的角度来说,DA层的再设计具有多种方式,可能会导致不同项目的具体实现方式有较大差别,所以对于模块化DA项目的详细说明需要大量篇幅,此处则以Celestia为代表作为DA项目的说明。
Celestia
接文章开头部分,做为模块化区块链概念的首个提出者, Celestia 是该赛道中最为知名也是最早期的项目。其愿景旨在解决区块链扩展性和模块化的问题。 Celestia 为开发者提供了更多灵活性,使他们能够更容易地部署和维护区块链应用程序。同时,它还在降低部署区块链的成本和复杂性,为dApp创建者和区块链开发者提供了一个模块化、可扩展的区块链架构,以支持各种应用和服务的需求。
工作原理与架构
解耦执行: Celestia 的逻辑是将协议分成不同的层级,每个层级专注于特定的功能,然后可以重新组合这些层级来构建区块链和应用程序。Celestia 则专注于层级中的共识和数据可用性层。与一些Layer1类似,Celestia 采用拜占庭容错(BFT)共识算法Tendermint进行交易排序,但又不同于其它Layer1。Celestia 不会推理交易有效性,也不执行交易,只进行交易的打包排序、广播,所有交易有效性规则均由Rollup节点在客户端强制执行(即解耦共识层和执行层)。那么注意一个关键点,“不推理交易有效性”。也就是隐瞒交易数据的恶意区块,也可发布到 Celestia 上。所以校验过程应该如何实现?Celestia 在此引入了两个核心,二维Reed-Solomon编码与Data Availability Sampling (数据可用性采样,简称DAS)。
单片区块链的整体架构对比 Celestia 的模块化架构
DAS:此方案用于轻节点验证块数据的可用性,此方式不需要节点下载整个区块。只需要采样块的部分数据即可(具体的实现方式需要通过二维Reed-Solomon编码,下文会详细说明)。不同于上文说到的DAC,DAS无需相信实体的安全,只需要链足够去中心化,数据就可相信。
二维Reed-Solomon编码(纠删码):二维Reed-Solomon编码的基本思想是对行和列都分别应用Reed-Solomon编码。这样,即使在二维数据的某些行和列中出现错误,也可以进行纠正。那么通过对块数据进行编码,将块数据分割成kk的块,排列成kk的矩阵,并通过多次 Reed-Solomon 编码扩展为2k2k扩展矩阵。计算扩展矩阵的行和列的 4k 个独立的默克尔根;这些根的默克尔根用作块头中的块数据承诺。Celestia 轻节点对2k2k数据块进行抽样。每个轻节点随机选择扩展矩阵中的一组唯一坐标,并查询全节点有关这些坐标的数据块和相应的默克尔证明。每个接收到的,带有正确默克尔证明的数据块都会被广播到网络中。
如果抽象一些理解,也可以这么说将区块数据分成一个方阵(例如,8×8),通过编码,为原始数据添加额外的“校验”行和列,形成一个更大的方阵(16×16)。通过随机抽样这个大方阵中的部分数据,并验证其准确性,即可确保整体数据的完整性和可用性。即使部分数据丢失或损坏,仍然可以利用校验数据恢复整块数据。
区块缩放:Celestia 会随着轻节点数量的增加而扩展。只要网络上有足够的节点来抽样整个区块,Celestia 就会保持安全。这意味着随着更多的节点加入网络进行抽样,区块大小可以相应地增加,而不牺牲安全性或去中心化。而在传统的区块链上这样做会牺牲去中心化,因为更大的区块大小会为节点下载和验证数据增加更大的硬件需求。
主权Rollup:这也是 Celestia 首创的概念,结合了各种区块链设计的元素,包括 Layer 1 区块链、Rollup和像 Mastercoin 这样的早期比特币网络。主权 Rollup 和智能合约Rollup(OP、ARB、ZKS等)之间的关键区别在于交易如何被验证。在智能合约 Rollup 中,交易由 以太坊上的智能合约验证。相反,在主权Rollup 中,Rollup 本身的节点验证交易。
主权 Rollup 将其交易发布到另一个区块链(如 Celestia )以进行排序和数据可用性。主权 Rollup 的节点然后确定正确的链。此设计允许主权 Rollup 从数据可用性 (DA) 层继承多个安全性方面,包括活性、安全性、重组抵抗和审查抵抗。
对于智能合约 Rollup,升级取决于结算层上的智能合约。升级Rollup 需要更改智能合约。可能需要多签名来控制谁可以启动对智能合约的更新。尽管团队控制升级多签名很常见,但可能通过治理使多签名受控。由于智能合约存在于结算层上,它们也受到结算层的社会共识的约束。
主权 Rollup 通过像第一层区块链那样的分叉进行升级。发布新的软件版本,节点可以选择将其软件更新到最新版本。如果节点不同意升级,它们可以继续使用旧软件。提供选择让社区,即运行节点的人,决定他们是否同意新的更改。即使大多数节点升级,它们也不能被迫接受升级。与智能合约 Rollup 相比,这个特性使得主权 Rollup 成为“主权” Rollup。
量子重力桥(Quantum Gravity Bridge 简称QGB):Celestia 生态系统的关键组件,它作为 Celestia 和 Ethereum(或其他 EVM L1 链)之间的桥梁,实现两个网络间的数据和资产转移。通过引入了 Celestium 的概念(EVM L2 Rollup),使用 Celestia 进行数据可用性,但在以太坊上结算。从而达到同时利用两个网络的优势:Celestia 的可扩展性和数据可用性,以及以太坊的安全性和去中心化。
Celestia 上的验证者可以运行 QGB,使 Celestium 以低于 Ethereum 的 Calldata 成本的部分提供块数据的强数据可用性保证。
QGB做为Celestia 实现可扩展、安全和去中心化区块链生态系统愿景的关键部分。它实现了区块链技术未来所需的互操作性。而项目目前还在制作Zk QGB,进一步降低验证的Gas费用。
DA经济学
我们再来聊下DA具备多大的经济价值。
此假设基于Polygon Hermez 预计他们最终每笔交易只需要 14 个字节,在当前 Danksharding 规范 1.3 MB/s 下,Laeyr2的TPS可以达到10万左右,那么预计的收益将达到300亿美元这个惊人的数字。
如此巨大的蛋糕下,DA市场未来的纷争将是非常激烈的。目前除了三个主流方案外,还有Stark的分型缩放Layer3、zkPorter,以及多个模块化DA项目都将加入战争。那么从现有Layer2项目来看,通用链是完全倾向于使用以太坊DA的。而应用链及长尾链将是“非正统DA”的主要客户。我个人的看法是模块化DA和不久后的Layer3将会成为未来的主流选择。
结语
在去中心化上前进依旧是这个行业的主流观念,模块化区块链本质上是对以太坊价值的延伸,也是打破区块链不可能三角的尝试,虽然设计上充满了多样性,但也使构建更繁琐复杂。而模块化搭建里由于模块又具备多种选择,不同模块的风险都是一个盲盒,如何构建一个较为稳定的模块化系统是需要注意的地方。另一方面的影响是,在模块化风潮的带动下数十条 Layer2 也将流动性再次割裂,跨链通讯与安全性也会是未来的重点。而 BTC 的模块化也是最近较热的方向,并且有了一些稍微可行的方案,也可适当关注。