模块化区块链中,执行层和共识层已是红海市场,数据可用性层的价值仍然有待被发掘。
原文标题:《IOSGWeeklyBrief|拆解数据可用性层:模块化未来中被忽视的乐高积木#136》?
撰文:Jiawei,IOSGVentures
tl;dr
对于轻客户端的数据可用性,采用纠删码来解决该问题几乎没有异议,不同点在于如何确保纠删码被正确编码。PolygonAvail和Danksharding中采用了KZG承诺,而Celestia中采用了欺诈证明。
对于Rollup的数据可用性,如果把DAC理解为联盟链,那么PolygonAvail和Celestia所做的就是使数据可用性层更加去中心化——相当于提供「DA-Specific」的公链,以此提升信任级别。
未来的3至5年内,区块链的架构必然由单体化向模块化演变,各层呈现低耦合状态。未来可能出现Rollup-as-a-Service、DataAvailability-as-a-Service等许多模块化组件的提供商,实现区块链体系结构的可组合性乐高。模块化区块链是支撑下一个周期的重要叙事之一。
模块化区块链中,执行层已经「四分天下」,后来者寥寥;共识层逐鹿中原,Aptos和Sui等崭露头角,公链竞争格局虽未尘埃落定,但其叙事已是新瓶装旧酒,难以寻找合理的投资机会。而数据可用性层的价值仍然有待被发掘。
模块化区块链?ModularBlockchain
在聊数据可用性之前,我们先花点时间对模块化区块链进行简要回顾。
图片来源:IOSGVentures,据PeterWatts改制
关于模块化区块链的分层暂无严格定义,一些分层方式从以太坊出发,另一些则偏向通用化的视角,主要看在何语境下进行讨论。
执行层:两件事发生在执行层。对单笔交易而言,执行交易并发生状态更改;对同批次的交易而言,计算该批次的状态根。当前以太坊执行层的一部分工作分给了Rollup,即我们熟知的StarkNet、zkSync、Arbitrum和Optimism等。
结算层:可以理解为主链上的Rollup合约验证状态根的有效性或欺诈证明的过程。
共识层:无论采用PoW、PoS或其他共识算法,总之共识层是为了在分布式系统中对某件事达成一致,即对状态转换的有效性达成共识。在模块化的语境下,结算层和共识层的含义有些相近,故也有一些研究者把结算层和共识层统一起来。
自Ripple案判决以来,XRP交易量占所有加密交易量的21%:金色财经报道,据Kaiko提供的数据,XRP已经超越比特币成为交易量最高的资产。自Ripple案件作出简易判决以来,XRP交易量占所有加密货币交易量的21%。与此同时,比特币占加密货币交易总量的20%,以太坊(ETH)仅占总交易量的8%。[2023/7/18 11:00:24]
历史状态层:由Polynya提出。因为在引入Proto-Danksharding之后,以太坊只在一定时间窗口内维护即时数据可用性,之后则进行修剪操作,把这项工作交给其他人。例如PortalNetwork或是其他存储这些数据的第三方可被归类于这一层。
数据可用性层:数据可用性存在什么问题?对应的解决方案各自是什么?这是本文要集中讨论的问题,在此先不对它进行概括。
图片来源:IOSGVentures
回到18、19年,数据可用性更多在于轻客户端节点的语境;而在之后的Rollup角度下数据可用性又有着另一层含义。本文将分别从「节点」和「Rollup」的两个不同语境来解释数据可用性。
DAinNodes
图片来源:https://medium.com/metamask/metamask-labs-presents-mustekala-the-light-client-that-seeds-data-full-nodes-vs-light-clients-3bc785307ef5
我们首先来看全节点和轻客户端的概念。
由于全节点亲自下载和验证每个区块中的每笔交易,因此不需要诚实假设来确保状态被正确执行,有着很好的安全性保证。但运行全节点需要存储、计算能力和带宽的资源要求,除了矿工以外,普通用户或者应用没有动力去运行全节点。况且,如果某个节点仅仅需要在链上验证某些信息,运行全节点显然也是非必要的。
这是轻客户端在做的事情。在IOSG的文章「多链生态:我们的当前阶段与未来格局」中我们简要介绍了轻客户端。轻客户端是区别于全节点的一种说法,它们往往不与链进行直接交互,而依赖邻近的全节点作为中介,从全节点请求所需要的信息,例如下载区块头、或是验证账户余额。
ETH 2.0总质押数已超1803.49万:金色财经报道,数据显示,ETH 2.0总质押数已超1803.49万,为18034918个,按当前市场价格,价值约333.64亿美元。此外,目前ETH 2.0质押总地址数已超57.99万,为579909个。[2023/4/9 13:53:11]
作为节点的轻客户端可以很快地同步整条链,因为它只下载和验证区块头;而在跨链桥模型中,轻客户端又作为智能合约——目标链的轻客户端只需要验证源链的代币是否被锁定,而无需验证源链的所有交易。
问题出在哪?
这样存在一个隐含问题:既然轻客户端只从全节点那里下载区块头,而不是自己下载和验证每笔交易,那么恶意的全节点可以构造一个包含无效交易的区块,并把它发送给轻客户端来它们。
我们容易想到采用「欺诈证明」来解决这个问题:即只需要1个诚实的全节点监测区块的有效性,并在发现无效区块后构造一个欺诈证明、将其发送给轻客户端来提醒它们。或者,在收到区块后,轻客户端主动询问全网是否有欺诈证明,如果一段时间后没有收到,那么可以默认该区块是有效的。这样一来,轻客户端几乎可以获得与全节点等同的安全性。
然而,在以上论述中,我们实际上假设了区块生产者总是会发布所有的区块数据,这也是生成欺诈证明的基本前提。但是,恶意的区块生产者可能在发布区块的时候隐藏掉其中的一部分数据。这个时候,全节点可以下载这个区块,验证它是无效的;但轻客户端的特点使它们无法这样做。并且由于缺少数据,全节点也无法生成欺诈证明来警告轻客户端。
另一种情况是,可能由于网络原因,一部分数据在稍后才会上传,我们甚至无法判断这时的数据缺失是客观条件所致还是区块生产者有意为之——那么欺诈证明的奖惩机制也就无法生效。
这就是我们要讨论的在节点中的数据可用性问题。
?
?图片来源:https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding??
上图中给出了两种情况:其一,恶意的区块生产者发布了数据缺失的区块,这时诚实的全节点发出警告,但随后该生产者又补充发布了剩余的数据;其二,诚实的区块生产者发布了完整的区块,但这时恶意的全节点发出了假警告。在这两种情况下,网络中的其他人在T3之后看到的区块数据都是完整的,但都有人在其中作恶。
Canto新提案提议减少30%的CANTO代币增发量和流动性挖矿奖励:2月13日消息,据官方博客,Cosmos生态公链Canto的新提案提议减少CANTO代币的增发量和流动性挖矿奖励,以提高其项目的可持续性并使其利益相关者保持一致。减少通证增发的提案将于2月13日提交。减少流动性挖矿奖励的提案将于2月17日星期五提交。一旦新提案在链上通过并执行,新参数将立即生效。
与之前相比,CANTO增发将减少30%,每个区块的增发奖励为5.6枚CANTO。目前,50%的流通CANTO供应量已经质押,这处于40-50%的目标范围的高端,建议的调整旨在将质押比例维持在目标范围内,同时降低通胀率。
与上期相比,流动性挖矿奖励将面临全面削减,流动性挖矿奖励将降至每个区块37.6枚CANTO。流动性挖矿奖励在DEX和借贷市场池之间的分配将被调整。[2023/2/13 12:03:46]
这样看来,采用欺诈证明来确保轻客户端的数据可用性是存在漏洞的。
解决方案
2018年9月,MustafaAI-Bassam和Vitalik在合著的论文中提出采用多维纠删码来检查数据可用性——轻客户端只需要随机下载一部分数据并验证,就能确保所有数据块是可用的,并在必要时重建所有数据。
采用纠删码来解决轻客户端的数据可用性问题几乎没有异议,PolygonAvail、Celestia中都采用了Reed-Solomon纠删码。
不同点在于如何确保纠删码被正确编码:PolygonAvail和Danksharding中采用了KZG承诺,而Celestia中采用了欺诈证明。两者各有优缺,KZG承诺无法抗量子,而欺诈证明依赖一定的诚实假设和同步假设。
除KZG承诺外,还有采用STARK和FRI的方案可用于证明纠删码的正确性。
DAinRollup
Rollup中的数据可用性是:在zkRollup中,需要使任何人可以自行重建Layer2的状态,以确保抗审查;在OptimisticRollup中,需要确保Layer2的所有数据都被发布,这是构建欺诈证明的前提。那么问题在哪?
?
?图片来源:https://forum.celestia.org/t/ethereum-rollup-call-data-pricing-analysis/141?
?
我们来看Layer2的费用结构,除了固定花费外,与每批次交易笔数相关的变量主要在于Layer2的Gas花费以及链上数据可用性的支出。前者的影响微乎其微;而后者需要为每个字节恒定支付16gas,整体占到Rollup成本的80%-95%之多。
Aptos生态DeFi协议Thala Labs将推出原生AMM ThalaSwap:1月23日消息,Aptos生态DeFi协议 Thala Labs 宣布即将推出原生 AMM ThalaSwap,并将在未来几天公布启动计划、THL Token 经济学、路线图和即将推出的测试网等信息。
ThalaSwap旨在成为Aptos的核心流动性层,同时确保 Thala Labs 推出的超额抵押稳定币 MOD 在其 DeFi 生态系统中具有深度流动性。AMM 将支持三种不同类型的池:加权池、稳定池和流动性引导池(LBP)。ThalaSwap 上的池创建将是无需许可的,允许任何用户创建他们喜欢的多资产池。掉期费用虽然是固定的,但在不久的将来将成为可通过治理改变的参数。在发布时,所有 MOD 流动性及其相应的货币对都将在 ThalaSwap 上运行。[2023/1/23 11:26:54]
数据可用性很贵,怎么办?
一是降低在链上存放数据的成本:这是协议层做的事情。在IOSG的文章「合并在即:详解以太坊最新技术路线」中,我们提到以太坊正在考虑引入Proto-Danksharding和Danksharding来为Rollup提供「大区块」,即更大的数据可用性空间,并采用纠删码和KZG承诺解决随之而来的节点负担问题。但从Rollup的角度去想,被动等待以太坊来为自己做适配是不现实的。
二是把数据放到链下。下图列出了当前的链下数据可用性方案,通用化方案包括Celestia和PolygonAvail;在Rollup中作为用户可选的方案包括StarkEx、zkPorter和ArbitrumNova。
?图片来源:IOSGVentures
以下我们具体来看这些方案。
DAProvidedbyRollup
在最简单的Validium方案中,由中心化的数据运营商来负责确保数据可用性,用户需要信任运营商不会作恶。这样的好处是成本低,但实际上几乎没有安全保证。
于是,StarkEx在2020年进一步提出了由数据可用性委员会维护的Validium方案。DAC的成员是知名且在法律管辖区内的个人或组织,信任假设是他们不会串通和作恶。
Arbitrum今年提出了AnyTrust,同样采用数据委员会来确保数据可用性,并基于AnyTrust构建了ArbitrumNova。
zkPorter则提出由Guardians来维护数据可用性,他们需要质押zkSyncToken,如果发生了数据可用性故障,那么质押的资金将被罚没。
Solana生态交易可视化项目Lumina上线:1月11日消息,Solana生态交易可视化项目Lumina上线,Lumina使Solana交易对日常用户更具可读性,可以显示指令数据、CPI 和交易日志等信息。未来路线图包括内存池可视化工具和MEV分析、显示经过验证的程序源代码、交易解析整合、在本地网络txs的账户数据之前 / 之后解析。[2023/1/11 11:06:35]
三者都提供了称为Volition的选项:用户按需自由选择链上或链下数据可用性,根据具体的使用场景,在安全性和成本之间自行取舍。
图片来源:https://blog.polygon.technology/from-rollup-to-validium-with-polygon-avail/
GeneralDAScenarios
提出上述方案基于这样的想法:既然普通运营商的信誉度不够高,那么就引入更权威的委员会来提高信誉度。
一个小型委员会的安全程度足够高吗?以太坊社区早在两年前就提出了Validium的勒索攻击问题:如果窃取了足够的委员会成员的私钥,使得链下数据可用性不可用,那么可以威胁用户——只有他们支付足够的赎金才能从Layer2提款。据RoninBridge和HarmonyHorizonBridge被盗的前车之鉴,我们无法忽略这样的可能性。
既然链下的数据可用性委员会并非足够安全,那么如果引入区块链作为信任主体来保证链下数据可用性呢?
如果把前述的DAC理解为联盟链,那么PolygonAvail和Celestia所做的就是使数据可用性层更加去中心化——相当于提供了「DA-Specific」的公链,拥有一系列的验证节点、区块生产者和共识机制,以此提升信任级别。
除了安全性的提升之外,如果数据可用性层本身就是一条链,那么它其实可以不局限于为某个Rollup、或者某个链提供数据可用性,而是作为通用化的解决方案。
图片来源:https://blog.celestia.org/celestiums/
我们以Celestia在以太坊Rollup上的应用QuantumGravityBridge为例进行解释。以太坊主链上的L2Contract像往常一样验证有效性证明或欺诈证明,区别在于数据可用性由Celestia提供。Celestia链上没有智能合约、不对数据进行计算,只确保数据可用。
L2Operator把交易数据发布到Celestia主链,由Celestia的验证人对DAAttestation的MerkleRoot进行签名,并发送给以太坊主链上的DABridgeContract进行验证并存储。
这样实际上用DAAttestation的MerkleRoot代替证明了所有的数据可用性,以太坊主链上的DABridgeContract只需要验证并存储这个MerkleRoot,开销得到了极大的降低。
小结
图片来源:IOSGVentures,据CelestiaBlog改制
在逐一讨论上述方案后,我们从安全性/去中心化程度、Gas花费的角度来做一个横向比较。注意,该坐标图仅代表笔者的个人理解,作为模糊的大致划分而非定量比较。
左下角的PureValidium安全性/去中心化程度和Gas花费都是最低的。
中间部分是StarkEx和ArbitrumNova的DAC方案、zkPorter的Guardians验证者集方案,以及通用化的Celestia和PolygonAvail方案。笔者认为采用zkPorter采用Guardians作为验证者集,对比DAC来说安全性/去中心化程度稍高;而DA-Specific区块链的方案对比一组验证者集又要稍高。与此同时Gas花费也相应增加。当然这只是极粗略的比较。
右上角的方框内是链上数据可用性的方案,有着最高的安全性/去中心化程度和Gas花费。从方框内部来看,由于这三种方案的数据可用性都由以太坊主链提供,故它们具有等同的安全性/去中心化程度。纯Rollup方案对比单体化的以太坊来说显然Gas花费更低,而在引入Proto-Danksharding和Danksharding之后,数据可用性的成本将进一步得到降低。
注:本文讨论的「数据可用性」语境大多在以太坊之下,需要注意Celestia和PolygonAvail是通用化的方案,并不限于以太坊本身。
最后我们在表格中对上述方案做个总结。
图片来源:IOSGVentures
ClosingThoughts
在讨论完上述数据可用性问题之后,我们发现所有方案本质上是在三难困境的相互制约下做权衡取舍,而方案之间的区别在于权衡的「细粒度」不同。
从用户角度考虑,协议提供同时链上和链下数据可用性的选项是合理的。因为在不同的应用场景之下、或者不同的用户群体之间,用户对安全性和成本的敏感程度亦各不相同。
上文更多讨论了数据可用性层对以太坊和Rollup的支持。在跨链通信上,Polkadot的中继链为其他平行链提供了数据可用性的原生安全保证;而CosmosIBC依赖于轻客户端模型,故确保轻客户端能够验证源链和目标链的数据可用性至关重要。
模块化的好处在于可插拔和灵活性,能够按需为协议做适配:例如卸下以太坊的数据可用性包袱,同时确保安全和信任级别;或是在多链生态下提升轻客户端通信模型的安全级别,降低信任假设。不仅限于以太坊,数据可用性还可以在多链生态、甚至未来更多的应用场景下发挥作用。
我们认为:未来的3至5年内,区块链的架构必然会由单体化向模块化演变,各层呈现低耦合状态。未来可能出现Rollup-as-a-Service、DataAvailability-as-a-Service等许多模块化组件的提供商,实现区块链体系结构的可组合性乐高。模块化区块链是支撑下一个周期的重要叙事之一。
其中,执行层的估值巨兽已经「四分天下」,后来者寥寥;共识层逐鹿中原,在Aptos和Sui等公链开始崭露头角后,公链竞争格局虽未尘埃落定,但其叙事已是新瓶装旧酒,难以寻找合理的投资机会。
而数据可用性层的价值仍然有待被发掘。
References
https://twitter.com/ptrwtts/status/1509869606906650626
https://twitter.com/0xAlec/status/1545176941002575872
https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding
https://vitalik.ca/general/2021/04/07/sharding.html
https://coinmarketcap.com/alexandria/article/what-is-data-availability
https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html
https://vitalik.ca/general/2021/04/07/sharding.html
https://www.parity.io/blog/what-is-a-light-client/
https://ethereum.org/en/developers/docs/scaling/validium/
https://forum.celestia.org/t/ethereum-rollup-call-data-pricing-analysis/141
https://ethresear.ch/t/adamantium-power-users/9600
https://notes.ethereum.org/DD7GyItYQ02d0ax_X-UbWg?view
https://blog.polygon.technology/introducing-avail-by-polygon-a-robust-general-purpose-scalable-data-availability-layer-98bc9814c048/
https://blog.polygon.technology/the-data-availability-problem/
https://blog.celestia.org/ethereum-off-chain-data-availability-landscape/
https://blog.celestia.org/celestiums/
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。