# Celestia 2 - 模块化区块链技术实践

By [atom_crypto](https://paragraph.com/@infinet) · 2022-04-19

---

一个所有人都执行所有交易的单片链注定是实现不了扩展的，这也是为什么现在所有主流的生态系统都在搭建一个所谓的多链世界。最受关注，和交易活动最多的就是以太坊和Cosmos。

以太坊希望实现Rollup Centric的世界，以太坊上的Rollup 非常昂贵，缺少灵活性，但是可以互相共享安全。Cosmos 是一个连接独立自主Layer1主权区块链的框架协议，被称为区（ZONE)。尽管区相较于Rollups 更为便宜，灵活性更高，但是它们不能共享全部的安全性。Celestia将上面两个的优点结合了起来。

Celestia 如何工作的 - 解耦（Decoupling) 执行
----------------------------------

那么问题来了，让区块链为其他区块链提供共享安全，区块链能够最小程度做什么呢？我们先解释两个定义，通常，共识和有效性被认为是一致的，但是有情况将这些概念区分开来。有效性证明决定了什么样的交易被认为是有效的，而共识需要节点同意有效交易的顺序。

和其他Layer1 一样， Celestia采用了共识协议（Tendermint)去排序交易。但是和其他区块链不一样的地方，它并不在意这些交易的有效性，也不负责执行他们。Celestia对于所有的交易采取一视同仁的态度，如果交易支付了相应的费用（根据数据大小来决定），它接收，排序，并且复制它们。

所有的交易有效性证明都在Rollup的客户端完成。Rollup 节点监控Celestia，确认并且下载关于它们的数据，然后它们执行并且计算它们的状态（例如决定每个人的账户余额）。如果任何Rollup节点认定为无效的交易，直接忽略。

只要Celestia的历史没有发生变化，那些运行软件，具备同样有效性证明的Rollup节点可以计算出相同的状态。所以Rollup 不需要其他的链实现执行，从而分享安全性，它们只需要赞同一个排序交易的共享历史。

### Celestia 是如何实现可扩展性的？

尽管从共识序列中解耦执行是Celestia的独特特征，但是单单这个并不能解释Celestia 的可扩展性水平。这个解耦的关节在于，和其他Layer1所有人都需要执行所有的交易不一样，节点可以自由选择执行和它们应用相关的交易，例如，一个游戏App的节点并不需要去执行Defi 应用的交易。但是这个也带来了问题，尽管可扩展性增加了，但是它是以牺牲一部分可组合性为代价的。

让我们举个例子，如果两个App 想交换代币，那么一个App的状态必须依赖于另一个App的状态，为了计算一个App的状态，节点必须执行关于两个App的交易。

实际上，当新加入这些交互的App更多，需要执行的交易数也会越多。当极端情况下，当所有的App都想与其他App交互，我们则需要平方一个单片链（所有的人都需要下载和执行每笔交易）。

### 那么Celestia是如何实现的呢？解耦执行又是如何运作的？

我们通常认为的可扩展性就是在不提高验证成本的情况下，提升交易的笔数。首先基本的关于全节点和轻节点的定义和作用，我们之前一篇文章已经介绍过，在区块链中，共识节点（验证节点，矿工等），它们可以生产区块，并且将区块分发给全节点和轻节点。

在区块链领域最臭名昭著的可扩展性瓶颈就是我们说的State bloat。当更多交易产生的情况下，区块链的状态（需要执行这些交易所需要的信息就会增多），所以对于运行全节点这件事情会变得更为昂贵。于是网络的全节点越来越少，轻节点越来越来多，让网络集中在区块生产者身上。

因为大部分的区块链都想实现去中心化，想要更多的全节点部署在用户硬件上。这就是为什么它们限制了状态的增长，强制限制区块/燃料费大小。

这个欺诈证明/有效性验证解决了这个瓶颈。通过这些验证，Celestia上的轻节点（少量资源要求可以间接认证所有的数据都是有效的，而无需执行这些交易。而一个拥有全状态的节点（全节点）可以生成这些证明。这个之前我们也介绍过。

