您的位置 首页 Defi-NFT

探索 Celestia 的兔子洞:什么是模块化区块链

前言

最近研究了 Celestia 这个项目,掉进了兔子洞,这篇文章将会告诉你:什么是 Celestia,什么是数据可用性(DA),以及 Celestia 带来的想法和概念将会如何影响 Crypto 发展。

一、什么是 Celestia

Celestia 是第一个模块化区块链网络,和传统的单体区块链不同的是它不执行任何交易,它只负责将数据放在区块上,提供一个共识数据网络。

它提供了一种特殊的执行环境——数据可用性(DA)服务。通过将 DA 抽离出来,实现了共识层和执行层的解耦。让区块链变得更加模块化。

在搞明白其具体运作原理和其解决的问题之前,我们首先需要明白几个概念。

二、共识?执行?

区块链是执行状态机复制(SMR)的分布式网络。SMR 有 3 个基本阶段:数据、共识、执行;区块链同样分为了这三层。基于互联网创建货币的关键是引入一种外部无法干预的共识系统,Satoshi 提出的解决方案是引入“中本聪共识”让全世界的人都可以维护和运转 Bitcoin。

Bitcoin 的共识协议运转方式:

  1. BTC 节点接收来自 peer 的 BTC 交易
  2. 节点验证签名并根据共识规则检查交易
  3. 如果有效性失败,则节点丢弃 TX。如果验证成功,则添加到内存池中
  4. 然后矿工创建候选块并用来自内存池的 TX 填充它们
  5. 在 POW 机制下一些矿工计算出了这个区块的有效随机数
  6. 广播,节点检查该块的有效性,扩展链并构建这个新区块

在这个过程中节点负责执行各种任务:

  1. 数据可用性(DA)—节点接收系统中的每笔交易并将其存储在本地存储中,并确保这些交易可供网络中可能请求它的任何其他节点使用
  2. 执行——节点将在收到新交易后立即执行,以根据协议规则检查其有效性。此外,他们将在一个块中按顺序执行它们以计算新的网络状态。
  3. 共识—节点将共同商定将哪些交易包含到新区块中,以及它们将被堆叠的时间顺序(TX 排序)然后节点通过对区块的完整性施加某种经济权重来证明该区块

模块化区块链就是将 DA 层、执行层、和共识层分离开来单独运行的区块链,Celestia 在这个过程中就充当了 DA 层,负责验证数据的完整性。对于验证者,这发生在共识期间。对于非共识节点,这发生在区块通过共识并在整个网络中传播时。

在单体区块链中,这三层工作全都由一个网络来完成,从数据的验证到交易的执行都由节点完成。由于区块链是全局复制的分布式状态机,我们将执行推到这个全局状态机上的复杂度越高,系统保持同步性的成本和复杂度就越高。Roll-up 解决了一部分问题,将执行层分离出去,处理复杂交易,他们将 Ethereum 本身作为他们的 DA 层和共识层来运行。例如 Arbitrum,它在 L1 嵌入了特定的操作码,告诉节点不要通过 EVM 调用数据,使得节点只会存储验证这些交易,而不会执行它。Roll-up 必须监控 L1 并且加载调用交易,执行计算,最终以不同方式将状态返回 L1。这些交易实际上必须首先通过 ETH 网络进行路由,才能在 Roll-up 上执行。

在 ETH L1 上归档数据比在 L1 上执行要便宜得多,但因为它本质上任然在争夺 L1 上高度稀缺的区块空间,所以这是一个不小的成本。

这可能会导致两个问题:

  1. 调用数据(”Call Data“)的成本是固定的,最少目前是这样,不管 L2 性能多强大,L1 调用数据的成本(16 Gas/Byte)是无法更改的,这也是为什么目前 Roll-up 成本仍然很高的原因;
  2. L1 受到资源定价限制的限制,只要在 L1 上写入区块空间,gas 成本问题就会不断地袭击用户;

这就引发了区块链扩容的瓶颈问题。

通过 Celestia 我们可以绕过这个问题,DA 和排序可以由 Celestia 来提供,并且最终将验证结果返回 Ethereum(当然这只是 Celestia 使用案例之一,第七节会详细叙述)

三、拓展的困境

可扩展性通常是指在不增加验证成本的情况下增加处理的交易数量。

