区块链:「合久必分」模块化区块链与数据可用性层

作者:msfew@ForesightVentures

Rollup的瓶颈

如果你读了上一篇我所写的Rollup的文章,那么很可能会发现在Optimistic和zkRollup的终局对比部分,有意无意地被留了一个坑.

当时得出的结论是:因为没有ProvingOverhead,OptimisticRollup在长远视角下会远胜于zkRollup.但是其实在不同时间段的发展上,Optimistic和zkRollup的性能实际上会交替领先:

不同阶段不同类型的SecuredRollup有不同的瓶颈,而现在对它们来说,最主要的问题还是以太坊目前所提供的数据可用性方案限制了它们顶峰的理论性能.

为了解决现阶段Rollup的这个性能问题,我们有两种方法:

提升以太坊的主网,等它升级成功,缺点是无法掌握主动权,这或许需要很久时间.

切换Rollup的类型(如换成Validium),直接使用性能更优秀的数据可用性方案,缺点是部分牺牲了安全性.

区块链的模块化

我们现在所指的那些SecuredRollup(Arbitrum等),其实就是模块化区块链的一种实现,未来会有更多不同的模块化区块链实现,或者说不同变种的Rollup.

以太坊的Rollup路线体现了区块链的模块化趋势,让区块链的层级分离,各司其职,让网络能够Rollup起来.

之前Rollup的文章提到了扩容的两条路线,一条是升级区块链本身,另一条是用Rollup的方式来更好地使用区块链.

模块化区块链组合了两条路线,1+1>2,彻底切换了区块链的单体架构,让新的模块化区块链网络成为Rollup最适合生长的土壤,且赋予这些Rollup方案更多的模块选择和更高的性能.

a)两个层级,四个模块

一个区块链可以拆分为两个层级,共包括四个模块:

安全层:保证区块链的安全性.

数据可用性模块(后文中称为DA):保证交易数据可以被使用(保证存储且可验证与可用).

共识模块:决定交易的顺序等(PoW等是防攻击的机制,是共识的基础而不代表共识的全部).

执行环境层:提供区块链的执行环境.

结算模块:结算出状态承诺.

执行模块:计算出单独的状态转换.

其中对于每个层级来说,两个模块采用同一方案的安全性更高,信任假设更少,如结算和执行均采用以太坊的安全性>仅结算采用以太坊,执行采用Arbiturm环境的安全性.

单体区块链的代表有Ethereum本身,Solana,BinanceSmartChain等,SecuredRollup的代表有Arbitrum,Optimism等,DA层的代表有Celestia的DA,PolygonAvail等.

如果将区块链的模块和计算机结构进行类比,那么:

区块链的执行模块?计算机的操作系统(真正执行指令的环境)

区块链的DA模块?计算机的内存(实现短期数据存取)

区块链的结算与共识模块?计算机的CPU(硬件保证指令执行的正确性)

后续文章中,我们会称这些“模块”为“层”,但是它们实际上是模块.

b)从Web的发展中预测模块化趋势

我们可以从Web的发展中借鉴出区块链未来的模块化发展路线:

区块链网络其实是一个更去中心化和更稳定的集群,让节点集合算力,形成遍布全球的大型可信计算机.

而区块链的模块化划分非常像Web2中的分布式系统(不等于分布式数据库的分布式).它本质上是把业务进行拆分,与下图Uber的架构类似,模块各司其职.

Web2的分布式系统和Web3的区块链的模块化带给我们两个需要思考的问题:

拆分:区块链网络已经被简约地拆分为了前文中提到的两个层级和四个模块.

连接:保证模块之间的通信以及安全性.这也就是为什么同源的模块安全性更高,因为不需要额外连接,避免了过程中所暴露的危险.

拆分的问题已经被清晰定义,但连接的问题对模块化架构有所影响.该如何将安全性和用户体验提升或许是模块化区块链需要解决的问题.

c)为什么模块化?