我们接下来具体介绍下所谓的欺诈性证明的过程。在欺诈性证明中，全节点为轻节点提供足够的数据，让他们能够识别无效的交易信息。这个证明中的第一步，是让全节点给轻节点展示一个特定数据(例如一个认定为无效的区块交易）属于区块身体（Body)。

这个非常直接，默克尔树可以被用作这个用途。通过采用默克尔树，全节点可以有效地向轻节点证明一个特定交易已经被包括在区块，而无需要求它们下载整个区块。

尽管证明交易的包含比较琐碎，证明交易的缺失却并不是。我们接下来会提到，证明交易的缺失和证明交易的包含对于让有效性证明/欺诈验证有效的工作同等重要。

### 数据可用层

之前提到，为了让全节点能够生成这些证明，它们必须要下载和执行所有的数据，从而能够计算它们的状态 （交易余额，合约代码等）。但是如果恶意的区块生产者发布了区块头，但是扣留了区块Body本身的数据？

这种情况下，全节点会注意到区块身缺失的数据，不会跟着这个恶意区块，但是轻节点只下载了区块头，所以它会跟着这个恶意区块。

这个问题使用欺诈和有效性证明，因为没有完整的数据，这些全节点无法生产这些证明，当出现了恶意攻击，

1）在欺诈证明中，轻节点会追踪无效链的区块头，因此这个区块不能被诚实的节点验证

2）在有效性证明系统中，轻节点会追踪有效链，但是不知状态的区块头，因此区块不能再被诚实节点生产。这意味着没有恶意攻击者的同意，这个链无法再演变了。这个类似于攻击者拥有了所有人的资金。

两种情况下，这个轻节点都没办法注意到这个问题，最终不得不分叉全节点。而数据可用性问题是个非常重要的问题，因为唯一去验证数据缺失的方法则是下载，但这对于资源限制的轻节点是无法实现的。

Celestia解决了数据可见问题
-----------------

我们看下这个问题Celestia是如何解决的。我们之前了解了有效性证明和共识的区别，Celestia并不在乎交易的有效性，而是区块生产者是否发布了所有的数据。而通过我们即将要介绍的数据可用采样过程，这个数据可用性可以被资源限制的轻节点自主实现。

### 数据可用采样

数据可用采样是根据长期存在的数据保护技术删除码（erasure coding)，之前文章我们提到过这个技术，简单来说，就是利用这个技术本身可以让原本的数据实现扩展，比如双倍大小, 那么原本的数据可以恢复，比如通过这些扩展数据的50%。

可以将数据可用采集（DAS）想成一个游戏，恶意区块制造者，试图在不惊动轻节点的情况下，将区块的数据隐藏起来。区块生产者发布区块头，根据区块头的数据根，轻节点可以从区块上开始请求随意区块（和一些默克尔树证明）。

这个会导致两个结果：

1） 数据可见 恶意区块制造者发布了轻节点所需的数据块，这些数据块传播至网络，尽管每个轻节点只请求固定的少量数据样本，只要它们总共搜集超过25%的删除码，网络上的诚实全节点就能够通过网络发布的数据恢复原有区块。当区块对于网络可见的时候，所有轻节点会认为它们的样本测试已经成功，而且所有数据对于全节点已经可见。通过自主验证数据可见，轻节点可以依靠欺诈证明/有效性证明，由单个诚实全节点生成。

2）数据被抽走了 恶意区块没有发布轻节点所需的数据块，轻节点意识到它们的样本测试失败了注意，这个对于安全不是非常重要的威胁，因为当全节点拒绝的时候，恶意区块制造者无法让轻节点接受这个链。所以数据缺失的链对于全节点和轻节点来说，都是失败的，这个可以通过最终安全机制恢复，社会共识。

所以无论在哪种情况下，轻节点和全节点都会跟随同样的链，并且在同样的安全保证下运行。

### Celestia 能提供多大的扩展性？

DAS的关键特性就是当更多数据被共同采集的时候，同样的数据可用保障能够被更多的数据利用，这意味着区块大小可以被更安全的扩大 （提高TPS），当网络中有更多节点参与到样本采集的过程。

