atom_crypto

Posted on Apr 17, 2022Read on Mirror.xyz

Celestia 的模块化架构

总览

目前区块链领域的单片区块链遇到了扩展瓶颈,以BSC,Solana,ETH 等为代表的单片区块链在”扩展困境”的问题上始终没有找到很好的解决方案,不得不牺牲去中心化实现所谓的高扩展性问题。于是,我们看到了模块化区块链领域的诸多创新,包括ZK/Optimistic Rollups, 分片,可用数据层(DA)等, Celestia 是可用数据层的龙头。

Celestia专注于开发区块链的底层模块化数据可用层,任何开发者可以在上面搭建,并且专注于应用端的开发同时享有Celestia带来的水平扩展性和共享安全性。通常情况下,搭建区块链,需要交易排序和数据可用性。比如以太坊就是将执行环境,共识层和数据可用层三者都放在Layer1, 而Celesita将执行环境从虚拟机中拿去,它只为搭建在其上的区块链提供交易排序和数据可用。这个比它的对手像Polkadot 和Cosmos的共享安全模型要更具有可扩展性,Polkadot。这些项目都依赖于状态执行,而状态执行本身就非常昂贵,会给平行链和特定应用链带来巨大的成本和门槛,尤其是那些长尾链和Rollups。

任何一个区块链都需要节点去验证网络,其中包括全节点和轻节点。全节点,顾名思义,需要下载全网的数据并且验证每笔交易,所以需要消耗大量的资源,但是可以提供安全保。而轻节点无需下载或者验证全网交易,他们只需要下载区块头,并且假设这些区块包含有效交易。因此,轻节点并不具备全节点这样的安全保障。

那么全节点和轻节点是如何运作的?全节点会给轻节点发送欺诈证明,如果区块包含无效交易,而不是轻节点自己去验证交易本身。通过这种方式,轻节点可以间接查证所有区块上的交易都是有效的。而对于全节点来说,要生成欺诈证明,它必须知道该区块的交易数据。数据区块生成者只发了区块头,而没有发布交易数据,那么全节点也就无法证明交易的有效性,当交易无效时,也无法生成欺诈证明。所以我们需要轻节点去验证是否所有的交易数据都已经上传到网络,而这个似乎轻节点的设计初衷相互违背。Celestia 通过“Light node” 设计解决了这个问题。

了解Celestia

你可以理解为Celestia 是一个Layer1区块链,它搭建在Cosmos SDK, Tendermint POS 共识之上。它没有执行环境,你可以理解为其是一个提供交易排序和保证数据可用等服务的共识层。因为它采用POS 机制,所以仍然需要链上的状态,所以执行会以有限的方式去发生。Celesita 解决了目前市面上区块链的一个问题,重新将数据可用性模块化,而非采用将所有的层合并到一起解决的方案。未来是否能够实现对于区块生成者来说,生成区块非常昂贵,而对于运行全节点的用户来说,验证这些区块生成者他们诚实地生产区块将会变得非常便宜。

目前Layer2的部署,还有最近Cosmos 生态特定应用链比如Osmosis, Terra 等项目的百花齐放,让我们认为未来的区块链世界是多链的。然而目前还未出现一个比较好的可以实现扩展数据可用性,而不牺牲部分去中心化的解决方法。尽管有些人提议我们需要将区块生产者和验证节点都实现去中心化,但是Celesita采用了一个更模块化的解决方案,中心化的节点生产者,防审查,去中心化的区块验证,执行环境等可以通过类似于Rollup 或分片等方案解决,而Celesita 可以通过可插拔的数据层实现共识层的扩展。

Celestia 是如何运作的呢?Celesita将区块验证问题缩小成数据可用验证问题。它将数据排序,将数据散发至网络,让数据可见,数据可用性的保证是通过数据可用证明来实现的。这个样本证明是通过需要节点从区块链上的区块采样少量数据而实现的, 当节点越多,链的可扩展性越强,因为区块大小也会提升,安全保证也会更佳。其中一个概念叫做删除代码,是一个区块加密方案,让轻节点去验证数区块数据,同时有很大的概率(Statistic Certianty)剩余区块已经被上传了。删除代码实际上就是将长度为N 的数据扩展到长度为2N的数据,其中N个数据足以重新建立原数据集。通过这种方式,Celesita 可以实现统计确定性下,整个区块已经被上传到Celesita上了。

Celesita其他的技术特性MVP

1.Namespace 默克尔树 (NMT)

