多年来,应用链理论已经以各种方式实现。随着时间的推移,对模块化的需求不断增加,因为区块链开发人员意识到,通过外包运行 dApp 所涉及的一些工作,可以更有效地扩展其平台。

最初仅保留给主权链,通常使用 Interchain Stack 构建,应用程序链的演变现在包括从 Cosmos Hub 租赁安全性的消费者链,以及依赖第 1 层链来执行一些结算和桥接工作的汇总,如出色地。这些变化带来了不同的安全假设和需要解决的问题。Celestia旨在解决一个称为数据可用性的特殊问题,但在我们解释这一问题与您的项目有何关系之前,让我们尝试了解 Web3 中的最新流行词:模块化

单一第 1 层链所做的工作,包括以太坊和主权 #Cosmos 链,可大致分为 4 层:

  • 执行层处理交易,并负责更新链上的状态。例如:当朋友向您发送代币时更新您的钱包余额。

  • 结算桥接层负责完成交易,或者更确切地说,毫无疑问地确认交易是有效的。这特别适用于汇总,我们稍后会介绍。最近,结算层更常被视为桥接层,为 Rollups 提供了一种与更广泛的区块链网络进行通信的方式,而结算本身已成为一个更有争议的话题。在 Cosmos 应用链等常规网络上,结算是免费的,因为共识层在每笔交易到达执行层之前有效地对其进行验证。

  • 共识层是多方就区块包含的内容及其交易的排序方式达成一致的地方。

  • 数据可用性层负责保证每个人都可以访问已提交到网络的正确交易。正如我们稍后将解释的,结算层需要访问这些交易,以验证执行层是否诚实。

在基于 Cosmos SDK 的链(拥有自己的验证器集并作为主权应用链运行)的背景下,共识层基本上负责数据可用性和交易的最终结算。然而,启动主权链需要您拥有一组验证器和一个权益证明代币,除非您选择像Interchain Security这样的共享安全解决方案。除了使用代币启动链的法律和操作复杂性之外,还需要注意扩展性方面的考虑。

通过汇总有效扩展

随着网络的发展,可扩展性的三难困境变得更加明显。乍一看,区块链似乎必须在网络安全性、去中心化程度或每秒可以处理的交易数量方面做出牺牲。对于整体链来说,改进一个链传统上是以牺牲另一个链为代价的。然而,通过模块化协议所做的工作,我们可以看到这个三难困境中的一些组件特定于模块化堆栈中的每个层。

例如:接受事务并将其处理为状态更改的执行层需要快速吞吐量。只要有足够的去中心化和安全的结算、共识数据可用性层来保证和验证正确的交易正在执行,它是否去中心化和安全可以说是无关紧要的。执行层的一定程度的去中心化有助于网络的活跃性,但对于防止任何形式的不当行为并不重要。换句话说,它不会影响有关网络的任何信任 假设。

通过模块化区块链堆栈,开发人员能够外包操作区块链所需的大量工作。应用程序开发人员完全负责执行层,这提高了扩展性并显着缩短了开发时间。这本质上就是为什么汇总现在如此有效和流行的原因。Rollup通常被称为第2 层,它允许一台或多台服务器在链外执行交易,而无需等待缓慢的共识算法就块的内容达成一致。这似乎不安全,但他们可以通过在所谓的零知识(ZK)汇总的情况下提供计算成本昂贵的有效性证明来做到这一点,而不会产生重大风险,或者通过提供一个时间窗口,节点操作员可以在其中提交故障证明作为某人行为不当的证据,就像乐观汇总的情况一样。然而,在这个框架内,出现了一个新的问题:数据可用性问题

什么是数据可用性问题?

当用户在汇总上提交交易时,消息会直接发送到定序器,通常来说,定序器只是一台非常快的计算机,通过链下过程将这些交易批量组合在一起。将其压缩为较小的尺寸后,该批次会被提交到以太坊等结算层。由于这些网络上对区块空间的高需求,这是比将单个交易直接发布到结算层便宜得多的解决方案。目前,大多数汇总都采用单个定序器(即执行排序的一个实体),尽管正在探索共享定序器。这通常是安全的,因为用户可以通过有效性证明来保证交易的执行是有效的或者可以在结算层检查的故障证明。然而,汇总无法保证排序器是否诚实地了解提交的交易,以及是否向每个人发送相同的数据

这就是数据可用性问题的本质。结算层或任何观察网络的全节点的任务是检查汇总所做的工作,并且需要交易数据才能执行此操作。默认情况下,汇总无法轻松且廉价地证明定序器将所有传入交易处理到一个块中,或者已添加到该块的所有交易都在公共域中。因此,排序器可以审查用户提交的交易数据,或者更糟的是,阻止其被结算层验证。

尽管从技术上讲,这种类型的审查也可能发生在常规区块链上,但由于权益证明网络中验证者数量众多,而且只有其中一个需要诚实,因此实际上是不可能的。但更重要的是,结算层不需要数据进行验证,因为交易已经通过共识流程进行了结算。

#Celestia 如何解决这个问题?