模块化区块链将单体区块链解耦后,新网络结构=多个类似Arbitrum和StarkEx的不同Rollup+一个类似以太坊的底层主网.

它们提升的重点主要是,不用再通过因为共识与DA耦合的传统单体区块链导致的ProofofReplication来验证和保证DA(限制性能和极大程度上提升全节点大小影响去中心化).

这意味着模块化区块链网络不用再去卷单体区块链的共识了,而是解耦后直接使用专门层处理DA,在主网安全的优先级下,减少多余算力和存储的浪费,提升吞吐量,跳过共识问题瓶颈,从而将千级或万级的TPS进一步提升.

除了整体性能可以突破瓶颈,跨越到下一个时代,模块化区块链还有什么显著的好处?

更好的区块链

安全性:Rollup层借用Ethereum等底层安全层的安全性.

执行性能:可灵活采用更快的执行或/和结算模块.

开发上的可组合性

迭代:模块解耦.模块可以进行更激进的提案和更快速的创新.

可插拔:更多的链开发方案和技术栈选择.

d)模块化的不同实现?

模块化的区块链网络其实可以构建出非常多类型的“链”的实践,主要有三个大类和无数细分小类:

Rollup(包含Sovereign或SecuredRollup等,见上一篇文章.如Ethereum/Celestia安全层+执行环境/或仅执行模块.)

Multi-Monolithic(如Tendermint/Substrate安全层+Cevmos栈与RecursiveRollup的执行环境.Celestia本身其实属于这个架构,是Cosmos生态的.)

Subnet(组装最自由的模块化区块链,并非能继承安全性,更偏重部署和开发效率.)

这三个模块化区块链和单体区块链的大方向不同,特色也各不相同:

Rollup:天下武功唯快不破,但是技术进度最慢,最不成熟.

Multi-Monolithic:共享安全性,通信可组合和可互操作,应用链具有主权,但是性能不一定行.

Subnet:秒速部署,方案成熟,但是安全性和去中心化程度不一定行.

Monolithic:“完全的”自由度,但是方案太重,整个系统或许过于耦合.

e)模块化概念的影响?

模块化区块链的时代到来之后,L1和L2的传统概念或许要被重新定义.

单体区块链:L1指以太坊等单体区块链,L2指基于以太坊的安全层与执行模块组合成的Rollup.

模块化区块链:L0指社会共识与对L1的信任假设,L1指模块化区块链的安全层(DA与Consensus),L2指模块化区块链的执行环境层(Settlement与Execution)

除此之外:

性能衡量:从共识的TPS和TTF转变成DA的吞吐量的对比.

定义:需要注意的是,对于如Arbitrum的Rollup来说,Arbitrum网络=Arbitrum的执行环境+以太坊的安全层与结算模块.对于以太坊本身来说,以太坊网络=以太坊执行环境+以太坊的安全层与结算模块.当方案可以被模块化解构时,它们都可以被称为是模块化区块链的一种实践.而如以太坊这样适合做L1的网络,可以被称之为模块化区块链网络.

趋势:当应用想要更多功能,减少运营成本或加强安全性,更大的主权时,应用可以在一篮子的模块中,选择适合自己的方案,从而发展App-chain或App-rollup或App-subnet.

未来,或许每个应用会选择成为一个模块化的区块链.

DA层

既然Rollup不仅保证安全性,还提升性能,那何不让区块链成为Rollup的最佳土壤?模块化区块链就是让区块链成为Rollup的更好基础层.

Rollup让大家关注了DA层对性能的影响,同时Rollup的出现也启发了以多个Rollup生态为重点的模块化区块链网络概念.模块化区块链让区块链跨越单体时代的共识瓶颈,进入到模块化概念以DA为重点的时代.

“Rollup是将执行层off-chain,下一步是将DAoff-chain.”

a)DA是什么?

对于模块化的区块链和Rollup网络来说,完整数据需要在那里和保证可以被使用,从而确保网络的去中心化和安全性:

CurrentDataAvailability:为什么出块时需要最新的状态根和tx数据可用?

因为要出新的块,就需要在L1揭露所有这些数据,以便其他节点重新执行从而做到验证,同时这个过程要保证轻客户端的安全(它们只检查区块头!不拒绝无效交易).

ArchiveDataAvailability:区块有效后,tx数据是否还需要被保留保证可用?

需要.比如你想查看几个月前的一笔交易,或你想从头运行一个节点.

Rollup与模块化区块链:对于Rollup和未来不同的模块化区块链实践来说,CurrentDataAvailability意味着什么?

OptimisticRollup:出新块时需要状态根数据可用,来被验证,挑战期内需要tx数据可用来使挑战Sequencer可行,保证安全性.

zkRollup:Sequencer跑路情况下,需要状态根数据来重建状态和取出资金.

b)CurrentDataAvailability

最新数据的可用性影响着网络本身的安全性和性能.

当我们说到DA时,通常所指的都是它.

单体区块链时代:

DA方案:由于共识与DA没有解耦,因此靠全节点ProofofReplication.

数据在那里:通过一堆全节点复制完整数据来保证.

数据可用:通过线性复杂度下载完整数据来验证数据可用.

tx有效性:通过重新执行来验证tx的有效性.

问题:冗余过多,且若节点平均只存储一部分数据,丢数据的概率很大(和生日悖论类似).

模块化区块链时代:

DA方案:专门的独立DA解决方案.

数据在那里:通过纠删码(CD和卫星所采用的数据保护方案)保证数据可用.

数据可用:通过数据可用性采样来在sublinear时间内验证,如只需下载1%的区块数据即可得到99%的区块可用保证.

tx有效性:通过错误编码证明(类似Optimistic机制)或者多项式承诺甚至直接上有效性证明(我们通常称之为zk证明)确保纠删码编码正确,tx有效.

c)ArchivedDataAvailability

存档数据的可用性仅影响网络本身外的如区块链浏览器等的基础设施,可能对网络本身来说是个可选项,但是对用户的使用来说必须具备.

我们首先要说明的主要是,Arweave或Filecoin的Web3存储方案无法为CurrentDataAvailability提供直接的DA:

Arweave:SPoRA.实质上是种摩尔定律假设和经济模型下的概率性存储(当然一切皆概率…).使用中通常需要等十多个区块才能确认数据“永存”,无法很好保证即时DA.

Filecoin:PoSt.点对点的分布式存储网络.进行数据存储的矿工可以扣留数据,无法保证去中心化以及DA.

IPFS:主要还是作为基础设施存在,在PolygonAvail和Celestia的DA的网络层中都有使用.

除此之外,Arweave和Filecoin依然是单体区块链的多副本冗余模式保证数据可用,难以建立高效的采样机制.

虽然它们不适合作为“内存”为最新数据提供可用性,但适合作为“硬盘”为存档数据提供可用性.目前Web3仍然缺少一个更模块化更专注的专用“硬盘”.

模块化区块链的选择

我们现在就作为一个万级TPS项目的架构师,来为我们的应用做一些抉择,组合出合适的应用链.

a)DA层生态

DA层是最近大家非常关注的方向.但是从我们的抉择图来看,其实没有很大概率去连续做“对”那么多先置选择,最终进行到DA的选择.

除了项目最可能采用的自建私有DAC(性能+主权)或侧链DA方案以外,DA方案基本有三种选择思路:

最高的安全性:与共识层一致,比如DA与共识均采用以太坊或Celestia.

极致的吞吐量:牺牲安全性,增加额外信任假设,比如链下数据委员会(安全性和多签一样,差).

两者兼具:通过Restaking模式,得到高安全性与高吞吐量,比如DataLayr.

DA方案的商业格局基本会是这样:

商业模式:面向应用链,通过提供DA收取应用链支付的“保护费”.