Celesita 创建的默克尔树实际上是通过名字搜索的默克尔树,它实现了任何的Rollup可以从中下载与其他Celestia 上Rollup的数据不相关的,只和自身链相关的数据。这个可以通过将Tendermint上的默克尔树换为Celesita的Namespace默克尔树来实现。

2 - Dimenesional Reed Solomon Merkle Tree (rsmt2d)

上文提到了Celesita通过删除代码技术能够一定概率上保证整个区块已经被上传至Celestia.

六月份的MVP 展示中,他们采用了一个新的方案,tsmt2d, 能够通过和NMT方案的整合,从加密区块中计算默克尔树的行和列根。这个可以通过将Tendermint上的区块头修改为行和列根。

3 IPFS 组件

Celesita 创建了RPC based Tendermint 轻客户端,同时接入数据可用样本。他们修改了IPFS 并且将IPLD数据库代码加入其中,通过创建文库,实现P2P网络下的样本采集,让轻节点和其他节点能够验证数据的可用性.

4 Celesita 轻节点

Celesita 的轻节点(Light node), 而不是传统定义的(Light Client), 因为他们认为自己的轻节点比一般意义上的轻节点更安全,同时能够帮助维护网络安全和扩展性。Celesita允许任何不参与共识,不参与出块的个人参与,因此不需要全节点前期高昂的成本费用。轻节点需要从区块上随意采集样本区块数据,这个过程就是上文提到的可用数据采集。这个确保轻节点可以在无需下载整个区块的情况下验证区块数据。这里还有一点很重要的是,为了使得数据采集能够运作,网络上有最少轻节点运行数量的限制 (minimum number of nodes assumption).以往轻节点通常在Honest Majortiy假设下运行,现在在(Minimum number of Nodes)假设下运行,而这个模型下只需要一个或者多个全节点,更容易实现硬分叉。

我们上文提到了虽然像Rollup 分片这样的技术可以实现区块生产者的可扩展性,但是无法实现区块验证者的可扩展性。当网络的不参与出块,不参与共识的节点数量增多,整个网络上的数据吞吐量也会提升,然而,你既需要区块验证者,也需要验证节点去扩展网络,而Celestia解决了这个问题。

Celestia可以允许任何区块链的接入,侧重在Rollups 和侧链,同时也允许任何数量的接入。Celestia从任何将它部署为数据可用层的链上获取的数据,将数据存入到默克尔树,刚才提到了它的NMT方案,任何链可以通过名字搜索到,而数据也被默克尔化,同时可以通过名字搜索到。最后能够呈现一个简短的默尔克根,每条Rollup有自己的子树。

那么现有的链上的节点,已经有了可用数据,为什么还要用Celestia,刚才提到,Celestia上的轻节点能够提供和全节点同样的安全保证,这个有很多意义。这个通过数据可用采集过程实现,轻节点从区块上任意采集样本数据,样本越多,安全保证就越高。因此,这些链可以在实现Celestia可扩展性和共识的情况下,专注自身的应用/执行环境的发展。

总目标市场

Celestia会更倾向于与特定应用链和Rollups的合作。Cosmos生态,我们之前已经介绍了很多,自从IBC上线,实现了43条链的接入,超过700亿美金的锁仓量(仅次于排名第一的以太坊1200亿美金),过去30天的交易笔数为400多万笔。其中Terra 和Osmosis都是非常成功的项目。但是在Cosmos生态如果你想搭建自己的特定应用链,你必须要进行节点部署,这需要大量的工作,或者你可以期待下它们即将上线的三个版本(路线图已经有了)跨链安全模块,但是你必须支付给验证节点大量的费用,这提高了项目的准入门槛。特别是对于一些锁仓量较高,用户较多,较安全的链来说,能够帮助其他长尾链实现跨链安全(这就是我们之前几次提到的中继网络下的Lindy Effect), 但是对于长尾链来说确实也存在很多准入门槛。所以如果我们真的实现了万物互联的区块链时代,所有的链都能通过IBC的跨链安全模块接入吗?验证节点的容量上限会限制其可以支持的链数量。而Celestia能够帮助实现扩展接入millions of chains, 实现更低的准入门槛。这些链无需部署自己的节点,Celestia可以成为它们的共识网络。

当然对于那些特定应用区块链,它们能够有更好的设计空间,独立自主,运行定制化,性能。例如Osmosis 可以实现自主治理,相关的提案包括燃料费的支付,与Cosmwasm智能合约框架的合作等,同时可以上线一些新的功能,比如Superfluid Staking, 让Osmosis 上的流动性提供者获得平台交易手续费,流动性激励的同时,还能通过维护网络的安全获得质押奖励。这的确在设计层面,架构层面给了项目本身很大的自主性,但是它们缺少了数据可用层的扩展性解决方案,如何实现共享安全的扩展性?

