首页  >  要闻 >  区块链 >  Maven11:模块化的定义、发展与未来 对加密世界为何重要?(一)
Maven11:模块化的定义、发展与未来 对加密世界为何重要?(一)
 吴说区块链    本文来自 吴说Real
2022年04月21日 03:20
  收藏
   

前言

早在2019年,当我们投资 LazyLedger(现在叫 Celestia)时,模块化这个词在区块链设计方面还没有流行起来。而在过去的一年里,它已经被许多 KOL 以及 L2 团队所普及,当然还有 Celestia Labs 团队,他们在他们的第一篇关于分离共识和执行的博客文章中创造了这个术语。

正因为如此,我们很高兴能提出我们对 Celestia 投资的最新概述。它将提供对我们所设想的模块化世界的见解,在这样一个生态系统中的各个层次和协议,以及为什么我们对它提供的潜在功能如此兴奋。

架构

目前,大多数公链都是属于单片链,即区块链网络同时包揽了数据可用性、结算和执行这三项功能层(下文简称功能层)。虽然这些单片链也已经在进化,如具有模块化组件的以太坊 Rollups 和 Avalanche 的子网。然而,这些并不是模块化区块链的真正含义。

让我们定义一下我们所说的“模块化”是什么意思,这样就不会有误解。当我们说到模块化时,我们指的是区块链网络的各功能层是解耦的,即区块链网络的三个功能层之一是解耦的,所以要么是执行层,要么是共识层,要么是数据可用性层。这意味着你可以说 Rollups 是模块化的一种表现,因为它们只负责执行。不过以太坊还是作为一个整体处理其他一切。

以 Celestia 为例,我们可以说它是模块化的,因为它只负责数据可用性和共识。而它将结算和执行委托给其他层。这些层也是模块化的,因为它们只处理三大功能组件本身的一部分。这意味着我们不能称以太坊为模块化的区块链,因为这些 Rollups 网络仅负责自身网络的交易执行,同时以太坊自身也执行交易,这意味着在其当前的实现中,以太坊仍然是一个单片链。尽管如此,以太坊仍然是理想的结算层,同时也是最去中心化、最安全的公链。

现在,你可能会问 Polkadot 和 Avalanche 呢?对于 Avalanche 来说,它不是模块化的,每个子网都拥有三大功能组件。这意味着它们不能模块化扩展,而是通过水平地使用其他单片链来扩展。Polkadot 的 parchains 负责执行,类似于 rollup,同时将块发送到中继链以获得共识和数据可用性。但是,中继链仍然保证了交易的有效性。

随着时间的推移,单片链的增长会导致大量的拥塞和效率低下。如果我们想要承载更多的人,单靠包揽这三大功能的单片链是完全不可行的。因为它会给终端用户带来极高的费用和延迟。这就是为什么我们看到越来越多的链决定将它们的链分开。我们都听说过传说中的合并,它将把以太坊过渡到一个 PoS 链。然而,他们也计划最终转向分片。分片是指将区块链水平地分割成几个部分。这些分片只处理数据可用性。

分片和 rollup 是以太坊社区计划解决其可扩展性问题的方式。还有其他方法吗?当然,我们也看到 Avalanche 在 Subnets 中朝着模块化的方向发展,但是,正如前面所解释的,我们不会将其归为完全模块化。为了更好地理解每个不同的 “模块化” 架构是如何工作的,让我们试着把它们画出来,以便更好地概述它们的区别。

架构对比

首先,我们来看看以太坊的目前的架构以及未来启用分片后的架构是怎样的。

当前,以太坊负责全部的功能层,不过它也分离了部分交易执行给了 L2 Rollups,由它们批量处理交易然后由主网结算。未来启用分片后,以太坊的架构将会是这样的:

这将把以太坊变成一个统一的结算层,而分片将负责数据可用性。这意味着,分片将只是 DA 环境,供 Rollups 提交数据。在分片上,验证者只需要为他们正在验证的分片存储数据,而不是整个网络。分片最终会让你在轻型节点上运行 Ethereum,类似于 Celestia。

对于 Avalanche 来说,他们的主要扩展主张是通过可以轻松创建的子网。Avalanche 的架构看起来有点像这样:

子网拥有一组独立验证自身网络的新验证者。所有 Avalanche 子网都会自行负责共识、数据可用性和执行。每个子网也将有自己的 Gas 代币,由验证者指定。目前已上线的子网的一个例子是 DefiKingdoms 子网,它使用 JEWEL 作为其 Gas 代币。

在我们继续看 Celestia 的架构之前,让我们先看看 Cosmos。Celestia 在很大程度上借鉴了 Cosmos,并将通过 IBC 与之进行大量互动,因为它也是用 Cosmos SDK 和 Tendermint 的一个版本 Optimint 构建的。Cosmos 架构与目前其他架构有很大不同,因为它使 dApps 成为区块链本身的应用,而不是提供一个虚拟机。这意味着一个主权的 Cosmos SDK 链只需要定义它所需要的交易类型和状态传统,同时依靠 Tendermint 作为其共识引擎。Cosmos 链拆分了区块链的应用部分,并使用 ABCI 将其连接到网络(p2p)和共识。ABCI 是将区块链的应用部分连接到提供共识和网络机制的 Tendermint 状态复制引擎的接口。它的架构通常是这样宣传的:

现在,我们来看看 Celestia 的架构:

这就是 Celestia 上的早期生态的样子。Celestia将作为所有在模块化堆栈内运行的各种类型的Rollups 之间的共享共识和数据可用性层而运作。结算层的存在是为了促进它上面的各种 Rollups 之间的桥接和流动性。而你很可能也会看到主权 rollups 独立运作,没有结算层。

现在我们已经确定了不同程度的模块化,它们是如何运作的,以及它们的外观,让我们来看看像 Celestia 这样的纯模块化区块链的一些独特能力和功能。

共享安全

单片链的优势之一是共享安全,那么在模块化堆栈中,会怎样呢?

这其实很简单,Celestia 提供了区块链网络上建立共享安全所需的基本功能:数据可用性。这是因为每一个使用 Celestia 的网络层都需要将他们所有的交易数据转到数据可用性层,以证明数据确实是可用的。这意味着区块链网络可以毫不费力地连接、观察和相互操作。通过始终拥有底层 DA 层的安全性,使得硬分叉和软分叉也变得非常容易,这一点我们将在后面讨论。

同样,Celestia 允许各种类型的实验执行层同时运行,甚至不依赖结算层,同时仍然具有共享数据可用性层的优势。这意味着迭代的速度将变得更快,因为它可能会随着用户数量的增加而线性扩展。因此,我们的论点是,随着时间的推移,这将导致执行层的复合改进,因为我们不受具有单一中心的执行层的限制,因为执行和数据可用性是解耦的。模块化的无许可性质允许实验,并给开发者以选择的灵活性。

数据可用性抽样和区块验证

Celestia 的区块验证工作与目前其他区块链有很大不同,因为区块可以在次线性时间内被验证。这意味着,与成本的线性增长相比,吞吐量会随着成本的次线性增长而增加。我们通过图表能够更直观地理解:

这是有可能的,因为 Celestia 的轻客户端不验证交易,他们只检查每个区块是否达成共识,以及区块数据是否可用。

Celestia 消除了检查交易有效性的需要,因为它只检查区块是否达成共识和数据的可用性,如上图所示。

Celestia 轻节点没有下载整个区块,而是从区块中随机下载少量数据样本。如果所有的样本都是可用的,那么这就可以证明整个区块是可用的。基本上,通过对一个区块的随机数据进行采样,你可以从概率上验证该区块确实是完整的。

这意味着 Celestia 将区块验证的问题简化为数据可用性验证,我们知道如何使用数据可用性抽样以次线性成本有效地完成这一验证。

DA 证明是指当你要求正在发送的块,要进行纠删码。这意味着原来的区块数据现在被扩大了一倍,然后新的数据被编码为冗余的数据。Celestia 的纠删码将块的大小扩大了4倍,其中25%的块是原始数据,而75%是复制的数据。因此,要求一个行为不端的顺序器或类似的东西,如果它想进行欺诈,就必须扣留超过75%的块的数据。

因此,它允许轻型客户以非常高的概率检查一个区块的所有数据是否已经发布,只需下载该区块的一小部分(DA 抽样)。每一轮抽样都会降低数据不可用的概率,直到确定所有的数据都是可用的。这是非常有效的,因为不是每一个节点都下载每一个区块,而是有许多轻量级的节点下载每一个区块的一小部分,但安全保证与以前一样。这意味着,只要有足够的节点对数据的可用性进行抽样,就有可能提高吞吐量,因为抽样节点的数量在增加。你可能在日常生活中熟悉这种类型的网络(DA 证明),即使你没有使用过区块链,通过使用 BitTorrent 等协议。

