TL;DR
1/ 模块化本质是打破“不可能三角”,在不增加节点硬件负担前提下,实现扩容。
2/ Celestia 是数据可用层,与 Optimistic Rollup 类似,默认区块数据有效,利用欺诈证明、纠删码和数据可用性抽样,进行数据校验,同时实现让轻节点参与校验。
3/ Celestia 已初步形成生态,目前生态知名项目有 Fuel、Cevmos 等。
4/ Celestia 如何能把握窗口期,在 Polygon Avail 和 Danksharding 之前形成规模效应,吸引大量流动性,尤其是原生Rollup 的流动性,这点将至关重要。
通常,会将 Layer1 分为四层:
1)共识层
2)结算层
3)数据层
4)执行层
共识层是必需的。模块化是指,将结算、数据、执行其中之一或之二拆出来(严谨点称“解耦”),加上共识组成新一层网络协议,以打破“不可能三角”,在不增加节点硬件负担,造成中心化的前提下,实现扩容。
如以太坊 Rollup,将执行层拆出来,提供共识和执行,由中心化定序器(Sequencer)排序交易,将大量交易打包压缩,提交到以太坊主网,由主网全节点校验交易数据。
Celestia 是数据可用层(Data Availability, DA)项目,基于Cosmos架构,为其他 Layer1、Layer2 提供数据层、共识层,构建模块化区块链,商业模式 toB,面向其他公链收费。
要全面理解 Celestia 与数据可用,先要从“不可能三角”和数据可用性问题讲起。
为什么数据可用性重要?从“不可能三角”到数据可用性问题
不可能三角,又称三元悖论,通常指去中心化(Decentralization)、可扩展性(Scability)、安全性(Security)三者不可同时兼得,最早由以太坊官方提出。
通常,交易提交到链上,首先会进入 Mempool,由矿工“挑选”,打包成区块,将该区块拼接到区块链上。
包含这笔交易的区块,会向网络内全体节点广播。其他全节点将下载这个新区块,执行复杂计算,验证其中每一笔交易,确保交易真实有效。
复杂计算和冗余,是以太坊安全基础,也带来了问题。
1)数据可用性
节点通常有两种:
全节点——下载并验证所有区块信息及交易数据。
轻节点——非完全验证节点,易部署,只验证区块头(数据摘要)。
首先,确保新区块产生时,该区块中的所有数据确实已发布,使得其他节点可校验。若全节点未发布区块中所有数据,则其他节点无法检测,该区块是否隐藏恶意交易。
也就是说,节点需要获取一定时间内的所有交易数据,并验证,不存在已经确认但未验证的交易数据。这便是通常意义上的数据可用性。
若某个全节点隐瞒一些交易数据,其他全节点在校验后,会拒绝跟随此区块,但仅下载区块头信息的轻节点则无法校验,会继续跟随这条分叉区块,影响安全。
尽管通常区块链会罚没该全节点保证金,但这同样会使质押给该节点的用户受到损失。
且当隐瞒数据的收益,超过罚没成本,节点有动机隐瞒,届时实际受损的,只会是质押用户和该链其他使用者。
另一方面,若全节点部署逐渐中心化,节点间存在串通可能,会危及整条链的安全。
这是为什么数据可用很重要。
数据可用越来越受到关注,一方面因为以太坊 PoS 合并,另一方面则是 Rollup 发展。当前 Rollup 会运行中心化定序器(Sequencer)。
用户在 Rollup 上交易,定序器为交易排序、打包、压缩,发布到以太坊主网,由主网全节点通过欺诈证明(Optimistic)或有效性证明(ZK)验证数据。
只要定序器提交的区块所有数据真实可用,以太坊主网才可据此跟踪、校验、重建 Rollup状态,保证数据真实和用户财产安全。
2)状态爆炸与中心化
状态爆炸是指,以太坊全节点积累的历史和状态数据越来越多,运行全节点需要的存储资源越来越大,运行门槛提高,致使网络节点中心化。
因此,需要某种方式,使全节点在同步以及验证区块数据时,无需下载所有数据,只需要下载区块的部分冗余片段即可。
至此,我们明白了数据可用性很重要。那么,如何避免“公地悲剧”产生?即大家都清楚数据可用的重要性,但仍需要一些切实的利益驱动,让大家使用单独数据可用层。
就像每个人都知道保护环境很重要,但看到路边的垃圾,“我”为什么要把它捡起来?为什么不是别人?“我”把垃圾捡起来,能得到什么好处?
轮到 Celestia 登场了。
什么是Celestia ?
Celestia 为其他 Layer1、Layer2 提供可插拔的数据可用层和共识,基于 Cosmos Tendermint 共识及 Cosmos SDK构建。
Celestia 是 Layer1 协议,兼容 EVM 链及 Cosmos 应用链,未来将支持所有类型的 Rollup,这些链可直接使用 Celestia 作为数据可用层,区块数据将通过 Celestia 存储、调用、校验,再回到自有协议清算。
Celestia 也支持原生Rollup,可直接在其上构建 Layer2,但不支持智能合约,所以无法直接构建 dApp。
Celestia 工作原理
Rollup 通过运行Celestia 节点,接入 Celestia。
Celestia 接收 Rollup 交易信息,通过 Tendermint 共识排序交易。之后,Celestia 不会执行交易,也不会质疑交易有效性,只是将交易进行打包排序、广播。
是的,换句话说,隐瞒交易数据的区块,也可以发布到 Celestia 上。那 Celestia 如何识别呢?
校验通过纠删码(Erasure Coding)和数据可用性抽样(Data Availability Sampling,DAS)完成。
具体来说,原始数据为K(若实际数据大小不足K,则会补充无效数据,使大小等于K),对其进行纠删编码,分成 N 多个小枝干(Chunks),并扩展为 2K 行列大小的矩阵。
可以简单理解为,一个长、宽都为 K 的正方形,面积为 K*K,纠删编码后变为长、宽为 2K,面积为 2K*2K。
若原始数据为 1Mb,对其进行纠删编码,分成若干份,并扩展 4Mb 大小,其中 3Mb 为特殊数据。仅需其中一部分K*K 大小数据,便可恢复或查看全部 2K*2K 数据。
具体的数学计算极其复杂,但得到的结果是,即使恶意出块者隐瞒哪怕 1%交易数据,也会变成隐瞒 50%以上的枝干(Chunks)。
所以,若想使隐瞒生效,就会使数据矩阵发生质的变化,能被轻节点轻易发现。这使得隐瞒数据,有极其大的概率,成为不可能的事件。
全节点可通过欺诈证明,校验数据,跟其他 Layer1 类似。而纠删码关键的作用在于,调动轻节点,参与数据校验。
全节点将区块头发给轻节点,由轻节点进行数据可用性抽样。若数据无隐瞒,则轻节点认可该区块。若数据有缺失,则轻节点会发送给其他全节点。其他全节点会发起欺诈证明。
总结下,
1/ Celestia 使用纠删码,对原始数据编码,将原始数据切成若干小份(Chunks)。(若区块仍有空间,则使用无效数据补足,使得留有空间的区块,便是全节点隐瞒数据的区块)
2/ 将 K*K 大小的原始数据,扩展为2K*2K。因为 K*K 数据已分为若干小份,所以 2K*2K 数据的状态,也是如此,呈若干小份。
3/ 由此得到三个好处:
1)因为数据切成若干小份,使得轻节点也可参与校验。(若数据仍是大份,轻节点受制于硬件,无法参与校验)
2)仅需抽样 K*K 大小数据,可还原全部 2K*2K 数据全貌。轻节点们轮番抽样,直到抽样大小为 K*K,则可通过数据全貌对比,选择是否认可当前区块。
3)使恶意出块者隐瞒哪怕 1%交易数据,也会变成隐瞒 50%以上的枝干(Chunks)。
4/ 全节点可直接通过欺诈证明校验区块数据,与以太坊等其他 Layer1 类似。
5/ 轻节点则可通过数据可用性抽样校验,多个轻节点随意抽样,直到抽取数据面积大小为 K*K。这是 Celestia 的创新之处。
6/ 对于轻节点抽样来说,抽样模型是亚线性的(Sub-linear)。他们仅需下载所需抽样数据量的平方根数量即可。即,若有 10,000个小份Chunks数据需要抽样,仅需要下载并检查其中100个。
因为 100的平方是10,000。
7/ 若轻节点校验的区块数据有隐瞒,可提交给其他全节点,通过欺诈证明,罚没作弊节点保证金。
Celestia 扩容
纠删码和数据可用性抽样,使 Celestia 与其他 Layer1 现有数据可用相比,实现了进一步扩容,提升网络效率。
1/ 采用欺诈证明,默认区块数据可用,保证正常情况下,网络高效运行。
2/ 轻节点越多,网络效率越高。
因为原始数据大小为 K*K,若只有一个轻节点,则需要做 K*K 次抽样。反之,若有 K*K 个轻节点,仅需1次抽样。
3/ 亚线性抽样,使 Celestia可使用大区块。
此外,纠删码的特性,使得万一 Celestia 全节点发生大规模故障,轻节点们手中的若干枝干数据,可恢复交易数据,确保数据仍可访问。
Quantum Gravity Bridge
Quantum Gravity Bridge 是 Celestia 与 以太坊 Layer2 的中继桥,搭建在以太坊上,Layer2 可以通过 Quantum Gravity Bridge 将交易数据发布到Celestia,使用数据可用服务,通过智能合约,校验 Celestia 上的数据。
Celestium
Celestium 是以太坊 Layer2,使用Celestia 作为数据可用层,用以太坊作为结算和共识层。
目前处于开发阶段。
为什么要用 Celestia ?
还记得我们之前提到的“公地悲剧”吗?即 Rollup 为什么要使用 Celestia 作为数据层?
1/ 使用 Celestia 成本低
以太坊 Rollup 现有成本由两部分构成:
1)Rollup 自身Gas成本。即用户交互,定序器进行排序,状态转换时收费的费用。
2)Rollup 将区块提交到以太坊,花费的Gas。
Rollup 定序器打包、压缩后,会在以太坊上创建一个区块。目前存储为 Calldata形式,成本为每字节 16 Gas。
以太坊和 Rollup 各自根据拥堵情况不同,收取的 Gas也不同。定序器在批量处理用户交互内容前,会尽力预测以太坊 Gas 费用,并向用户收取。
也就是说,Rollup 上的 Gas 之所以便宜,是因为将用户若干笔交互打包到一起,相当于大家均摊了 Gas。
当市场处于冷淡期,以太坊上交互较少,大家需要均摊的 Gas 也会减少,Rollup 只会在正常 Gas 上收取很小的利润。一旦,以太坊上 Gas 飙升,Rollup 上的Gas 也会上涨。
所以,Rollup 本质上还是在跟以太坊主网的 dApp 和其他 Rollup 抢夺区块空间。
另一方面,Rollup 自身交互火爆,也会拉高 Gas。比如前不久的 Aribitrum Odyssey。
总的来说,Rollup 当前成本模式为线性,成本会随以太坊交互需求情况,上升会下降。
而 Celestia 的成本则是亚线性,成本最终会趋近于一个值,一个远低于以太坊现有成本的值。
在 EIP-4844 升级部署后,Rollup数据存储会从 Calldata 变为 Blob,费用降低,但仍旧比 Celestia 贵。
2/ 自主 Rollup(Self Sovereignty)
自主 Rollup,实质是给了 Rollup 自主分叉的权力。Celestia 原生 Rollup 是拥有自主的链,治理及分叉升级不受Celestia 限制。
分叉为什么重要?
通常区块链需要通过硬分叉升级,而分叉会影响削弱安全性。原因是,若有人想要更改或升级区块链代码,需要其他参与者同意且更改。
如果想对整条链进行升级,需要分叉整个共识层,就像以太坊 PoS 合并不得不采用算力炸弹,迫使节点从PoW 迁移到 PoS一样。所有节点都参与升级,才不会丢失任何安全性。
Celestia 则会为 Rollup提供分叉能力,因为所有分叉使用相同的数据可用层。
此外,自主 Rollup 也会带来更多灵活性。以太坊 Rollup 受限于以太主网处理欺诈证明或有效性证明的能力。
自主 Rollup 则不依赖特定的虚拟机,如 EVM。所以,自主 Rollup 有更多的选择性,比如成为 Solana VM 等等。不过,采用不同 VM 虚拟机,互操作性会受限。
另一方面,目前 Rollup 对成为自主 Rollup 的需求可能并不大,
A. 受中心化资产限制。比如 USDC、USDT 官方不支持新分叉链。
B. 受 dApp 迁移限制。如,Uniswap 等 dApp仍留在之前的链上,且用户不肯放弃原有习惯,未迁移到新分叉链上。
3/ 信任最小化桥(trust minimized bridges)与共享安全
Celestia 官方文章,将跨链大致分为两类:
A. 可信跨链桥,需要信任第三方,比如中继链节点。其可靠性建立在第三方节点共识之上,即节点多数是诚实的。
B. 信任最小化跨链桥,类似以太坊和 Rollup 的关系,靠欺诈证明(Optimistic)和有效性证明(ZK),校验 Rollup 交易数据有效性。
Celestia 提出一个概念——集群(Clusters),即一组相互通信的链,通过信任最小化桥跨链,每条链都可以验证其他链的状态。
通常,集群会遇到两个限制因素,
A. 集群内所有链需要了解彼此的执行环境。但这很难,如 ZK Rollup之间需要了解彼此的 ZK 系统。但 zk-SNARK 和zk-STARK 是不同的 ZK 系统。所以,ZK Rollup 之间相对独立。
B. 为保持集群内所有链,使用信任最小化状态验证,每条链必须以信任最小化方式,验证该集群内,其他链区块数据可用性。
而使用 Celestia 作为数据可用层集群中的所有链,都可以检查彼此的块是否包含在 Celestia链中。
不过,略微尴尬的是,Celestia 集群概念中,Optimistic Rollup 和 ZK Rollup 属于两个集群。
也就是 Optimistic Rollup 间,如 Optimism、Aribitrum 同属一个集群,他俩与 zkSync 则不是。
且由于 ZK Rollup 方案差异,zkSync和 StarkNet 甚至也不属于同一集群。所以,Celestia仍不能解决 Rollup 间相对独立,缺乏原子级别互操作性问题。
Optimint(Optimistic Tendermint)
Optimint 是 Tendermint共识替代品,允许开发者构建基于 Cosmos 的 Rollup,同时使用Celestia 作为共识和数据可用层。
目标是,让基于 Cosmos 的 Rollup形成集群。
Celestia 现有生态项目
Fuel
Fuel 是建立在 Celestia 的模块化执行层,是以太坊Optimistic Rollup Layer2。
Fuel 构建了 FuelVM,一个为智能合约专门构建的定制虚拟机,可处理并行交易,使用UTXO 账户。
Cevmos
Cevmos 是 Cosmos EVM应用链和 Celestia 共同开发的 Rollup
Cevmos 使用 Optimint 构建,由于Evmos 本身就是一个 Rollup,所以 Cevmos 实际是 Rollup 中的 Rollup(递归 Rollup)。
以太坊上已有的 Rollup 合约与应用,可以重新在 Cevmos 上部署,使用其为结算层,使用 Celestia 作为数据层。
每个构建Rollup 都会有与 Cevmos Rollup 双向信任最小化的桥,形成集群。
dYmension
dYmension 是基于 Cosmos构建的自主 Rollup,dYmension Hub 提供结算,且提供开发套件RDK、链间通讯 IRC,方便专注 Rollup 的应用 rollApp 开发。
Eclipse
Eclipse 是基于 Cosmos 的自主 Rollup,使用 Solana VM 作为结算和执行层,Celestia 作为数据层。
项目进展
目前测试网已上线。奖励版测试网将于2023年第一季度发布。现在可以去官方Discord 领取水龙头测试币。主网预计2023年第二季度发布。
融资情况
2021年3月,完成150万美元种子轮融资,参与者包括 Binance Labs、Interchain Foundation、Maven 11、KR1 等等。
2021年12月,完成273万美元融资,参投信息未公开。
2022年10月,完成5500万美元融资,参与者包括Bain Capital、Polychain Capital、Placeholder、Galaxy、Delphi Digital、Blockchain Capital、Spartan Group、FTX Ventures、Jump Crypto 等等。
团队情况
CEO Mustafa Al-Bassam,UCL 区块链扩容领域博士,Chainspace(被Facebook收购)联合创始人
CTO Ismail Khoffi,前 Tendermint 和 Interchain 基金会的高级工程师
CRO John Adler,Optimistic Rollups创建者,前 ConsenSys 可扩展性研究员
COO Nick White,Harmony联合创始人,斯坦福大学学士和硕士。
顾问团队:
Zaki Manian —— IBC 共同创建者和早期 Cosmos贡献者
Ethan Buchman —— Tendermint 联合创始人和 Cosmos 联合创始人
Morgan Beller —— NFX 普通合伙人,Diem≋(又名Libra) 联合创始人
Nick White —— Harmony 联合创始人
James Prestwich —— Summa(被Celo收购) 创始人
George Danezis —— 伦敦大学学院的安全和隐私工程教授
代币经济模型
从已公布的信息来看,Celestia 原生代币将作为 Gas,协议收入来源是 Rollup 交易费用。且代币包含类似 EIP-1559 的销毁机制。
目前,Celestia 一级市场估值 10亿美元。
竞品
Polygon Avail
Avail 是 Polygon 推出的数据可用性方案。实现思路与Celestia 相同,不同点在于,Celestia 使用纠删码+ 欺诈证明,Avail 使用纠删码 + KZG 多项式承诺(KZG Polynomial Commitment)。
Celestia 是将K*K 数据扩展成2K*2K 正方形,Avail 是按行扩展,将 n 行 m 列矩阵,扩展成 2n 行,并为每行计算KZG 多项式承诺。
轻节点使用数据可用性抽样 DAS,用密码学方式核对 KZG 多项式和证明就可以,不需要下载原始数据。
相比之下,Avail 实现难度更大,在完全实现的情况下,结果也相对更可靠。不过目前,两个项目都在开发中,很难判断竞争情况。
以太坊 Danksharding
Danksharding 是以太坊官方计划推出的独立数据可用层。与 Avail 类似,Danksharding 使用纠删码 + KZG多项式承诺,数据格式则会使用 Blob 替代现有的 calldata。
在 Danksharding 部署前,有两个提案作为过渡。
EIP-4488 直接硬性将 calldata gas 从每字节 16减少到 3,还规定了 calldata 占用上限 1.4Mb。
EIP-4844 引入 Blob(blob-carrying transactions,blob: binary large objects)代替 calldata。Blob 是一种新交易类型,包含额外的存储空间,成本比 calldata 低得多。
Blob 存储在以太坊信标链上,与之后的分片兼容,使用 KZG 承诺哈希值,用于校验数据,Rollup 无需访问数据,校验 KZG 承诺即可。
KZG 承诺是绑定的,计算完成后无法更改。所以,本质上,Avail 和 Danksharding 基于密码学的 KZG 多项式承诺校验数据,而 Celestia 则基于经济学的欺诈证明方式。
理论上,KZG 多项式承诺安全性要优于欺诈证明,同时,要求带宽更小,抽样所需计算量更小。未来,以太坊也考虑引入抗量子攻击的验证方式,如zk-SRARK。
风险
1)中心化
尽管纠删码让轻节点也可参与数据校验,但 Celestia 数据存储仍旧需要搭建存储全节点。
要求内存 8GB,CPU 4核,剩余存储空间至少250GB,上行带宽大于 100Mb/s,下行带宽大于 1Gb/s。配置要求很高,需要搭建在云服务器上。
2)以太坊 Danksharding 的竞争
3)“脏账本”问题
该问题是斯坦福研究小组提出的。Celestia 采用欺诈证明,默认区块数据可用,保证正常情况下,网络高效运行,所以是“脏”账本,因为数据有问题的区块,仍会被Celestia 接受,等待欺诈证明的挑战。
假设,某挑战者想证明交易 Tc 是一笔双花,并提交证据说明,该钱已用于交易Tb。但如果存在交易 Ta 能证明 Tb是无效的呢?
若 Tb 无效,则 Tc 双花可能有效。
在某些情况下,“脏账本”无法获知交易真实状态,除非重放 Celestia 历史每一笔交易,直到创世区块。
这意味着,挑战者和被挑战者,都必须是全存储节点。该问题发布在 Celestia 官方Youtube 账号上,目前团队在解决该问题,比如引入弱主观性假设。
弱主观性假设是解决问题的条件。比如,如何买好吃的柚子?这个问题中的主观性,是按主观感觉挑选。客观性是按照柚子重力与体积之比,判断柚子水份情况。
弱主观性则是,双手分别捧起体积差不多的柚子,比较重量。比较几个之后,选择最重的。
回到 Celestia “脏账本”问题,可以要求要求挑战者和被挑战者者保留 3 周数据,但这对节点来说,同样是负担。
“脏账本”问题,其实是基于经济学模型保障安全的欺诈证明,面对的本质问题。但欺诈证明的部署难度,小于 KZG 多项式承诺,理论上 Celestia 开发进度比 Polygon Avail 和以太坊 Danksharding 更快。
所以,Celestia 如何能把握窗口期,在 Polygon Avail 和 Danksharding 之前形成规模效应,吸引大量流动性,尤其是原生Rollup 的流动性,这点将至关重要。