认识区块链的不可能三角

在传统货币理论中,「不可能三角」指的是国家无法同时实现资本自由流动(Capital mobility)、固定汇率(Exchange rate)、独立自主的货币政策(Monetary policy),最多只能同时满足两个目标。

模块化区块链的概念出现其实就是希望解决区块链「不可能三角」的问题,所以在正式介绍模块化区块链之前有必要认识这个概念。

完美的区块链拥有三个要素:安全性、去中心化和可扩展性。

但一般情况下在一个区块链必须舍取其中一项,以达到其他两项要求:

可扩展性和去中心化会受到安全性的阻碍,但安全性会因提供可扩展性而受到损害 一般首先被关注的是去中心化和安全性,最后才是可扩展性

安全性

区块链本质上是安全的,但并非完全不受黑客攻击。如果黑客能够安全控制一半以上的网络(51%),就能推翻共识并更改链上数据,以操纵交易及从网络中窃取信息。历史上的51%攻击已经出现过在小型山寨币的身上。网络中的参与者(节点)越多,它就越安全。参与方的数量越多,黑客就越难控制系统。

去中心化

区块链与网络上的每个人共享所有数据,以便在将其添加到数字数据库之前对其进行检查和确认,达成一个「第三方的金融系统」。由于这种分布式系统需要广泛参与者就任何数据的有效性达成一致,交易时间可能会很慢。因此区块链需要扩展,也就是说能够以更快的速度处理更多的数据。另外, 若然区块链并不安全,去中心化的概念也是空谈, 因为最终也能给黑客控制。

可扩展性

可扩展性简单而言就是交易速度以及区块链的规模。要增加整体速度简单直接的方法就是减少确认和添加到网络数据的参与者数量,但是会牺牲了去中心化的程度,同时由于控制权交给少数参与者。而且这还会导致安全性减弱,导致51% 攻击更易发生。

不可能三角中的例子:比特币

以比特币为例,它是目前为止最安全的加密货币之一,因为分散式的大量节点使它做到了去中心化,但它的代价就是扩展性严重不足,平均只有7 TPS(Transaction per second 每秒能负荷的资讯量),这数值是完全无法负荷整个交易市场的,所以比特币实际上牺牲了可扩展性。

单体区块链(Monolithic) vs 模块化区块链(Modular)

共识、执行、数据可用性和结算被认为是区块链网络的四个主要功能。当区块链网络在其基础层中执行所有这四个功能时,它被称为单体区块链。然而,如果区块链网络只处理基础层四个功能中的几个,而将其余功能外包给其他层,则它被称为模块化区块链。

共识

就数据的可验证性达成一致。区块链如何决定哪些块是有效的并且应该添加到链中。在单体链中,共识是通过节点就新区块要处理的交易达成一致,包括交易的顺序,令到网络保持共同状态。

执行

区块链的计算。那就是Tx 速度/状态转换速度。系统中可用的交易验证器数量越多,其交易验证时间就越长。可以减少网络中的节点数量以增加吞吐量或每秒执行的交易数量。

数据可用性和结算

每个块中可用的空间量。为了能够成功验证数据,必须要有足够的空间量。单体区块链通常在同一个区块中有许多交易,以实现高吞吐量和区块空间的扩展。一旦节点服务提供商没有所需的存储空间, 这些交易将会被中断。

区块链存储历史并保证其真实性。为了使其成为一个可信的网络,所有参与者必须能够查看和验证存储的数据。这个问题与验证数据是分开的,因为所有的数据无论是否有效,都需要在网络上可供使用,并且不被任何一方扣留。这种保证被称为数据可用性,随着区块链规模的扩大,它是一个重要的问题。

什么是模块化区块链

模块化区块链是一种设计成由「小型可交换模块」组成的区块链系统,可以根据需要轻松添加或删除模块。这使组织可在保持区块链的安全性和完整性的同时,能根据自己的具体需求去定制和更新系统。

与此相对,传统单体区块链系统是作为一个单一的、大型集成的系统设计,所有不同组件(如共识算法、存储系统和通信协议)都紧密集成,无法轻松分离或替换。

模块化区块链和单体区块链主要区别在于它们的设计和灵活性。单体区块链系统通常难以定制和更新,而模块化区块链系统则更加灵活,可以根据特定的需求进行定制,并且可以更容易地与其他系统或技术集成,并具有更好的可扩展性。