#Celestia 是使用Cosmos SDK构建的第 1 层区块链,提供数据可用性作为汇总服务。最常见的是,Celestia 网络从定序器接收所有传入的用户交易,尽管它也可能是这些交易进入汇总执行之前的第一个接收者,具体取决于汇总的配置。我们用一个例子从事务的角度来解释一下。我们将假设一个名为Roll Protocol的虚构网络,它是作为基于 Cosmos SDK 的乐观汇总而构建的。

  • 假设您正在使用 Keplr通过Roll Protocol向您的朋友发送一些$ROLL代币。一旦提交,发送交易首先传输到 Roll Protocol 的排序器

  • 排序器是一台运行Roll 协议的链外进程的计算机,它现在查看所有交易并根据Roll 协议的当前状态测试它们,以查看它们是否确实有效。对于您发送的消息,它会检查它是否包含有效的接收者地址,以及您是否有足够的$ROLL代币可以发送给您的朋友等等。

  • 然后,有效的交易被收集到一个块中并由定序器执行,这意味着对其存储进行更改。您和您朋友的钱包余额将更新以反映正在交换的代币。

  • 然后,这个包含交易的区块由定序器共享给 Celestia,并置于“Roll Protocol”命名空间下,这实际上只是一个标签,可以轻松分隔数据。然后,Celestia 网络上的验证者就区块内容达成一致,并在网络上最终确定,并分发到所有节点。

  • 与此同时,作为区块一部分的所有成功交易都会被排序器转化为一批,并提交到结算层,结算层通常只是像以太坊这样的第 1 层链上的智能合约。结算层是区块链,如果有人发现特定交易无效(例如,您实际上没有资金向您的朋友发送一些代币),则将故障证明发送到该区块链但从事这项工作的人是谁呢?

由单独的 dApp(例如 DEX)运行的其他完整节点也将在排序器执行的同时执行交易。例如,这使他们能够了解最新状态并为您提供有关余额的更新。更重要的是,他们可以提前检查是否有任何交易无效。如果是,则将故障证明提交给结算层。

  • 您可能还记得,乐观汇总在交易结算之前有一个时间窗口。只要您信任运营全节点的实体,让这些全节点提前检查有效性可以帮助用户在乐观窗口关闭之前将交易视为“最终”交易。我们将此系统称为“最小化信任”,因为您只需要真正信任网络包含许多诚实节点中的至少一个节点,即可跳过乐观时间窗口。

  • 为了测试定序器是否行为不当,完整节点以及结算层将需要访问发布到 Celestia 的一些数据,因为定序器可能执行了无效交易。幸运的是,Celestia 网络发布了一个区块,其中包含之前包含在该批次中的所有Roll Protocol传入交易,因此我们确信我们拥有在需要时证明排序器诚实性所需的信息。

值得注意的是,Celestia 并不关心每笔交易包含什么。事实上,它甚至无法理解这些交易,因为 Celestia 上没有使用相同语言的执行环境。通过这个模块化堆栈分离这些问题,排序器可以专注于快速执行交易,结算层可以专注于安全并提供桥接功能,而共识数据可用性层可以专注于去中心化。通过确保负责网络运行的每个子组件都是高度专业化的,这极大地提高了可扩展性和优化性。

尽管我们的示例使用基于 Cosmos SDK 的汇总,但不排除 EVM 兼容的汇总。Celestia 也可以作为 EVM 生态系统的数据可用性层运行,可以说比以太坊上的EIP-4844(也称为Danksharding)等替代方案便宜得多。

汇总与主权链的比较

构建 Rollup 和使用 Celestia 网络有很多好处。如果您已经在链间进行开发,则可以继续使用您熟悉的工具和软件,同时提高协议的吞吐量,消除网络上对验证器的需求,甚至可能在需要时无需令牌即可启动。让我们看一下构建汇总与主权应用链之间的一些区别:

  • 可扩展性和效率:与主权 Cosmos SDK 链相比,使用 Celestia 的汇总通常会提供更高的可扩展性和效率。这是因为汇总将大部分交易处理转移到第 2 层,从而可以更快地处理更多交易,而主权链则受到共识算法的瓶颈。如果您的应用程序需要大量交易,则汇总可能比主权链更合适。在这种情况下,您的应用程序将需要在结算层上花费代币,这可能会很昂贵,具体取决于您选择的链,尽管 Celestia 减少了要发布的数据量。

  • 活跃性和去中心化:Rollups 通常使用单个定序器运行。正在研究建立有效的共享测序仪,但这项工作仍处于领先地位,并且可能会降低汇总的效率。目前,执行层的去中心化实际上还不存在。因此,如果定序器离线,则汇总的冗余和活跃度受到影响的风险更大。可以设计冗余机制,但汇总开发人员继承了基础设施的复杂性,这种复杂性通常由主权区块链上的验证者共享。

  • 安全性: Rollups利用底层结算层的安全性,而主权链则需要确保自身网络的安全性。如果您选择使用主权 Cosmos SDK 链,则需要确保拥有大量且多样化的验证器来保护您的网络,以及足够大的市值(以防您使用证明)质押代币。通过汇总,您可以继承结算层的安全性,如果您自己实现应用链的某些要求具有挑战性,这可能会很有帮助。

  • 复杂性:与使用 Cosmos SDK 创建主权链相比,构建 Rollup 系统可能更复杂。这是因为需要管理 rollup、Celestia 和结算层之间的交互。如果您的团队没有汇总经验或不想处理增加的复杂性,那么主权链可能是更好的选择。然而,使用Rollkit框架使开发过程变得更加容易,使您可以相对轻松地构建汇总。

  • 互操作性: Cosmos SDK 链受益于区块链间通信(IBC)协议,该协议允许不同的链进行互操作。虽然汇总可以与其他链交互,但细节将取决于具体的实现,并且可能会更加复杂。在大多数情况下,汇总使用结算层作为桥接枢纽。