节点本质限制了区块链每秒可以运行多少笔交易和 Gas 费用的多少。由于硬件的处理能力有边界,我们几乎可以测试出公链的计算能力。Bitcoin 每块平均 4 兆字节,不能扩大区块的原因在于区块扩大—> 全节点门槛增加—> 网络全节点变少,轻节点增加—> 网络安全无法保证,并且变得更加中心化。

所有区块链网络都是如此(Solana 除外),当需求大于供应时,交易费用就会上涨,区块链只能像你保证存储和计算,无法像你保证便宜的交易费用,一旦网络容量受到冲击,交易费用就会飙升。Solana 不涉及这个问题,因为它不在乎全节点运行的成本,供应总是大于需求,当然也牺牲了一些东西。

全节点的减少会削弱去中心化?是这样的,中本聪在设计 Bitcoin 时提出了 SPV 的概念,即不运行完整节点也可以使用网络,轻节点只下载区块头的数据不下载全部数据,交易的执行由全节点下载代码运行,同时验证数据的完整性。

数据扣留攻击:

当节点生产一个区块时,他会对格式化的 TX 数据做散列处理,将这些散列摘要分组成对,然后对生成的散列进行散列处理,直到我们编译成单个根,我们称之为默克尔根,通过默克尔根我们证明了散列数据结构的完整性,这里又一个问题就是:由于散列函数的特性(单向陷门函数),仅使用默克尔根,我们无法展开序列访问所有 TX,我们只能检查结构是否完整。轻节点是只下载区块头的节点,他们不会下载每一笔交易。他们默认信任系统中的其他全节点,相信这些默克尔根以及根背后的交易是可用且有效的。那么导致了如果区块头是无效的(比如受到了恶意节点误导)轻节点可能会在不知不觉中和忠诚的全节点分叉。

举个例子:一个恶意的 celestia 矿工生产区块,这个区块里有 10 笔交易,矿工将它们编译成一个单一的默克尔根,生成了一个声称 10 笔交易的区块头,但是当其他全节点请求时,发现区块只有 9 笔交易,全节点将拒绝有效的区块头,因为和本地计算的哈希根不同。轻节点会看到恶意矿工发布的区块头,轻节点也会声称有 10 笔交易,并且默认相信交易是可用的。这时其他忠诚的全节点会发出警报,这时谁是对的,又该如何验证,为轻节点带来的很大的困难。验证数据是否在区块里是很简单的,验证有没有数据不在区块里是困难的。诚实的全节点只能发布他们所拥有的 9 笔交易给轻节点,但是第 10 笔交易为什么存在?如果网络延迟了呢?

轻节点此时可以请求生产者给出第 10 笔交易,如果这个作恶节点给出,那么轻节点就会运算执行,并且认为其他全节点发出了错误的警报。这就模型就造成了两个问题:

  1. 证明数据完整就必须下载全部数据,拥有所有 TX 就可以得知有没有出错,而不是只拥有区块头,但是轻节点下载全部数据就会变成全节点,网络拓展变得困难
  2. 无法确定数据扣留攻击中哪一方才是出错的一方(全节点 or 区块生产者?)

个人的理解:拓展的困境就在于:

  1. 共识和执行由同一个节点运行,这严重限制了网络的吞吐量
  2. 大多数区块链重视去中心化,全节点硬件要求不能太高,同时不需要每一个人都运行一个完整的节点
  3. 数据可用性(DA)需要全节点下载全部的数据保证,因为全节点不做共识是诚实的假设(轻节点有这个假设,只下载区块头)恶意共识永远无法欺骗全节点接受无效区块
  4. 当前区块链网络中,节点的边际增加不会有助于系统的可扩展性,并且实际上会使网络上的区块生产更加昂贵
  5. Roll-up 依赖以太坊的数据可用性,目前以太坊暂时还没有一个好的 DA 解决方案,Roll-up 受到 L1 成本的制约

四、Celestia 的原理——数据可用性抽样轻节点

与大多数其他区块链不同,Celestia 旨在提供共识和数据可用性,不执行任何交易。同样,Celestia 轻节点不验证交易(这笔交易是否能够执行),他们只检查每个区块是否达成共识,以及区块数据是否可用于网络。