Rollups

Layer2 这些解决方案都是需要通过依赖于主链(以太坊)实现数据可用和共识逻辑的。像现有的Zksync 和Stakeware 它们都是将交易到以太坊链下,而数据可用仍在以太坊上,交易数据也通过Calldata写在以太坊上。Rollup扩展性的瓶颈还是归咎于Layer1的数据容量。以太坊将共识层,执行环境,数据可用层合并,而即使ETH2.0提到了数据分片,目前还是非常早期,仅仅提到了数据的可用性,没有提到执行。

说到执行,Celestia和以太坊不一样,没有线上的智能合约执行环境,也不是分片链,但是它实现了在执行层的分片,在Celestia base layer之上。如果你想实现以太坊执行分片,你可以在Celestia上执行,如果你是Cosmos上的非常火的特定应用链,但是链本身已经无法处理那么多笔交易了,那么你可以选择将枢纽分散成不同的枢纽,让Rollups 可以实现交流互通。这个确保了你可以实现执行分片,提升执行环境的扩展,但不是在Celestia base layer实现的。Cosmos也提到了水平执行分片,但是没有能够提供可扩展的共享安全解决方案。

Starkware 将数据可用搬到了线下,通过一个所谓Volition 系统。用户可以选择Rollup 结算或者Validum 结算。Validum 结算将数据可用搬到了线下,通过一个中心化的DAC系统 (包括Cosensus Infura 这样在行业里有声望的机构),确保数据的可用性,降低了成本。Zk rollups, 则采用了单个聚合器。聚合器如同区块生产者。简而言之,Rollup的数据可用的解决方案:1)封闭中心化解决方案证明数据可用,成本降低;2)数据传送到以太坊证明数据可用,非常昂贵

Celestia 适用于所有的Rollups, 不管是Optimitstic Rollup 还是Zk Rollup, 都需要数据的可用性。这里面也可以分为以太坊的Rollups 和基于Celestia自身的Rollup。以太坊的Rollups,通过接入Celestia作为数据可用层,Celestia会将证明发送至以太坊。所以循环如下 以太坊Rollup 到Celestia 到以太坊主链,Celestia会将证明发送至以太坊,同时通过批量证明实现燃料费用的优化。这些证明不是数据本身,而是一篮子签名和默克尔根,比上传数据本身要便宜的多。当然,如果遇到以太坊上价格飙升的情况,它们也有很多的优化方案, 例如继续批量处理, 阈值签名, 微调其他参数等。

对于Rollups 来说,接入以太坊和Celestia 有什么不同呢, 通过Celestia, Rollups 只需要上传数据和有效性证明 (Zk-Rollup), 这些数据和有效性证明被锁定在Celestia,但是无需验证数据的真实性,验证是在其他地方被Rollup实现的,或者可以发生于本地,而有效性证明是在其他地方被Rollup验证的。而以太坊有线上的执行环境,它可以通过智能合约实现有效性证明的验证。

接下来让我们聊聊连接器。在Polkdot生菜,我们有Collator, IBC 中继器在IBC的跨链互通领域发挥了非常重要的作用,ZK Rollup 也有连接器连接以太坊和ZK Rollups 本身。一般这些连接器需要在两条链上都部署节点,但是Celestia 和Rollups之间没有双向桥,所以只有Rollup , 或者说定序器(Sequencer), 可以在Celestia链上部署客户端,这些定序器获取数据,将交易发送到Celestia, 同时为交易数据被包含支付相关费用,适用于所有的Rollups。

对于以太坊上的Rollups,上文说过它们使用Celestia作为数据可用层,Celestia上的验证节点会将Rollups 发送给它们的数据证明(一篮子签名和默克尔根)上传到以太坊链上,但是验证节点和Rollups 之间无任何直接沟通,而Celestia和以太坊的沟通则是通过量子Gravity Bridge实现的,它可以连接Celestia和任何EVM 兼容链。Ethereum Rollups的客户端可以读到证明已经发送给以太坊,同时验证节点的签名。Cevomos, 一个开发在Evmos结算层上的EVM Rollup, 已经准备将Celestia接入至共识层。

部署在Celestia上的Rollups 不需要部署在Cosmos SDK上,事实上Cosmos SDK 让欺诈证明的实现变得更为困难,它不像EVM 非常具体,定义明确,受约束的执行环境,Celestia 目前正在探索EVM领域的应用,Arbitrum VM 会是个不错的选择,因为其已经非常成熟了,还有其他的执行环境比如Cosmos SDK, Substract, ZK-Rollup, 都会探索。

