模块化区块链的概念
模块化区块链是专注于处理少数职责并将其余部分外包给一个或多个独立层的区块链。模块化区块链可以用于处理以下单个任务或组合任务:
执行:支持交易的执行并实现与智能合约的部署和交互。
数据可用性:保证交易数据的可用性。
共识:准许交易的内容和顺序。
结算:用于完成交易、解决争议、验证证明以及在不同执行层之间进行桥接。
模块化链通常执行两个或多个相互依存的功能。例如,数据可用性层必须就数据排序达成共识,否则不可能知道哪些数据代表了历史记录的正确版本。
模块化区块链设计的优点
可扩展性:在区块链中使用模块化可以增加规模,而不会引入有害的信任假设。
便于启动新区块链:通过利用模块化设计,新的区块链可以更快地被启动,同时也不必担心架构的每个方面都要保持正确。
灵活性:专门构建的模块化链为权衡和设计实现提供了更多的选择。例如,模块化区块链系统可能包括关注安全性和数据可用性的模块化链,而其他的则关注执行。
模块化区块链设计的缺点
安全性:与单片链不同,模块化区块链不能保证其自身的安全质量。如果用于处理共识和数据可用性的安全层无效,则模块化区块链将面临失败风险。
复杂性:实施模块化区块链设计引入了新的复杂性。例如,以太坊的数据分片计划依赖于数据可用性采样,以确保某一条分片上的节点不隐瞒数据。同样的,执行层必须创建某些复杂的机制,例如欺诈证明和有效性证明,以使安全层可以保证链下状态过渡的有效性。
Token价值:由于应用程序有限,一些模块化区块链的原生token可能无法吸收价值。例如,与执行层相比,仅专注于共识和数据可用性层的实用程序token用途很少,因此要吸引参与者进入此类网络也可能更加困难。
以太坊的模块化形式:分片和rollup
像比特币等第一代区块链一样,以太坊最初也被设计为单片区块链。但是,为了增强网络性能、提高可扩展性和可持续性,以太坊网络目前正在向模块化框架过渡。
分片是将系统(例如数据库)分成多个部分来运行的过程。通过跨多个组件的功能分配,系统可实现更多的输出和效率。在区块链网络中,分片将区块链分成多条子链,由子链来处理不同部分的网络活动。
在以太坊的分片设计中,64条分片链将平行运行。分片可以平行处理交易(执行分片),也可以用于存储不同部分的区块链数据(数据分片)。 使用数据分片,以太坊节点将只存储在其分片链上发布的数据 — — 这与当前结构相反,当前结构需要所有节点存储相同的数据。
以太坊的信标链和分片链之间的关系
分片是一种模块化形式,由不同的组件(分片链)处理不同的职责。在数据分片中,分片链存储以太坊数据的不同部分,而执行分片使每条分片链都可以处理自身的一组交易,从而增加了数据吞吐量并减少了处理时间。
一些开发人员采用了以rollup为中心的方法来扩展以太坊。与纯链下扩展解决方案(例如侧链)不同,rollup与主链紧密结合。在保留结算、共识和数据可用性的前提下,以太坊区块链将计算外包给rollup。由于以太坊充当L2 rollup的基础层,rollup可以在不损害去中心化或安全性的同时通过更快的区块时间和更大的区块去积极地优化执行。
以太坊(L1基础层)和rollup(L2)在模块化区块链体系结构中的功能
以太坊的模块化技术堆栈发展进程
以太坊的模块化技术堆栈发展进程如下:
1. 单片区块链:代表着以太坊L1或主链,本身是一个单片区块链。
2. Rollup:充当执行层的L2解决方案,例如Arbitrum和Optimism,将执行层从以太坊L1移出,发布state roots和rollup数据并传回给以太坊L1。
3. 模块化rollup:具有模块化数据可用性的rollup。
以太坊的模块化L2技术堆栈可以在保留高水平的安全性和去中心化的同时提供可扩展性。 这种强大的组合为以太坊为更高效、更可持续的区块链生态系统奠定基础。
单片区块链
单片区块链是以太坊的原始运行形式,无需使用rollup或数据分片即可处理所有内容。这种单片架构安全性最高,但需要付出高成本和可扩展性有限的代价。因此,以太坊主网的交易速度相对较慢,平均TPS只能达到15–20。目前,以太坊正逐渐转变为模块化区块链,主要通过采用以rollup为中心的计算和数据分片策略来完成这一过程。
Rollup
Rollup是模块化区块链中最早的技术突破,它提供了一个用于执行的单独层,扩展了以太坊的单片体系结构。Rollup可以将区块链的执行层安全地抽象到排序器,即在定期将压缩数据传回以太坊主网进行验证之前使用强大的计算机来打包和执行多个交易。Rollup通过将此计算过程转移到以太坊链下,可以使TPS提高20–50倍。
在当前的情况下,rollup扮演着执行层的角色,处理交易,同时外包结算、共识和数据可用性。例如,利用Optimistic虚拟机的optimistic rollup以及运行zk EVM的ZK rollup。这些rollup执行智能合约和处理交易,但仍然依靠以太坊来进行以下操作:
结算:所有rollup交易均在以太坊上完成。Optimistic rollup的用户需等到挑战期通过,或者在防欺诈计算后认定交易被视为有效之后。zk rollup用户需等到验证有效性得到证明之后。
共识和数据可用性:rollup以CallData的形式将交易数据发布到以太坊主网,使任何人都可以执行rollup交易并在需要时重建其状态。在最终确定性(finality)之前,Optimistic rollup需要大量的区块空间和7–14天的挑战期。Zk rollup将可用于验证的数据保存30天,提供即时最终确定性,但需要大量的处理能力来创建证明。
由于有以太坊作为rollup的基础层,rollup可以在不损害去中心化或安全性的同时允许更快的区块时间和更大的区块。Rollup可以说是以太坊新时代的开始。近期Arbitrum和Optimism的总交易已经超过以太坊的交易数,这反映了以太坊的模块化趋势。
模块化rollup
较新的模块化rollup将数据可用性层移出以太坊。例如Mantle,它仍然依靠以太坊的结算和共识,但是利用Mantle DA作为数据可用性层。Mantle DA进行数据排序并提供数据证明,但无需执行交易;执行交易被有效地外包给Mantle的执行层。
此前,以太坊是rollup的唯一数据可用性解决方案,导致其在成本方面面临挑战。数据可用性是大多数rollup的最大成本来源,特别是储存以太坊上的交易数据,可占到多达70%的费用。而且,这一成本是变化的,并且成本与使用率成比例地增加,随着越来越多用户加入,逐渐构成了重大障碍。到目前为止,只有具备大量资源的大型rollup才能容纳规模较大的用户群。
值得庆幸的是,以太坊正在发生变化,并且以数据可用性层的形式出现了新的模块化解决方案,以减少交易数据提交成本。数据可用性层的主要范例包括EigenDA,Celestia以及Avail,它们都致力于解决数据可用性问题,对rollup的局限性提供了潜在的解决方案。
模块化的未来
在过去的十余年里,区块链领域在应对可扩展性挑战时经常陷入一个怪圈 — — 由于以太坊的高成本和局限性,不断去创建新的L1区块链。但是,以太坊的高费用其实并不是不可解决的bug。
在L2解决方案逐渐成为大众采用规范的世界中,模块化区块链通过将执行、结算、共识和数据可用性层划分来变革区块链的架构。当单片区块链受困于可扩展性之时,模块化体系结构的潜力将得到释放。
随着数据可用性层发展和竞争,对于新的rollup而言,进入门槛和障碍将大大降低。在不远的未来,由于数据可用性成本的降低和模块化功能的进一步完善,在OP或ZK堆栈上的应用程序很可能会出现繁荣景象。