数据可用性采样(DAS)是一种加密技术,它允许轻节点生成接近完整节点的安全属性,并且无需下载整个区块,从而解决了我们上面的挑战。虽然对 DA 采样的研究已经持续了几年,但 Celestia 是第一个将其直接实施到协议中的区块链。

简单解释一下:

DAS 主要应用了一种叫纠删码‌的技术,对数据应用纠删码是一种扩展数据的方法,即只需要拥有一小部分数据就可以恢复所有数据。

纠删码的一个用例是在 CD-ROM 中。如果光盘被划伤并且原始数据被损坏,我们可以使用纠删码恢复全部的数据。

Celestia 对区块应用纠删码,允许轻节点随机采样属于一个块的数据片段,以概率保证其他数据片段可用。对于这种概率保证,参与采样过程的节点数量很重要。区块生产者将标头传播到网络。根据属于头部的数据路由,每个轻节点请求随机的数据片段。如果所有样本都可用,则这可以证明整个块都可用。通过从一个块中采样随机数据,可以概率性地验证该块确实是完整的。

Celestia 通过抽取区块 25% 的数据即可验证 100% 的数据可用,只要轻节点足够多,保证概率阈值在 99.9999%,每个节点只需要抽取 10 笔 TX 即可验证数据的完整性(具体原理)。这使得单个节点所需要的数据降低了平方根的级别。

由于 Celestia 节点不执行交易的特性,发布到 Celestia 上的交易永远不会像其他区块链一样支付高交易费来争夺算力,此外,由于节点不像在单片 L1 中那样执行双重角色,因此它们不需要高性能处理器,手机这样的轻客户端就可以完成 10 笔 TX 的抽样验证,这使轻节点和忠诚的全节点遵循了同一条链,实现了最大化轻节点验证的功能。

正如上文所提到了,传统区块链中,节点的边际增加不会有助于系统的可扩展性,并且会增加区块生产的成本,Celestia 不是如此,DAS 的关键在于,采样的数据越多,可以确定的数据可用性就越多。也就是说,在 Celestia 中,随着参与数据采样的节点数量增加,可以安全地增加区块大小(可以提供更高的 tps)。

酷!

五、伟大想法的诞生

Celestia 的想法最早可以追溯到 Satoshi 撰写的白皮书中,Satoshi 在论文中提到,如果在发布无效块时全节点向轻节点发送“警报”,轻节点可以变得更加安全。

“One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user’s software to download the full block and alerted transactions to confirm the inconsistency” — Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System.

Vitalik早年也设计 Plasma时也提出了这样的概念: 最初的 Plasma 论文描述了一种构建“区块链树”的机制 。 树中的每个节点都将代表一个连接到其父节点的唯一区块链,所有这些区块链都排列在链的层次结构中,数据可用性层(DA)位于其核心:

Plasma Proposal 伟大想法总是建立在“相邻可能性“之上,最终Celestia做到了。

六、费用

推荐阅读:以太坊 Rollup Call 数据定价分析

L2的费用分为两部分:

固定成本:

  • 证明成本(在 zk rollups 的情况下)= gas 范围,通常基于 rollup 提供者
  • 状态写入成本 = 20,000 gas
  • 以太坊基础交易成本 = 21,000

可变成本:

  • Call Data(以太坊汇总将来自多个交易的数据收集到一个批量交易中,然后发布到以太坊。 该批处理交易包括汇总的交易数据作为 calldata ,即发布到以太坊但不直接执行的数据) Cost:=(每字节数据 16 个气体)(平均交易大小,以字节为单位)
  • L2 Gas = 通常相当便宜

当前限制L2的主要是Call Data成本,也就是这挥之不去的16 gas/byte

Celestia 的出现将 Call Data 成本大大降低了,当然前提是 L2 需要使用 Celestia 作为它们的 DA 层。

以太坊官方也在解决这一问题:
EIP – 4488: 将每字节 16 gas 费用降低到每字节 3 gas
EIP – 4844: Shard Blob Transaction通过更改L2数据调用模式来降低Call Data费用

Celestia 组合方法是多样化的,它和以太坊并不是零和博弈,我不知道终局会如何,我只能尽可能的想象一切可能性,最终我告诉自己:我没有理由不拥抱这一新生事物,因为 Celestia 将会带来更多创新和组合的可能性。

