原文:《Understanding the rivalry between Modular vs Monolithic Blockchains》by Kyrian Alex

编译:ChinaDeFi

众所周知,区块链是一个分布式数据库,它支持安全、透明和防篡改的数据共享。区块链技术的众多潜在应用在加密社区中引发了一场关于区块链扩展最佳方式的激烈讨论。

如果你一直关注这个领域,肯定经常听到新协议开始时声称每秒处理X万个交易的宣传。然而,如果你进一步调查这些说法,你就会发现它们都是理论上的。它们中的大多数在启动时便失败了。

要完全理解为什么我们需要能够达到数千TPS的系统,就必须首先理解区块链的设计。要做到这一点,我们首先需要考虑单片设计和模块化设计之间的竞争。

据说,每一场竞争都有比较的关键点。在区块链世界中,模块化和单片区块链之间的竞争可以归结为三个关键领域:可扩展性、吞吐量和数据可用性。每个都有自己的特性、功能和应用程序。

让我们仔细看看这三个领域,看看模块化和单片区块链的比较。

什么是单片区块链?

它是一个区块链,其中所有的职责集都在一个单层上处理,而不使用第三方服务。

区块链执行四项主要任务或功能:

  • 共识:对数据的可验证性达成一致。决定哪些区块是有效的并应该添加到链中。
  • 数据可用性:每个区块中可用的区块空间量。验证是否收到必须根据要求提供的数据。
  • 执行:一个区块链的计算。这就是Tx速度/状态转换速度。

共识层是信标链。它告诉我们什么是真实的。数据层告诉我们已经发生了什么,即存储。执行层会告诉我们正在发生什么,计算什么。

所有这些层都非常复杂,但单片区块链的所有节点和所有硬件都试图在同一点同时完成这三件事。

它是一个区块链,将共识机制、数据可用性层、结算层和执行层组合成一个单层。通常情况下,结算和执行是相互关联的。

区块链系统的所有关键功能或职责都在单片区块链内部处理。它们通常以牺牲可扩展性为代价优先考虑去中心化和安全性(优化区块链的一个属性并限制其他属性)。

另一方面,我们有模块化区块链。

什么是模块化区块链?

模块化区块链是基于模块化原则运行的区块链。他们通常处理一组专门的职责(通常是链下),然后将它们外包给一个或多个单独的层。

区块链不是同时执行所有三个功能(共识、数据可用性和执行),而是将它们划分为不同的类别,由网络参与者的不同角色和职责分别执行这些功能。

在这种情况下,执行层、底层共识层和数据可用性层将分离,允许节点独立执行交易,而不是在有限的空间或交易内执行所有交易来测试有效性。

这些不同的组件/层可以组合起来实现各种目标。与它们提供了更大的灵活性和可移植性。它使开发人员能够优化各种区块链组件,以创建一个完整的系统。它们通过简单地外包安全来启动新的区块链,就像当前的第二层解决方案一样。

让我们以Rollup为例。

它们是一种常见的模块化区块链。rollup处理交易并将共识、数据可用性和结算委托给它们的父链。

以太坊是第一个开始向分片模块化区块链结构过渡的。链被分成多个子链,每个子链负责网络活动的一部分。这些分片现在可以决定是处理交易还是存储数据。

我们已经讨论了单片和模块化区块链之间的区别,现在让我们看看它们的优点和缺点。

模块化与单片区块链之间的竞争:可扩展性、吞吐量和数据可用性

单片区块链的优点

  • 单片区块链可以在它们自己的节点上强制执行安全交易。
  • 节点观察区块链上的交易,并在达成共识后验证它们。这解决了区块链数据存储在多个节点时的数据问题。
  • 实用:如果用户继续使用代币,那么单片区块链可以在长期内提供额外的价值。
  • 它们易于识别,甚至更容易实现和设计。