针对上文提及的不可能三角,模块化的最大好处就是在没有牺牲安全性的前提下,提高区块链的可扩展性,解决不可能三角的问题

如何运用模块化区块链解决不可能三角

模块化架构最显著的优势包括可扩展性、易于设计和灵活性,所以可以针对性解决可扩展性的问题

可扩展性和效率:

单体区块链在自己的第一层中已经拥有了所有的预期功能,由于试图在一个层内同时处理所有功能,所以令创建区块变得更困难。在模块化区块链下,实际的功能可以在不同的层(Layer)中执行和共享,提高可扩展性。

目前提升可扩展性的技术有两个,就是分层与分片。分层就是Layer 2,简单说就是将原本要在链上进行的运算移到另外另一层去执行,最后才回到链上结算,可以大幅提高传输速度并降低Gas fee。Layer 2 中的Rollups 是一种常见的模块化区块链,因为它们只处理执行,将共识和数据可用性外包给以太坊,例子有Optimism 和zK-rollup。

分片的话是将大量的待处理交易和节点分组,并配对运算,同样能提高交易速度,可以参考下面这张图片,分片后的效果显而易见。

去中心化:

尽管模块化区块链被分成不同的层,但它仍然确保共识,确保安全性。在模块化下,没有任何一台服务器可以单独操纵网络,所有交易执行仍需要区块链中的共识。

模块化和单体区块链的潜在缺点:

模块化区块链 单体区块链

安全性:

与在单个层中执行每个区块链功能的单体区块链不同,模块化链可能缺乏与保护相关的特性

可扩展性:

单体链使用更快的区块时间和更大的区块大小来实现更高的吞吐量。这增加了对节点的硬件要求,同时减少了可以验证链的人数,从而导致中心化和增加的安全风险。

复杂程度:

设计的复杂程度比起单体区块链更高,因此容易有错误和漏洞的发生。同样,执行层(例如Ethereum)必须需要某些复杂的机制,例如欺诈证明和有效性证明,复杂的机制加深了设计难度

资源限制:

节点来源限制,例如带宽和存储,会对区块链效率产生影响。

相关代币价值低:

由于链组件的应用有限,很难吸引代币价值。例如与执行层相比,一个纯粹关注共识和数据可用性的Layer 代币会有较少的应用场景

安全和去中心化:

单体区块链限制区块时间和区块大小以实现高度去中心化。这增加了验证节点的数量但降低了吞吐量。

模块化和单体区块链的潜在优点:

模块化区块链 单体区块链

可扩展性:

在区块链中使用模块化可以增加规模,可以引入健康的信任假设

安全性:

单体区块链可以在自己的节点上强制执行安全交易

易于区块链的部署:

通过利用模块化设计,新的区块链可以更快地启动,而不必担心架构的各个方面是否正确

数据验证:

节点会观察区块链上的交易并在达成共识后对其进行验证。这解决了区块链数据存储在多个节点时的数据问题。

灵活性:

专门构建的模块化链为原来链的设计实施提供了更多选择。例如模块化区块链系统可能包括专注于安全性和数据可用性的模块化链,而其他则专注于执行。

设计:

单体区块链更易于实施和设计

实际例子

模块化区块链例子: Ethereum

以太坊是目前存在的模块化区块链的完美示例之一, 值得一提的是以太坊本质上是单体的,但在ETH 2.0 推出过后, 将透过共识机制的改变吸引更多验证者加入网络。同时间引入分片和Rollup 技术,随着引入更多的分片,可以存储更多的数据(即区块空间增加),而Rollup 则可以处理更多的数据。

单体区块链例子: Bitcoin | Solana

比特币是单体区块链的最代表性例子之一,尽管闪电网络(Layer 2 解决方案)试图成为链的可扩展模块化方面。然而,鉴于其目前的架构和共识机制,它仍然是一个单体的区块链。Solana 是另一个单体区块链。虽然它通过增加区块空间(通过增加节点要求)解决了可扩展性问题,但在去中心化方面仍然存在不足,因为对验证者的要求太高。

伪模块化区块链例子(Pseudo Modular):Avalanche

伪模块化将指的是不将任何组件外包给模块化区块链,但确实具有将单个网络拆分为多个部分的设计的单体区块链。这将包括具有分片或子网络的区块链,例如Avalanch 基本上只是多个单体链组成的。

每个子网都是一个独立的区块链。Avalanche 不需要另一条链来工作。因此Avalanche 是单体区块链。

不同形式的区块链的优缺比较