七、可能出现的组合方式

Peter的推文给了我启发

他将区块链分为了四层,比上面我所说的多了一个:结算层,执行全局状态的一层。

以太坊为中心:

  • 单体区块链:全都由以太坊完成,成本高,拓展性有限
  • Roll-up:共识和DA由以太坊完成,执行层独立,计算足够复杂,L1 gas 任然可以影响用户
  • Validium:引入链下数据可用和验证委员会,牺牲了一部分安全性,降低了成本,我认为Celestia将会是Validium中更安全,高效的选择

了解更多:Volitions: best of all worlds

Celestia为中心:

  • 主权Roll-up :直接建立在Celestia上,使用Celestia共识,我认为Celestia提出了很好的模块化共识方案,将DA单独当成一个模块,完全基于Celestia建立链,共识可能是不完整的
  • 结算 Rollup:结算发生在Cevmos上,执行层Cevmos完成。Cevmos是Cosmos SDK中最好的内嵌EVM的SDK,是一个专门针对Roll-up结算的项目。 Cevmos 上的汇总会将他们的数据发布到 Cevmos,然后再发布到 Celestia。Cevmos 的目标是允许以太坊Roll-up在 Celestia 上本地启动,而无需更改代码库。Roll-up不再是运行在以太坊上的合约,拓展性更强,抱有期望的观察这一可能性
  • Celestium:通过量子引力桥,Celestia将作为以太坊的DA链下解决方案,为以太坊提供数据可用性,这是目前我看到的最安全低成本的以太坊Validium设计

Quantum Gravity Bridge:使用 Celestia 保护以太坊 L2 的链下数据可用性

八、革新的优势

1.高效的技术迭代
如果查看 EIP 的历史,会发现其中很多都与执行有关。但是升级涉及到共识和执行的统一升级,发展缓慢。在模块化区块链中,Celestia 实现了共识和执行的解耦,让技术升级更加方便,鼓励了实验,为创新铺路。

以太坊的执行层的开发是集中的。初期,它可能通过增加更多的开发人员来获得最初的生产力提升。然而,现在迭代率随着利益相关者数量的增加而下降。

2.自主权

因为 Celestia 网络本身只负责验证数据完整性,不涉及一个完整的共识机制,因此,Celestia 之上的 rollup 本质上是自我主权的区块链。节点可以自由地硬/软分叉他们的软件。在 L1 中,分叉将意味着执行层和共识层的分叉,如果以太坊上的 Roll-up 有漏洞或者被攻击,需要重新部署或整个网络分叉才能完成状态更新。但是历史上第一次,Celestia 允许链分叉而不用担心失去安全性。因为分叉之后使用的 DA 层是相同的。

更新变得更加容易,技术迭代的速度更快,执行层可以专注于优化执行的环境和速率。

3. 易于部署

部署一条链需要建立共识,并且激励节点加入网络,对于资源、成本要求很高。随着 PoS 的发展,Cosmos SDK 等工具使创建新区块链变得更加容易,但是依然需要开发人员寻找验证节点的加入。Celestia 引入的 Optimint 将会更高效的帮助开发人员部署链,因为 Celestia 提供共识和安全性。

4. 跨链互操作性

多链采用同一 DA 层,实现了同一集群中区块链之间的信任最小化桥接。提高了多个区块链可以相互通信的安全性。Celestia 结合了 Cosmos 开放的生态和以太坊共享安全性,提供了多链开放且共享安全的可能。

结论

我们处于一个巨大范式转移的边缘,加密生态正在以前所未有的方式发展迭代,所有的努力和尝试,都在为这个目标清晰道路蜿蜒的终点靠近。Celestia 为网络生态带来了更多的可能,网络的演化需要这样为更多可能性提供支撑的组件,在进入 Celestia 为我们打开的这扇门前,我们很难看到门后面有着有几扇门供我去探索,相邻可能性的空间被拓展。也许 Celestia 不是最好的解决方案,但是他会为生态带来更多的创新。

希望这篇文章可以帮助到你。

感谢阅读,如果你喜欢我的文章,欢迎在 Twitter 上随时和我交流。

https://twitter.com/ChrisYicheng<br/>

热门文章

发表评论

您的电子邮箱地址不会被公开。