然而，这里面还是存在一些trade off 的。因为数据采集节点的区块头增长和区块大小的平方根成正比。因此，轻节点减少了空间复杂度问题，并且承受O(n）的带宽成本，n指区块大小。

当我们谈到可扩展性的时候，有两个主要的因素占据了：

1）多少数据可以被共同采集

2）轻节点的目标区块头大小

任何一个指标都可以限制数据可用层的吞吐量

根据Celestia团队的验证结果，区块大小和网络轻节点成线性关系，而网络轻节点的个数可以非常多，因为它们需要非常少的资源要求，即使是智能手机也能参与到数据可用采集，帮助维护网络的安全和吞吐量。

而我们预计网络的数据采集节点数量和用户需求相关，这个非常有趣，因为意味着Celestia上的区块空间供应是用户需求的函数，这意味着和其它单片区块链不一样，当用户需求上升的时候，Celestia可以提供一个较低的固定费用。

第二个我们来看下的轻节点的区块头，和区块大小的平方跟成正比。这个似乎是一限制，但是当资源需求提升的时候，这个可以被网络带宽的提高所弥补，通过将计算全部放入线下，Celestia可以利用网络宽带的指数增长。

所以，Celestia 可以被预期支持将来任何潜在用户的需求，同时也能保障网络上的验证成本相对较低。通过选择放弃执行，同时引入数据可用采集，Celestia采用了互联网时代最扩展，最去中心化的BitTorrent协议的可扩展特性。

模块化区块链Celestia 框架特性
-------------------

接下来，我们已经了解了Celestia如何运行，接下来我们了解下模块化区块链。重新构想区块链为模组化的框架，而不仅仅是数据可用扩展性，有着非常重要的含义。接下来我们了解下Celestia作为模组化区块链代表的8个特性。

### 1、 独立主权性

目前市场上现有的Rollups大部分在以太坊上，依附于以太坊的安全性 （“BABY CHAIN)。Rollups 将数据头传输到以太坊，欺诈证明/有效性证明在线上被执行。因此Rollup的状态是由以太坊上一系列智能合约执行的。这个意味着Rollup 必须要有线上治理机制，会带来很多问题，比如投票参与人数低，买票，中心化等问题，由于这些复杂性，线上治理并没有被很多区块链接受。

Rollup 在Celestia 的工作原理则是不一样的。Rollup只会将数据和验证证明发送到Celestia, 但是Celestia 本身并不会对储存的数据和有效性证明进行验证，Rollup 上的状态是由运行客户端的节点独立决定的 （这里会出现两种情况，发生在Celestia之外,验证这个过程由这些节点处理，发生在Celestia本地，有效性证明由这些节点在Celestia之外验证）。总而言之，这些Celestia 上Rollups的运行方式和Layer1 是一样的。因此，Rollups是可以自由选择软/硬分叉的，主要通过两种方式 1）升级软件 2）处理基本数据。

L1的那些有争议的软/硬分叉通常被认为是非常危险的，分叉链会稀释L1的安全。所以一般情况下，分叉经常是被避免的，但这也扼杀了很多创新。而Celestia 第一次实现了在不需要考虑安全性被稀释的情况下进行分叉。所有的分叉链都会采用同样的数据可见层, 同时也不会牺牲Celestia共识的安全优势。如果这个技术最早就出现，那么比特币区块大小的讨论还有以太坊DAO的分叉这些问题可能会被更好地被解决。

### 2.灵活性

另外Celestia的执行不可知论 （execution-agnostic)特征会加速虚拟机（VMs）领域的创新。和以太坊上的Rollups不一样，Celestia 上的Rollups没必要单独针对EVM解释的欺诈证明/有效性证明设计，这个为Celestia上的虚拟机打开了新的空间，比如更多的开发人员，更多的竞争。

我们已经看到了像Starkware, LLVM，Cosmwasm，等这些虚拟机的出现收到了关注。定制化的虚拟机可以在执行的各方面进行创新，比如可支持的操作，数据库架构，交易格式，软件语言等，实现最优性能，处理特定性的案例。

