一文了解什么是模块化区块链?为什么这对 Web3 的采用很重要?
每个区块链都有相同的核心任务:提供共识和安全性、确保数据可用性和执行交易。通常,大多数区块链在同一层处理这些职责 —— 这些区块链,如比特币,被称为 “单一区块链”。
单一区块链自第一种加密货币出现以来一直是行业标准,但这一现象正在迅速改变。随着越来越多的证据表明单一设计的性能不是最优的,模块化区块链正在获得越来越多的关注。模块化的链只专注于特定的任务,而将其余的任务卸载到其他层。
本指南为你提供模块化区块链的总览。我们将解释:
模块化区块链是如何工作的?
它与单一区块链有何不同?
以及为什么模块化设计对 Web3 的采用很重要?
什么是模块化区块链?
共识:共识是区块链网络中的一个机制,使得网络中的节点可以达成一个共同的协议或认知,确认哪些数据或交易是真实和准确的。这个共识机制决定了在区块链中交易的排列顺序以及如何向区块链添加新的数据块。
执行:执行是区块链上的节点如何处理交易以使区块链从一个状态转换到另一个状态。参与共识的节点必须使用他们的区块链副本来执行交易,然后在验证区块之前进行证明。
数据可用性:数据可用性是指在区块链网络中,系统会有一套规则确保交易数据是可访问和可获取的。具体来说,当一个新的数据块(区块)被创建时,那些产生这些区块的节点(称为区块生产者)有责任公布或分享这些区块的数据。这样,网络中的其他节点就可以下载并保存这些数据。并且,当其他节点请求这些数据时,这些数据必须被提供出来。这意味着区块生产者必须为每个区块发布数据,供网络节点下载和存储,并且必须在请求时提供这些数据。
结算:结算是指,在区块链中,一旦交易被加入到区块链的历史记录中,这个交易就被认为是最终确定的,无法被改变或撤销。这种不可逆的特性被称为“终结性”。为了确保交易的这种终结性,区块链需要有机制确保每一笔交易都是有效的。这意味着,当一笔交易被提交到区块链时,系统会进行一系列的检查,比如验证交易的真实性、核实相关的证明等。如果在这个过程中出现了任何争议或矛盾,区块链还会提供仲裁机制来解决这些问题。因此,结算功能要求链验证交易、验证证明,并仲裁争端。
在探讨了区块链的关键特性之后,我们现在可以回顾模块化区块链设计的机制。
模块化区块链是如何工作的?
模块化区块链遵循“模块化”的设计理念,即将整个系统分成若干专门的组件,每个组件都有自己明确的功能和职责。这样的设计允许各个组件针对特定任务进行优化,从而确保高效的执行。就像乐高积木一样,每个积木都有其特定的形状和功能,但可以组合在一起建立各种各样的模型。
在一个模块化的区块链生态系统中,每个模块化链都是一个组件。这种设计允许根据不同的应用场景,灵活地组合、替换或整合不同的区块链模块,从而满足多样化的需求。
什么是模块化区块链架构?
一个模块化的区块链可以被设计来处理以下任务之一或其组合:
执行:支持交易的执行,并允许部署智能合约并与之互动。
数据可用性:保证交易数据的可用性。
共识:就交易的内容和顺序达成一致。
结算:为交易的最终确定、争议解决、验证证据以及在不同执行层之间建立桥提供一个层。
在模块化区块链堆栈中对不同层的描述。来源:Celestia
Rollups 是模块化区块链的一个例子。Rollup 链处理交易(执行)但将共识、数据可用性和结算外包给母链。在本文的后面部分,我们会重点介绍更多的模块化区块链的例子,并看看它们是如何处理这些功能的。
一个模块化链经常可能执行两个或更多的功能,特别是如果它们是相互依赖的。例如,数据可用性层也必须就数据的顺序达成共识,否则就无法知道哪些数据代表了历史的正确版本。
在模块化背景下,以太坊是如何工作的?
和比特币以及许多第一代区块链一样,以太坊最初是作为一个单一区块链设计的。然而,为了提高可扩展性和可持续性,以太坊网络目前正向模块化框架转变。以下是以太坊在模块化背景下的工作方式:
分片
分片是将系统(例如,数据库)分割为多个部分的过程。通过将功能跨多个组件进行分割,系统比所有部分在同一职责上协同工作时获得更多的输出和效率。在区块链网络中,分片将区块链分割成多个子链,每个子链处理网络活动的不同部分。
以太坊正在采用一种分片设计,其中有 64 个分片链将并行运行。分片可以并行处理交易(执行分片)或作为存储区块链数据不同块的“仓库”(数据分片)。使用数据分片,一个以太坊节点将只存储在其分片链上发布的数据。这与其当前的结构形成对比,当前结构要求所有节点存储相同的数据。
分片以太坊区块链的架构展示。来源:vitalik.ca
以太坊的分片是一种模块化形式,其中不同的组件(分片链)处理不同的职责。在数据分片中,分片链存储以太坊数据的不同部分,而执行分片则允许每个分片链处理其自己的交易集,从而增加数据吞吐量并缩短处理时间。
Rollups
一些开发者采用了以 Rollup 为中心的方法来扩展以太坊。与纯粹的链下扩展解决方案(如侧链)不同,Rollup 与母链紧密相连。如果说有什么不同,Rollup 是主链的一个扩展,旨在提高后者的吞吐量。
以太坊区块链将计算任务外包给 Rollup,同时专注于结算、共识和数据可用性。Rollup 可以通过更快的区块时间和更大的区块来积极优化执行,而不会损害去中心化或安全性。那是因为以太坊充当 Rollup 的基础层(或称为 Layer1),而 Rollup 则位于 Layer2。
这里展示了在模块化区块链架构中,以太坊(第一层基础层)和 rollups(第二层)是如何运作的。来源:Celestia
模块化区块链设计有什么好处?
模块化区块链设计提供以下好处:可扩展性、灵活性和启动新的区块链的能力。
1. 可扩展性
区块链不可能三角指出,一个区块链只能同时拥有三个中的两个,但永远不可能同时拥有三个:去中心化、安全性和可扩展性。优化某些质量(如可扩展性)会导致其他两个的权衡(如安全性和去中心化),这就是为什么扩展区块链很困难。
当一个区块链尝试在同一层面上同时处理所有的功能和任务(例如,共识、数据处理、交易执行等),它可能会面临扩展性问题,即难以处理大量的交易或数据。为了解决这个问题,可以采用“模块化”设计,将不同的任务或功能分散到区块链的不同层或部分。这样,每个层或模块只需关注其专门的任务,从而提高整个系统的效率和可扩展性。更重要的是,这种模块化设计不会增加不必要的信任问题。这意味着,即使我们将任务分散到不同的模块中,但每个模块之间的协作仍然是安全和可靠的,不会引入额外的信任风险。例如,专注于执行的 Rollup 比常规链提供更大的可扩展性。但它们通过依赖以太坊来达成共识和数据可用性,从而实现了高度的安全性。
2. 启动新的区块链
启动或创建一个新的区块链是一个复杂的过程,特别是在确保其安全性方面。例如,对于基于权益证明(Proof-of-Stake)的区块链,为了保证网络的去中心化特性,可能需要广泛地分发代币,以确保没有任何一个实体或个人控制过多的代币。而对于基于工作证明(Proof-of-Work)的区块链,为了确保网络的安全,可能需要吸引足够多的矿工参与,以防止某一小部分实体或个人控制过多的计算能力,从而操纵网络。
但如果我们可以通过模块化的方法简化这个过程呢?模块化允许开发者只关注区块链的某些特定功能,比如执行交易,而将其他任务,如保证网络的安全性,交由其他预先设计好的模块来完成。这种方式可以使新的区块链更快、更容易地启动,并减少可能的设计和实施错误,因为它们可以利用已经被证明是有效和安全的模块。
3. 灵活性
模块化为区块链提供了单一链简单无法提供的灵活性。比如,比特币对去中心化和安全性的重视自动地排除了扩展性,而高吞吐量的链经常牺牲一定程度的去中心化和安全性。
专门为特定目的(如提高效率、安全性等)设计的模块化区块链在进行各种权衡(比如在安全性和扩展性之间)和在设计的具体实现上都提供了更多的灵活性。这种设计可以更好地满足各种不同的需求和场景。例如,在一个模块化的区块链系统中,可能有一些链特别设计用来处理安全性和数据的可用性,这两个是区块链的关键功能。而其他链则可能专门设计来处理交易的执行等操作。以下是它们如何从模块化设计中受益:
安全性和数据可用性层从额外的扩展性中受益,因为交易是单独处理的。它只需要确保链下执行的有效性并保证链下数据的可用性。这就是以太坊如何从使用 rollups 中受益的可扩展性。
执行层是为了效率而优化的,但它仍然可以借助于以太坊的去中心化和安全性特点来保证其操作的安全。这就是 Layer2 如何从以太坊的去中心化中受益。
模块化区块链的缺点是什么?
模块化区块链设计有以下缺点:安全性、复杂性和代币价值。
1. 安全性
与单一链不同,模块化链不能保证其自身的安全特性。如果安全层(通常处理共识和数据可用性)不有效,模块化链面临失败的风险。
2. 复杂性
实施模块化区块链设计引入了新的复杂性。例如,以太坊的数据分片计划依赖数据可用性采样,以确保一个分片上的节点不扣留数据。同样,执行层必须要求某些复杂的机制,如欺诈证明和有效性证明,这允许安全层执行链下状态转换的有效性。
3. 代币价值
有些模块化的区块链,由于其功能或应用场景有限,可能不太能够吸引人们对其原生代币产生兴趣或看到其价值。举例来说,如果一个模块化区块链层只负责共识和数据的可用性,并不涉及其他功能,那么它的代币(utility token, 即用于特定功能或服务的代币)可能不会像那些同时具备执行功能的区块链那样受到关注或使用。由于其功能单一或有限,可能也会使得吸引用户或参与者加入这个网络变得更加困难。
有哪些模块化区块链的例子?
以太坊
如前所述,以太坊依赖于数据分片和以 Rollup 为中心的计算,使其成为一种模块化链。在分片下,它将共识和数据可用性进行了分离,在 Rollup 下外包了执行。
Celestia 和 Polygon Avail
Celestia 和 Polygon Avail 是两个新的主要关注共识和数据可用性的模块化区块链。Celestia 和 Polygon Avail 的节点只负责存储和排序交易,它们不解释执行的交易数据。预计这些链将为其他执行层(例如,rollups)提供数据可用性层。
Validiums
Validium 类似于 ZK Rollup:它在链下执行交易,并与有效性证明一起(批量)提交给父链。不同之处在于,Validium 链在其他地方存储链下数据,而不是父链。这可以通过数据可用性委员会(data availability committee )或由权益证明验证者组成的数据可用性网络来实现(Celestia 是基于 PoS 的数据可用性网络的一个例子)。
Validium 的模块化堆栈如下:
执行层(Validium 链)
结算和安全层(父链)
数据可用性和共识层(DAC 或 PoS 验证者网络)
Rollups
如前所述,Rollup 设计(op Rollups 和 zk Rollup)采用了模块化方法。运行 Optimistic 虚拟机或运行 zkEVM 的 ZK-rollup 充当执行层(执行智能合约、处理交易)。然而,它们依赖于以太坊来执行其他功能:
数据可用性和共识:Rollups 将交易数据发布到以太坊主网作为 CALLDATA。这允许任何人执行 Rollup 的交易并在必要时重建其状态。
结算:所有 Rollup 交易都在以太坊上最终确定。对于 zk rollups,这发生在验证零知识证明之后。op Rollup 用户等待挑战期结束,或者在欺诈证明计算后确定交易有效。
什么是单一区块链?
“单一”这个词是用来描述某些东西是由一个完整的部分组成的,没有其他独立的模块或部分。在这里,“单一”用于描述那种所有功能和任务都在同一个结构内完成的区块链,而不是分散在不同的模块或层中。在单一区块链中,所有的主要功能,如达成交易共识、确保交易数据的可用性和执行交易等,都是由区块链网络中的节点来完成的。而且,因为这些交易是直接在这个链上被验证和确认的,所以这种区块链也同时扮演了交易的结算层的角色。
单一区块链是如何工作的?
在被称为“单一链”的区块链中,所有的功能和任务(如验证交易、存储数据等)都是在一个统一的层次或结构中完成的。也就是说,这种区块链不是由多个独立的模块或层组成,而是所有的功能都紧密集成在同一个结构中。
然而,即使有一些区块链网络由多个链组成并且它们在同一层次上协同工作,但这并不意味着它们采用了“模块化”的设计。比如说,Polkadot 的平行链和 Avalanche 的子网就是这样的例子。尽管它们由多个链组成并在同一层上操作,但是因为这些链都执行所有的功能和任务,而不是各自专注于某一特定功能,所以它们并不被认为是模块化的架构。
为了理解单一链是如何工作的,我们将使用比特币协议作为例子:
一个比特币节点从另一个节点接收交易,验证签名,并确保它满足共识规则。
如果交易有效,节点将其添加到内存池(否则,它将放弃交易)。
矿工从内存池中取出交易并将其添加到候选块中。
如果矿工成功地找到候选块的随机数(如工作量证明规则所规定的),他们可以向节点广播该块。其他节点重新执行交易以确保有效性,如果一切都被批准,就将新块添加到链中。
其他矿工重复此过程,最终通过在先前添加的块上构建新块来增加链。
这里展示了如何在单一的链上执行交易。来源:Euromoney
单一区块链的架构
前面的部分描述了一个工作量证明链上的交易工作流程,但它如何转化为单一架构呢?以下是一个单一链上的节点为每笔交易所做的事情列表:
数据可用性:每个节点都持有整个区块链的一个副本并存储每一笔交易。一个节点总是可以从其它节点请求交易数据。
执行:所有节点重新执行交易以检查其有效性。在基于账户的区块链上(通常是支持智能合约的那种),节点执行交易以计算新的网络状态。
共识:节点们达成共识,决定新块中将处理哪些交易以及它们所包含的交易的顺序。
结算:结算要求将交易永久性地提交到链的历史记录中。提议交易的节点必须对区块的完整性进行经济性的抵押。对于工作量证明的区块链,这种“抵押”是用于挖掘新块的能源开销,而对于权益证明的区块链,则要求验证者对区块的有效性进行代币抵押。这些代币可以从尝试向链中写入错误或不准确交易的恶意行为者那里没收。
单一区块链架构要求节点执行所有这些角色。这与模块化链不同,后者将执行与结算、共识和数据可用性分开。
单一区块链与模块化区块链的对比。来源:Celestia
单一区块链设计的好处是什么?
单一区块链设计提供了以下好处:安全性、实用性和简单性。
1. 安全性
单一区块链具有能够加强自己安全性的优势。节点可以查看在链上执行的交易并在达成共识之前检查其有效性。由于区块链数据在多个节点上冗余存储,因此解决数据可用性问题也很简单。
2. 实用性
除了其他职责外,还处理执行的单一区块链具有更好的价值主张。随着用户购买用于多种用途的本地代币,它长期内可以积累更多的价值。
3. 简单性
单一区块链更容易设计和实现,因为开发者可以借鉴多年的区块链技术实验。设计安全高效的模块化链需要更高级别的技能,并在设计过程中引入更多的考虑因素。
单一区块链的缺点是什么?
单一区块链设计有以下缺点:执行效率低、资源限制、灵活性、可扩展性、安全性和去中心化。
执行效率低:单一链上的节点必须重新执行交易以验证有效性。
资源限制:节点的资源限制,如存储和带宽,会影响区块链的效率。
灵活性:单一链是不灵活的,不能在不牺牲其他优势的情况下进行优化。
可扩展性:为了实现更高的吞吐量,单一链实现了更快的区块时间和更大的区块大小。这对节点施加了更高的硬件要求,并减少了可以验证链的节点数量,导致中心化和更大的安全风险。
安全性和去中心化:为了实现高度去中心化,单一区块链限制了区块时间和区块大小。这增加了验证节点的数量,但每个节点处理交易导致吞吐量降低。
状态膨胀:在链上存储交易数据会导致区块链的大小随时间指数增长。这可能对节点施加更高的硬件要求并损害去中心化。
单一区块链的例子
比特币
比特币是最初的单一链,每个节点都需要验证所有的交易。尽管这增加了去中心化和安全性,但它限制了比特币支持高吞吐量或扩展以接受更多用户的能力(比特币区块链每秒处理 5-7 笔交易)。
以太坊1.0
没有分片和 rollups 的以太坊作为一个单一链存在。交易速度很慢(每秒 15-20 笔交易)和有比较强的去中心化和安全性。
Solana
Solana 是另一个单一链,它在一个位置处理执行、数据可用性和共识。与以太坊不同,Solana 针对可扩展性进行了优化,并声称每秒可达到 65,000 笔交易的速度。不出所料,这些可扩展性的好处是以去中心化和安全性为代价的,尤其是运行验证节点的硬件要求很高,许多验证者在裸机环境中运行,而不是云基础设施。
如何选择:单一区块链 vs 模块化区块链
单一区块链和模块化区块链都有其优势和劣势。选择其中任何一个选项都需要理解你的项目需求和可以接受的权衡。一个高价值的 DeFi 应用可能会选择单一链的安全保证,而需要更便宜、更快速操作的项目(例如高频交易)可能更适合于为执行优化的模块化链。
原文链接:https://www.alchemy.com/overviews/modular-vs-monolithic-blockchains
编译:Modular 101
关注 Modular 101
专注探索模块化区块链,带你了解 Web3 的新范式!