可扩展性

当我们谈论可扩展性时,大多数人想到的第一个想法通常是 TPS。然而,这不应该是围绕可扩展性进行的实际讨论。当谈论专业 DA 层的可扩展性时,应该是 mb/s,而不是 TPS,这应该是需要克服的主要障碍。Mb/s 成为衡量一个链的能力的客观标准,而不是 TPS,因为交易的大小是不同的。Celestia 在这方面做得很好,因为它取消了 DA 层,并利用数据可用性采样来提高系统可以处理的 mb/s 数量。

我们的意思是,一个区块链能够处理多少交易的真正限制是基于输入和输出的。因此,通过将数据可用性与输入和输出过程解耦,Celestia 将能够产生比单片链高得多的 mb/s。

这一切都源于数据可用性的问题。也就是在一个提议的区块中,排序器或类似的人可以验证的数据数量,同时受限于底层 DA 层的数据吞吐量。现在,对于利用全节点的单片区块链,解决这个问题的正常步骤是增加全节点的硬件要求。然而,如果你这样做,全节点就会减少,网络的去中心化也会随之动摇。

因此,通过利用我们之前在区块验证部分提到的技术,我们可以在不增加节点要求的情况下提高扩展性,通过 DA 抽样使全节点等同于轻节点。这反过来又会使节点的增长导致更多的吞吐量,因为 DA 抽样会导致次线性增长,它与被添加的轻节点的数量成比例。在单片链的设计中,区块大小的增加同样会增加验证网络的成本,但在 Celestia 上,情况并非如此。

虽然,以太坊也希望通过 EIP-4844 来解决一些可扩展性问题,这将启用一种新的交易类型:blob 交易。其中将包含大量不能被 EVM 执行访问的数据,但仍然能够被以太坊访问。这样做是因为目前,以太坊上的 rollup 交易依靠微不足道的可用 calldata 来执行其交易。分片也会有帮助,但仍然相当遥远,不过若 blob 交易启用,应该能为 rollups 的每个区块提供约 16MB 的数据空间。然而,对 blob 交易空间的争夺将变得多么激烈,还有待观察。虽然,一旦你解决了其中一个可扩展性的难题,另一个可能会冒出来。因此,通过转向模块化结构,我们可以允许堆栈的不同部分专用于它们最能利用的特定资源。

分叉

在大多数情况下,当单片链发生硬分叉时,你会失去底层的安全,因为执行环境不共享相同的安全。通常硬分叉是不可行的,也是不受欢迎的,因为新的分叉不会有数据可用性和共识层的安全。当我们说你可以提交对区块链代码的修改,但你必须说服所有人同意你的修改,这也是同样的想法。以比特币为例。比特币的代码是很容易改变的,然而,让每个人都同意改变是困难的部分。如果你想硬分叉一个单片链,你还需要分叉共识层,这意味着你失去了原始链的安全性。损失的安全量取决于不验证新规范链的矿工或验证者的数量。然而,如果所有验证者都升级到同一个分叉,那么就不会失去安全性。在模块化区块链上,就不会这样,因为如果你想分叉一个结算或执行层,你仍然会有底层共识层的安全性。在这种情况下,分叉是可行的,因为执行环境都共享相同的安全。虽然,这对结算层的 rollups 来说是不可能的,因为结算层作为新增区块的信任来源。

对于执行环境来说,硬分叉是无限的,而且很容易完成,其原因是大胆的想法可以被测试和尝试。同时也使得在别人的工作基础上进行工作是可行的,而不会失去基础层的安全性。如果你考虑一下自由市场的想法(有些人可能不同意这一点),它往往可以创造出竞争性的实施方案,可以得到更好的结果。

编辑: 吴说区块链
更多财经请关注 WX: Chaocaijing123456
币海财经: 全球财讯门儿清 https://www.bihai123.com/
声明: 本文由入驻币海编者上传,观点仅代表编者本人,不代表币海财经赞同其观点或证实其描述,请自行判断。

延伸阅读