模块化区块链的优点

  • 可扩展性:在区块链中使用模块化可以增加规模,而不会引入有害的信任假设。
  • 易于设计
  • 简化链部署:通过利用模块化设计,新的区块链可以更快地被启动,同时也不必担心架构的每个方面都要保持正确。
  • 灵活性:专门构建的模块化链为权衡和设计实现提供了更多的选择。例如,模块化区块链系统可能包括关注安全性和数据可用性的模块化链,而其他的则关注执行。

现在,不管两个区块链的显著好处,在决定不同的方法时总是要权衡利弊。让我们看看它们的缺点是什么。

单片区块链的缺点

  • 低效执行:单片链上的节点可能偶尔需要重新执行交易以进行有效性验证,从而导致延迟。
  • 资源限制:节点源限制,如带宽和存储,可能会对区块链效率产生影响。
  • 灵活性:单片链是刚性的,不能在不牺牲其他功能的情况下优化所需的功能。
  • 可扩展性:单片链使用更快的区块时间和更大的区块大小来实现更高的吞吐量。这增加了对节点的硬件需求,同时减少了能够验证链的人数,加大了中心化和安全风险。
  • 安全性和去中心化:单片区块链限制区块时间和区块大小,以实现高度去中心化。这增加了验证节点的数量,但降低了吞吐量。这是因为它在每个节点上都处理交易。
  • 状态膨胀:在链上存储交易数据会导致区块链的大小随时间呈指数增长。这可能会增加对节点的硬件需求并损害去中心化。

模块化区块链的缺点

尽管模块化区块链解决了单块区块链的各种问题,但模块化架构也有自己的缺点。

  • 与单片区块链(在单层中执行每个区块链功能)不同,模块化链可能缺乏与保护相关的特征。
  • 复杂性:由于设计的复杂性,通常很难在没有专业操作人员参与的情况下进行设计。执行层一定会需要某些复杂的机制,例如欺诈证明和有效性证明,以允许安全层强制执行链下状态转换的有效性。复杂的设计需要复杂的机制来发挥作用。
  • 依赖第三方有效性集带来的安全风险。无法像单片区块链那样保证自身的安全。如果安全层(通常处理共识和数据可用性)失败,则模块化链可能就会失败。
  • 代币经济学:由于链组件的应用有限,就很难吸引代币价值。例如,与执行层相比,纯粹关注共识和数据可用性的层可能会看到其实用代币的使用较少。

进一步比较分析

首先,让我们回顾一下模块和整体的定义

  • 单片在一个协议内完成所有工作,这使得它们可以自给自足(但也低效)。即使由于过载而出现停机,它们也不允许使用外包功能。
  • 模块化链是专门化的,因为它们只做协议中的一个子集。因此,它们不是自给自足的。它们必须与另一条链结合才能发挥作用;即它们不能独立运作。

1.Arbitrum(或任何rollup)有模块化或单片设计吗?

Arbitrum需要另一个链来发布数据并解决欺诈,否则它将无法工作。因此,它是模块化的。

2.以太坊本质上是模块化还是单片?

它是单片。rollup可以部署在以太坊上(任何L1都可以),但对以太坊来说,rollup不是必需的。还应该注意的是,一旦被推出,以太坊的danksharding组件将是模块化的。

3.Avalanche和它的子网呢?它是模块化的还是单片的?

每个子网都是一个独立的区块链。他们不需要另一条链就能起作用。因此,它是单片的。需要注意的是,仅仅因为子网代码是用模块化软件栈构建的,并不意味着它就是模块化协议。

模块化区块链布局明显比单片区块链布局更灵活。它旨在为矿工提供单片区块链中无法提供的特性。当矿工不太关注共识等特定功能时,他们就能够利用布局,更快地创建新的区块链,而不管区块链架构如何。

值得注意的是,在模块化区块链中,共识和数据可用性(DA)是不可分割的。它们必须始终作为DA层的单个组件出现,以便提供准确的事件年表。这两个因素必须始终存在。

