摆脱可扩展性三难困境的唯一方法是去中心化。
原文标题:Understanding the rivalry between Modular vs Monolithic Blockchains
原文作者:Kyrian Alex
原文来源:Medium
编译:ChinaDeFi
众所周知,区块链是一个分布式数据库,它支持安全、透明和防篡改的数据共享。区块链技术的众多潜在应用在加密社区中引发了一场关于区块链扩展最佳方式的激烈讨论。
如果你一直关注这个领域,肯定经常听到新协议开始时声称每秒处理X万个交易的宣传。然而,如果你进一步调查这些说法,你就会发现它们都是理论上的。它们中的大多数在启动时便失败了。
要完全理解为什么我们需要能够达到数千TPS的系统,就必须首先理解区块链的设计。要做到这一点,我们首先需要考虑单片设计和模块化设计之间的竞争。
据说,每一场竞争都有比较的关键点。在区块链世界中,模块化和单片区块链之间的竞争可以归结为三个关键领域:可扩展性、吞吐量和数据可用性。每个都有自己的特性、功能和应用程序。
让我们仔细看看这三个领域,看看模块化和单片区块链的比较。
什么是单片区块链?
它是一个区块链,其中所有的职责集都在一个单层上处理,而不使用第三方服务。
区块链执行四项主要任务或功能:
共识层是信标链。它告诉我们什么是真实的。数据层告诉我们已经发生了什么,即存储。执行层会告诉我们正在发生什么,计算什么。
所有这些层都非常复杂,但单片区块链的所有节点和所有硬件都试图在同一点同时完成这三件事。
它是一个区块链,将共识机制、数据可用性层、结算层和执行层组合成一个单层。通常情况下,结算和执行是相互关联的。
区块链系统的所有关键功能或职责都在单片区块链内部处理。它们通常以牺牲可扩展性为代价优先考虑去中心化和安全性(优化区块链的一个属性并限制其他属性)。
另一方面,我们有模块化区块链。
什么是模块化区块链?
模块化区块链是基于模块化原则运行的区块链。他们通常处理一组专门的职责(通常是链下),然后将它们外包给一个或多个单独的层。
区块链不是同时执行所有三个功能(共识、数据可用性和执行),而是将它们划分为不同的类别,由网络参与者的不同角色和职责分别执行这些功能。
在这种情况下,执行层、底层共识层和数据可用性层将分离,允许节点独立执行交易,而不是在有限的空间或交易内执行所有交易来测试有效性。
这些不同的组件/层可以组合起来实现各种目标。与它们提供了更大的灵活性和可移植性。它使开发人员能够优化各种区块链组件,以创建一个完整的系统。它们通过简单地外包安全来启动新的区块链,就像当前的第二层解决方案一样。
让我们以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应用程序可能优先考虑安全性,因此选择单片设计来提供更强大的安全性。然而,如果同一个应用程序要优先考虑吞吐量和执行速度,那么模块化设计可能最适合它们的用例。
这表明两种设计都有其效能。
那么,哪个更好呢?这取决于个人喜好或应用类别。