尽管Celestia 不直接进行执行的扩展，它的Execution-agnostic 特性为成为虚拟机激烈竞争市场的基础，实现高可用性，更具扩展性的执行。

### 3.实现轻松部署

POW时代我们需要硬件去实现所谓的去中心化，POS解决了这个问题。除了POS，那些较成熟的开发者工具例如Cosmos SDK, 让开发者更容易实现轻松部署。然而，搭建网络，实现POS共识仍需要非常多的准备。开发者需要选择节点，设计足够广的代币分布，同时需要处理共识机制的复杂性。Polkadot的平行链，以太坊的Rollups在设计上试图去解决问题，但是他们带来了新的问题。比如Polkadot 的平行链部署成本非常高，以太坊的Rollup运行成本也非常高。

Celestia 正作为这个趋势的下一个演变出现。团队正在采用Optimint, 使用Cosmos SDK的ORUs规范，这个工具解决了问题，任何链被部署的同时，开发者无需再担忧共识机制，还有部署和运行层面带来的昂贵费用。任何新链都可以快速被部署，用户可以非常安全地和链实现交互。

### 4.高效的资源定价

以太坊计划在未来几年展开分片计划，但是它用的仅仅是数据分片，Rollups可以利用这个技术将数据传输传送至以太坊。这个会使得Rollups的费用更低，通过提高Layer1上数据容量的方法。但这并不意味着以太坊会放弃在Layer1上的状态执行环境。

以太坊上有内置的执行环境。在以太坊上运行一个Rollup全节点，节点也需要执行以太坊L1上的状态。然而，以太坊已经拥有一个巨大的状态，在这个状态上执行肯定是不便宜的，这个巨大的状态给Rollup带了与日俱增的技术限制。

而且在以太坊上，燃料费限制L1 状态大小也被用于计算Rollups的历史数据，所以当L1上活动增加的时候，Rollups费用也会增加。

而在Celestia的模块化区块链设计中，活跃的状态增长和历史数据被不同的处理。Celestia的区块空间的只储存Rollup的历史数据，通过Bytes被测算和支付，而所有的状态执行通过Rollup 节点测算，独立验证，因为活动受制于不同的费用市场，当一个执行环境的活动增多的时候，不会影响另一个环境的用户体验。

### 5.可信的最小化桥梁

桥通常有两种形式可信桥 和信任最小化桥，可信桥依赖于对手链的共识机制，而可信最小化桥则通过一个全节点维护安全。如果链间需要形成最小化桥，它需要1）同样的数据可用 2）可以去解读对方欺诈证明/有效性证明的方法

L1 之间并不能实现共享数据可用，所以L1之间不能形成信任最小化桥，所以他们只能通过信任桥实现通信，那么这也降低了安全性。

另一方面，Rollups 和以太坊之间的通信则是通过信任最小化桥。以太坊可以访问Rollup数据，同时在线上执行Rollup的欺诈证明/有效性证明。这就是为什么Rollup和以太坊之间可以形成信任最小化桥，并且是通过单个Rollup节点实现安全的。

通过信任最小化桥连接的链可以成为簇团，Celestia作为基础，使得在上面搭建的链互相形成簇团。但是，这也不是强制的。Celestia上的链在广泛的桥设计空间中，可以单独形成，可以通过可信桥实现通信，也可以通过信任-最小化实现通信。