接下来,我们还必须解决可扩展性的三难困境,即区块链只能优先考虑三个因素中的两个:可扩展性、去中心化和安全性。

假设我们有三个团队来演示这一点。A、B和C是各自的队伍。

我们在A团队中有像Solana和Binance Smart Chain这样的高TPS链,它们牺牲了去中心化。在B团队中,我们有像Cosmos这样牺牲了安全性的链,在团队C中,我们有像比特币和以太坊这样专注于去中心化和安全性的链,它们牺牲了可扩展性。这些都在某种程度上做出了牺牲。

这适用于所有单体区块链,但我们的想法是,我们可以使用模块化的方法在一个区块链中实现所有这些因素。

通常,在单片区块链设计中,所有四个任务都在同一层上执行,这可能会随着链的扩展而降低效率。通过模块化区块链,每个任务都可以由一层专门执行,而其余的任务则被移到其他层。

因为让层专注于他们的特定任务,所以他们可以很好地完成目标。这增加了灵活性,因为我们不再需要做出某些让步来适应单片区块链的约束。

现在,让我们用以太坊网络更好地解释这一点。

在单片区块链,一个区块链中就有一个单独的区块链在进行中。此外,所有的验证者都验证该单链。在以太坊协议中,有一个巨大的验证者池,其中大约有30万个验证者。

我们可以使用这个验证者池,并在稍后获得分片时分发它。当我们获得分片,即更多的链和更多的区块空间时,我们实际上可以将这些验证者分散到多个分片中,而不是让所有验证者验证一个单片区块链,因此,我们可以让 5,000 个验证者验证单个分片,然后添加越来越多的分片,而不是 300,000 个验证者来验证单个链。

这将增加L1上可用的区块空间量,同时保持去中心化。因此,数据层是包含所有计算结果的历史/存储层。然后,rollup将使用这些分片作为信息存储,并在这些分片上进行处理。第一次分片迭代将添加大约 18 倍于以太坊 L1 的数据。这意味着以太坊的可扩展性将提高大约 18 倍。

当在以太坊L1上增加了大约18倍的规模时,它的可扩展性并不是在rollup上增加了18倍,这主要是由于rollup中的压缩。

当少量数据被添加到以太坊的L1中时,L2可以使用更多数量级的数据,因为它们最终将其压缩到非常小的数据包,并将其安置在L1上。因此,L1上的1MB等价于L2上的1GB交易数据。当线性增加以太坊上的分片数量时,就会成倍增加可以处理的交易数量。

我们拥有的验证者越多,我们就有越多的资本来守护和保护区块链,我们拥有的验证者越多,我们就可以创建更多的分片,这就增加了更多的区块空间。

结论

摆脱可扩展性三难困境的唯一方法是去中心化。

如果只优化可扩展性,正如许多L1所做的那样,这将会增加对硬件和节点的需求,减少网络参与者的数量,从而失去去中心化。当优化执行时,这些链移动得非常快,区块被快速添加到账本中,但能跟上这些链的计算机是非常强大的计算机。如果电脑很慢,就会落后。

zkr、optimistic是模块化区块链方法的例子,它们已经成为加密领域的热门话题。Celestia是另一个例子,它特别关注数据可用性层。

另一方面,单片区块链的一些例子包括比特币、Solana、以太坊1.0等链。(在最近升级之前)。

正如本文所演示的那样,单片方法和模块化方法各自都是有效的。因此,开发人员必须决定哪种方法最适合他们的特定用例。例如,一个DeFi应用程序可能优先考虑安全性,因此选择单片设计来提供更强大的安全性。然而,如果同一个应用程序要优先考虑吞吐量和执行速度,那么模块化设计可能最适合它们的用例。

这表明两种设计都有其效能。

那么,哪个更好呢?这取决于个人喜好或应用类别。