模块化区块链或成为区块链被广泛工程化与实践的基础。
撰文:msfew@Foresight Ventures
如果你读了上一篇我所写的 Rollup 的文章,那么很可能会发现在 Optimistic 和 zk Rollup 的终局对比部分,有意无意地被留了一个坑。
当时得出的结论是:因为没有 Proving Overhead,Optimistic Rollup 在长远视角下会远胜于 zk Rollup。但是其实在不同时间段的发展上,Optimistic 和 zk Rollup 的性能实际上会交替领先:
不同阶段不同类型的 Secured Rollup 有不同的瓶颈,而现在对它们来说,最主要的问题还是以太坊目前所提供的数据可用性方案限制了它们顶峰的理论性能。
为了解决现阶段 Rollup 的这个性能问题,我们有两种方法:
我们现在所指的那些 Secured Rollup (Arbitrum 等),其实就是模块化区块链的一种实现,未来会有更多不同的模块化区块链实现,或者说不同变种的 Rollup。
以太坊的 Rollup 路线体现了区块链的模块化趋势,让区块链的层级分离,各司其职,让网络能够 Rollup 起来。
之前 Rollup 的文章提到了扩容的两条路线,一条是升级区块链本身,另一条是用 Rollup 的方式来更好地使用区块链。
模块化区块链组合了两条路线,1+1 > 2,彻底切换了区块链的单体架构,让新的模块化区块链网络成为 Rollup 最适合生长的土壤,且赋予这些 Rollup 方案更多的模块选择和更高的性能。
一个区块链可以拆分为两个层级,共包括四个模块:
安全层:保证区块链的安全性。
执行环境层:提供区块链的执行环境。
其中对于每个层级来说,两个模块采用同一方案的安全性更高,信任假设更少,如结算和执行均采用以太坊的安全性 > 仅结算采用以太坊,执行采用 Arbiturm 环境的安全性。
单体区块链的代表有 Ethereum 本身,Solana,Binance Smart Chain 等,Secured Rollup 的代表有 Arbitrum,Optimism 等,DA 层的代表有 Celestia 的 DA,Polygon Avail 等。
如果将区块链的模块和计算机结构进行类比,那么:
后续文章中,我们会称这些 「模块」 为 「层」,但是它们实际上是模块。
我们可以从 Web 的发展中借鉴出区块链未来的模块化发展路线:
区块链网络其实是一个更去中心化和更稳定的集群,让节点集合算力,形成遍布全球的大型可信计算机。
而区块链的模块化划分非常像 Web2 中的分布式系统 (不等于分布式数据库的分布式)。它本质上是把业务进行拆分,与下图 Uber 的架构类似,模块各司其职。
Web2 的分布式系统和 Web3 的区块链的模块化带给我们两个需要思考的问题:
拆分的问题已经被清晰定义,但连接的问题对模块化架构有所影响。该如何将安全性和用户体验提升或许是模块化区块链需要解决的问题。
模块化区块链将单体区块链解耦后,新网络结构 = 多个类似 Arbitrum 和 StarkEx 的不同 Rollup + 一个类似以太坊的底层主网。
它们提升的重点主要是,不用再通过因为共识与 DA 耦合的传统单体区块链导致的 Proof of Replication 来验证和保证 DA (限制性能和极大程度上提升全节点大小影响去中心化)。
这意味着模块化区块链网络不用再去卷单体区块链的共识了,而是解耦后直接使用专门层处理 DA,在主网安全的优先级下,减少多余算力和存储的浪费,提升吞吐量,跳过共识问题瓶颈,从而将千级或万级的 TPS 进一步提升。
除了整体性能可以突破瓶颈,跨越到下一个时代,模块化区块链还有什么显著的好处?
更好的区块链
开发上的可组合性
模块化的区块链网络其实可以构建出非常多类型的 「链」 的实践,主要有三个大类和无数细分小类:
这三个模块化区块链和单体区块链的大方向不同,特色也各不相同:
模块化区块链的时代到来之后,L1 和 L2 的传统概念或许要被重新定义。
除此之外:
未来,或许每个应用会选择成为一个模块化的区块链。
既然 Rollup 不仅保证安全性,还提升性能,那何不让区块链成为 Rollup 的最佳土壤?模块化区块链就是让区块链成为 Rollup 的更好基础层。
Rollup 让大家关注了 DA 层对性能的影响,同时 Rollup 的出现也启发了以多个 Rollup 生态为重点的模块化区块链网络概念。模块化区块链让区块链跨越单体时代的共识瓶颈,进入到模块化概念以 DA 为重点的时代。
「Rollup 是将执行层 off-chain,下一步是将 DA off-chain。」
对于模块化的区块链和 Rollup 网络来说,完整数据需要在那里和保证可以被使用,从而确保网络的去中心化和安全性:
Current Data Availability:为什么出块时需要最新的状态根和 tx 数据可用?
因为要出新的块,就需要在 L1 揭露所有这些数据,以便其他节点重新执行从而做到验证,同时这个过程要保证轻客户端的安全 (它们只检查区块头! 不拒绝无效交易)。
Archive Data Availability:区块有效后,tx 数据是否还需要被保留保证可用?
需要。比如你想查看几个月前的一笔交易,或你想从头运行一个节点。
Rollup 与模块化区块链:对于 Rollup 和未来不同的模块化区块链实践来说,Current Data Availability 意味着什么?
Optimistic Rollup:出新块时需要状态根数据可用,来被验证,挑战期内需要 tx 数据可用来使挑战 Sequencer 可行,保证安全性。
zk Rollup:Sequencer 跑路情况下,需要状态根数据来重建状态和取出资金。
最新数据的可用性影响着网络本身的安全性和性能。
当我们说到 DA 时,通常所指的都是它。
单体区块链时代:
模块化区块链时代:
存档数据的可用性仅影响网络本身外的如区块链浏览器等的基础设施,可能对网络本身来说是个可选项,但是对用户的使用来说必须具备。
我们首先要说明的主要是,Arweave 或 Filecoin 的 Web3 存储方案无法为 Current Data Availability 提供直接的 DA:
除此之外,Arweave 和 Filecoin 依然是单体区块链的多副本冗余模式保证数据可用,难以建立高效的采样机制。
虽然它们不适合作为 「内存」 为最新数据提供可用性,但适合作为 「硬盘」 为存档数据提供可用性。目前 Web3 仍然缺少一个更模块化更专注的专用 「硬盘」。
我们现在就作为一个万级 TPS 项目的架构师,来为我们的应用做一些抉择,组合出合适的应用链。
DA 层是最近大家非常关注的方向。但是从我们的抉择图来看,其实没有很大概率去连续做 「对」 那么多先置选择,最终进行到 DA 的选择。
除了项目最可能采用的自建私有 DAC (性能 + 主权) 或侧链 DA 方案以外,DA 方案基本有三种选择思路:
DA 方案的商业格局基本会是这样:
如果把模块化区块链比作一个高度分工化的厨房,区块链的性能是上菜速度,那么吞吐量更大的 DA 层就是更大的锅,更好的执行环境就是更熟练以及会做更多菜系的厨子。
执行层方案也基本上有这么几种选择:
对于执行层来说,我认为 EVM 依旧会因为生态优秀而保持未来的主导地位。
对于前沿执行层方案的价值捕获来说,它们自己可以被很容易组合成 Optimistic Rollup,形成应用生态,因此在价值捕获上,它们相比 DA 层有天然的优势。
对于模块化区块链来说,共识层需要:
于是我们剩下的合适的选择不多了:
DA 层:状态爆炸问题让网络的准入门槛过高,削弱了网络的去中心化。我们在 DA 那一段所阐述的 statelessness 仅仅是 weak statelessness,也就是只有出块者需要存储状态数据,后面还需要更多优化,让所有的节点都不需要存储全部状态数据。
执行层:目前的模块化分工仅仅是开了许多个执行层 (Sharding),而当某个执行层满载后,它的性能依然无法满足 Web3 需求。那么我们所需要拓展的就更多是单个执行层的性能 (Parallelization),如 Fuel 和 Solana。
App-chain 的需求到底有多少?
目前只有热门应用才会有 App-chain 的需求。我们或许需要 onboard 更多用户,才会激发对模块化方案的真正大量需求。
同时,我们也看到了无数多的模块选择,最后到底哪些能真正被积极使用也是一个需要探索和筛选的过程。
模块化有两个方面,拆分和连接:
一个分散的模块化系统可能仅仅因执行层不同就导致用户体验与资金的割裂,同时它是否会由于开发工具的不同,导致开发者体验的割裂?MEV 如何处理?
类似 Apple 从 Intel 芯片到 m 系列 SoC 的转变,模块化区块链较为割裂的架构是否会在几年之后因为生态或体验等问题重新统一,单体区块链是否会重回主导地位?模块化区块链是否会出现类似 Cosmos IBC 一样的互通协议?
目前模块化区块链只跑出了冰山一角,但已经非常繁荣,有各种基于以太坊的 Secured Rollup,Cosmos,Polkadot,Subnet 等。
比特币是区块链的概念,以太坊是区块链的实践,而模块化区块链会是区块链被广泛工程化与实践的基础。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。