同样的，和大家理解的不一样，欺诈证明/有效证明不是一定要在线上执行才能起作用的，它们也可以分发到P2P 层 (Cosmos 集群），或者在客户端被执行。

6.最少治理

区块链的治理是非常慢的，改进建议/提案通常需要花很多时间（以年为单位）在社会协调上，直到真正被执行。尽管这样比较安全，但是这个大大放缓了在区块链上的部署和开发。

模块化区块链在治理方面提供了一个非常好的解决方案，执行层可以独立执行，并且丢弃事务，而共识层照样可以实现Resilient，Robust。

如果你看下EIP的历史，你会发现提议的很大一部分的治理都是关于执行功能和性能的。这包括一些比如运营的定价，增加新的操作码，定义代币标准等等。在模块化区块链中，这些讨论仅仅会包含相对应执行层的参与者，而不会更深入到共识层层面。这个意味着在技术的底层，需要待解决的问题将会大大减少，通常情况下因为社会协调的高门槛，这个过程非常缓慢。

### 7.去中心化的区块验证，而不是区块生产

很多项目很看重去中心化，所以他们会效仿POW的去创建一个去中心化的区块生产者网络，通过POS的共识机制。Agorand的随机领导选择，Avalanche的子样本投票，以太坊的共识分片等都是非常让人关注的案例。这些设计都假设了区块生产者上的低资源要求，以实现去中心化的区块生产活动。

尽管这些都是非常珍贵的技术，但实际上他们是否带来了任何有意义的去中心化，还很难说。区块生产者的去中心化会有变为中心化的趋势，考虑到外部带来的经济规模效应，比如资源汇集，MEV 都可能成为催化剂。实际上，除了技术本身，质押/哈希会最终会变为帕累托分布问题。

最重要的问题，实际上是实现区块验证者的去中心化，而不是生产者的去中心化。只要一小批共识节点的行为可以被大量参与者验证，那么区块链就是一台可以信任的机器。在这个问题上，Ceiestia假设了区块生产者的高资源要求，区块验证者的低资源要求，从而实现非常高的去中心化，防审查的网络。

### 8.简单

Celestia 发现了区块链的可扩展性的问题，帮助Celestiia 选择了最简单的区块链设计。尽管以太坊计划在他们的分片路径图后计划执行DAS,Celestia 优化它，并且明确表示不会去做太复杂的共识分片。

同样的，不采用新的共识机制，Celestia 选择采用用了很多年的Tendermint 技术，同时也有成熟的工具，和开发者和验证的支持。

*   这个设计选择会让Celestia显得更为出众，我们认为当Celestia真正走入市场的时候，更多的Rollup 都在寻找低价数据可用解决方案的时候，这个设计会更值得被称赞。
    
    挑战和局限
    -----
    
*   第一个挑战我们认为是关于确定区块的大小。我们之前了解到，区块大小和数据采集节点的个数成正向线性关系，但是因为数据采集并不是抗女巫攻击的过程，因为，没有任何可验证的方法去决定网络的节点数量。并且，因为参与数据采集的节点不能被协议直接奖励，关于采样的假象不得不依赖于隐形激励。
    
*   第二点是关于扩大Celestia的网络效应。一个专门的数据可用层并不能有很多用途，Celestia现在依赖于其他的执行链去撬动用户。第一个应用可以关注Celestium, （以太坊上的Validiums， Celestia 提供了链下数据可用解决方案）。
    
*   还有一个例子我们之前介绍过就是Cevmos，一条Cosmos SDK， 基于Evmos上开发的以太坊虚拟机兼容的Rollups特定链。Cevmos和以太坊一样，可以理解为结算层，理论上可以帮助所有EVM 兼容的Rollups 实行验证结算，当然，对于那些在以太坊上实现结算的Rollup是不适用的。
    
*   最后我们看到Celestia上原生代币的价值捕获问题。和其他链一样，Celestia也会有自己的费率市场，它的原生代币会从Celestia区块空间的需求中获得价值捕获。然后，Celestia并不参与状态执行 （除了POS相关的非常少的状态执行）, 和其他链并不一样，它的代币作为Defi领域的流动性来源和其他方面都会受到限制。例如，以太坊可以在各种Rollups间，Rollup和以太坊上实现自由转账，然而Celestia的原生代币必须依赖可信任桥/第三方媒介实现资产互通。
    

Reference
---------

Pay attention to Celestia: Can Gurel: [https://members.delphidigital.io/reports/pay-attention-to-celestia/](https://members.delphidigital.io/reports/pay-attention-to-celestia/)

---

*Originally published on [atom_crypto](https://paragraph.com/@infinet/celestia-2)*