竞争:DA的方案强弱其实就是两个层面的对比:安全性与吞吐量.且吞吐量的更优者很容易获得压倒性的胜利.

价值捕获:由于实际中并没有太多实例来进行分析对比,因此我们可以思考以下问题:如果DA层市值远低于应用链(像Chainlink和DeFi应用的关系),整个协议是否因此有安全性短板?单单DA层无法形成完整应用生态,代币如何捕获价值?

b)执行层生态

如果把模块化区块链比作一个高度分工化的厨房,区块链的性能是上菜速度,那么吞吐量更大的DA层就是更大的锅,更好的执行环境就是更熟练以及会做更多菜系的厨子.

执行层方案也基本上有这么几种选择:

现有成熟方案:EVM及其ZK或OP变种,WASM及其各种变种等.

未来前沿方案:FuelVM(工作流程如下图中下方,因此更快),AltLayer等.对于执行层来说,我认为EVM依旧会因为生态优秀而保持未来的主导地位.

对于前沿执行层方案的价值捕获来说,它们自己可以被很容易组合成OptimisticRollup,形成应用生态,因此在价值捕获上,它们相比DA层有天然的优势.

c)共识层生态

对于模块化区块链来说,共识层需要:

安全性优先:保证底层的稳定和安全性.

智能合约环境:方便链上验证各种输出.

社会与经济共识:需要是“德高望重”的大公链,这样才不用额外的信任假设.

于是我们剩下的合适的选择不多了:

完全合适:Ethereum,Cosmos等.

勉强合适:Bitcoin,Arweave(两者链上无图灵完备的智能合约,结算在应用链进行)等.

不太合适:Solana(网络不是特别稳定)等.

可能最合适:未来的Celestia,未来的Ethereum.

模块化方案的思考

a)进一步探索

DA层:状态爆炸问题让网络的准入门槛过高,削弱了网络的去中心化.我们在DA那一段所阐述的statelessness仅仅是weakstatelessness,也就是只有出块者需要存储状态数据,后面还需要更多优化,让所有的节点都不需要存储全部状态数据.

执行层:目前的模块化分工仅仅是开了许多个执行层(Sharding),而当某个执行层满载后,它的性能依然无法满足Web3需求.那么我们所需要拓展的就更多是单个执行层的性能(Parallelization),如Fuel和Solana.

b)需求与供给

App-chain的需求到底有多少?

目前只有热门应用才会有App-chain的需求.我们或许需要onboard更多用户,才会激发对模块化方案的真正大量需求.

同时,我们也看到了无数多的模块选择,最后到底哪些能真正被积极使用也是一个需要探索和筛选的过程.

c)安全性

模块化有两个方面,拆分和连接:

拆分是否会导致整个区块链网络具有短板?将攻击其短板所需的资金大量降低,作为像Curve池的引线角色一样引爆Luna那样的惨剧?

一个系统越复杂,所暴露的可被攻击的地方也就越多.模块间的“连接”是否存在被攻击的可能(当然Rollup桥其实比IBC桥还要安全)?(之前的文章中我们对可组合性的危险发表了看法)

d)体验

一个分散的模块化系统可能仅仅因执行层不同就导致用户体验与资金的割裂,同时它是否会由于开发工具的不同,导致开发者体验的割裂?MEV如何处理?

e)分久必合

类似Apple从Intel芯片到m系列SoC的转变,模块化区块链较为割裂的架构是否会在几年之后因为生态或体验等问题重新统一,单体区块链是否会重回主导地位?模块化区块链是否会出现类似CosmosIBC一样的互通协议?

总结

目前模块化区块链只跑出了冰山一角,但已经非常繁荣,有各种基于以太坊的SecuredRollup,Cosmos,Polkadot,Subnet等.

比特币是区块链的概念,以太坊是区块链的实践,而模块化区块链会是区块链被广泛工程化与实践的基础.

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:31ms0-2:584ms