Celestia vs 其他扩展性解决方案

目前市面上解决可扩展性区块链框架的Layer0 协议中,最受关注的就是Polkadot 和Cosmos,我们分别来聊聊。

Polkadot 和Cosmos的安全模型有些差异。在Polkadot网络里面,如果你想将平行链接入中继链,那么中继链上执行槽是有限的(100个)。这些执行槽默认共享整个网络安全,而中继链负责所有的执行。这个安全模型下所有Polkdot主链的节点必须验证所有的平行链,这是非常昂贵的,我们也看到了平行链的拍卖,因为有数量上限,如果这个模型成功,那么平行链会变得非常昂贵,同时限制了新的设计和开发者开发的动力。这个共享安全模块给网络实现可扩展性的发展带了瓶颈。

Cosmos也有类似的问题,独立自主链可以掌握自身的安全。和Polkadot 不同,Cosmos上的枢纽无需强制性地接入跨链安全模块,而是提供了可选择功能,(路径图上有三个版本,可以自主维护网络安全,可以接入更安全的网络,依赖于更安全的节点,或者Layer Security,实现节点之间的融合)。当然共享安全有很多好处,不同程度的安全会给例如不同链之间的互通,单个协议无法承载这个流动性带来问题,同时如何保证资金的安全?Celesita的轻节点拥有更高的安全性,因此搭建在Celestia上的独立自主链对于可互操作性标准IBC而言拥有更强的安全保证,在实现可扩展共享安全的同时实现独立自主的特性。

Celestia交易手续费

交易手续费仅仅用来支付区块链/Rollup上传至Celestia的数据费用,这个设计更为简单,更为便宜,因为它们仅仅用于定价单一资源,并不负责执行交易。以太坊上的数据可用需要和其他智能合约竞争费用,而Celestia只负责数据排序和验证数据可用性。Celestia可以允许无上限的链接入,区块容量也会更大,交易手续费也会更低,费用会根据上传的数据大小而调整,同时它们和Cosmos一样,也准备接入以太坊的EIP 1559协议,控制协议增发。

Celestia 和Evmos 的合作项目Cevmos

我们之前写过关于Evmos的文章,Evmos 是一条EVM 兼容,同时和Cosmos生态可实现可互操作性的一条链。Evmos 想要成为Cosmos生态的EVM枢纽,成为一条非常安全,实现快速确认,EVM兼容的链,为跨链上的智能合约提供可互操作性和可组合性。同时它开发的ERC20模块,第一次实现了跨链间在无桥/第三方接入的情况下实现ERC20资产和Cosmos原生资产转换。

快速确认也得到了Vitalik的认可,认为以太坊Beacon链上也需要Tendermint这样的共识模型。结果,快速确认是Evmos的优势和远景。Evomos和Celestia的合作,也证明了Rollups不再仅仅存在于以太坊上,Rollups将会实现更广泛的应用,也会采用Celestia作为它们的共享数据可层。

Celestia和Evmos致力于为EVM Rollup搭建最优化的结算层,上文提到,Rollups, 可以将交易转到线下,从而降低交易成本,交易数据被广播至线上主链(共识链和数据可用链)获取安全

性。因此,Rollups可以大大提升它们Layer1的可扩展性。Celestia与Evmos合作搭建的这个模块化框架包括Celestia rollups, 和Evmos上Rollup 的优化结算层。这个优化结算层将会通过Optimisitc Tendermint实现 (Cosmos 利用的是Tendermint Core). 这个优化结算层将通过Celestia作为数据可用层,为Cosmos和EVM生态的可互操作性智能合约提供EVM 功能类似的架构. 这个Cevmos针对Rollups进行了优化,不再像以太坊的Rollups必须和非Rollup交易进行燃料费竞争。Evmos代币主要针对安全和燃料费用。

结论

Celestia 解决了目前区块链领域的非常重要的问题,目前的Layer1 无法实现无限扩展问题。以太坊,交易吞吐量受到交易费用的限制。Polkadot和Cosmos的问题非常类似,状态执行非常昂贵,这为什么对于执行槽数量设置上限(100),而这个上限本身这又给网络的扩展带来了瓶颈。而这些问题都是因为协议将公示层,执行层和数据可用层放在了一起,通过将执行环境分开,Celestia能够提供无需许可,部署门槛降低,无上限执行槽的部署。