什么是Layer2

  • Rayer
  • 更新于 2024-05-21 17:27
  • 阅读 2278

该文章深入介绍了Layer2的概念,为什么要用Layer2,以及各种Layer2扩容方法的优势与劣势

什么是Layer1

第 1 层是基础区块链。以太坊和比特币都是第 1 层区块链,因为它们是各种第 2 层网络构建的底层基础。第 2 层项目的示例包括以太坊上的“汇总”和比特币上的闪电网络。这些第 2 层项目上的所有用户交易活动最终都可以回归到第 1 层区块链。

以太坊还充当第 2 层的数据可用性层。 Layer 2 项目将把他们的交易数据发布到以太坊上,依靠以太坊来提供数据可用性。该数据可用于获取第 2 层的状态,或对第 2 层上的交易提出争议。

什么是Layer2

第 2 层 (L2) 是描述一组特定的以太坊扩展解决方案的统称。第 2 层是一个独立的区块链,它扩展了以太坊并继承了以太坊的安全保证。

为什么我们需要Layer2

区块链的理想的三个属性是安全性、去中心化、可扩展性,也是区块链的不可能三角。

image.png Layer 2 是一项新兴技术,其建立的前提是存在可扩展性限制,因为区块链承担的任务太多。这是因为当今的区块链满足三个核心功能:执行、数据可用性和共识。

  • 执行——事务处理和吞吐量。通过区块链每秒可以处理的计算数量(其中交易是子集)来衡量。
  • 数据可用性——网络上节点和验证器对交易、状态和其他数据的存储要求。以兆字节、千兆字节等标准存储术语进行测量。
  • 共识——节点和验证者就网络状态和交易排序达成的广泛协议。以去中心化和最终确定时间或所有节点就特定状态更改达成一致所需的时间来衡量。

第 2 层解决方案的工作原理

第二层网络通常由两个部分组成

  • 处理基础区块链上的交易和智能合约
  • 解决任何争议并通过将其固定在基础区块链上来就状态达成共识。

也就是说,Layer2用于解决Layer1的计算量问题,同时利用layer1的共识层来解决layer2自身的争议问题。

第 2 层网络是快速执行事务和计算的地方。它们在实现这种吞吐量的方式上可能存在很大差异。每个 Layer-2 环境之间的一个共同点是,当寻求在基础链上解决时,Layer 2 必须向区块链提供某种加密且可验证的“证明”,以证明所提议的状态更改的完整性,或者先发制人或追溯。

同样,底层智能合约的实现在第 2 层之间可能有所不同,但智能合约的核心功能始终是

  1. 持有和释放转移到第 2 层的资金
  2. 接收第 2 层生成的某种证明,对其进行验证,解决争议,然后完成交易

概念化这两种动态的一个好方法是采用现有第 2 层实现的两个示例——Payment Channels 和Rollups 。

Payment Channels

image.png 支付通道通过将流动性预先注入通道,可以在两个或多个用户之间实现链上代币的链外转移。

alice和bob通过将集体资金锁定在智能合约中并同意(通过加密签名)每个人有权访问多少资金来创建支付渠道。例如,如果双方都锁定了 50 美元的资金,总计 100 美元,那么他们很可能会同意各自在支付渠道中使用 50 美元。

一旦支付通道建立,Alice 和 Bob 就可以通过签名消息自由地进行链下交易,而无需将交易提交到底层区块链。 Alice 可以以零成本和闪电般的延迟向 Bob 付款,反之亦然。当通过双向支付通道进行通信时,Alice 和 Bob 的交易不会发布到底层区块链上;只有当他们共同决定关闭通道时,最终结果才会传输到区块链并在区块链上结算。

这个系统的最终结果是Bob和Alice只需要支付两次链上交易即可打开和关闭支付通道。当支付通道开放时,可以以零成本和亚秒级速度直接点对点进行数百万次转账——这是可扩展性的典型例子。

Rollups

OptimisticZero-knowledge Rollups通过在链下执行智能合约状态变化并在链上证明它们,从而提供更高的吞吐量和更低的成本。Rollups的可扩展性是通过以下三种方法实现的。

  1. Rollups执行交易的链下执行,要求底层基础区块链只需要执行小证明来验证网络活动并存储原始交易数据。
  2. 当提交到区块链时,Rollups会将交易数据批量处理在一起,以便将链上 Gas 成本分配到多个交易中。
  3. Rollup 仅需要至少一个诚实的验证器来向基础层区块链证明交易的有效性,从而允许更小的验证器集和增加的硬件要求,而不会显着影响安全性。

image.png

Off-Chain Execution  链下执行

Rollup 的一个关键特征是它们执行交易的链下执行。这意味着第 2 层网络代表基础区块链处理交易,无论是与其他用户还是与智能合约。与更小的验证器集和更好的硬件相结合,与基础区块链相比,在第 2 层网络上进行交易时,这可以提供更高的吞吐量。

这是一种明确而直接的方法,可以减少抑制区块链可扩展性的交易费用,并且与数据压缩相结合,与基础区块链上的交易相比,它可以显着降低执行成本。

zk-rollups 和optimistic rollups 都以类似的方式批量处理事务。

Fewer Validators  更少的验证者

如前所述,第 2 层固有的安全保证和底层区块链的去中心化。这将在下面详细阐述,但核心思想是第 2 层必须向其底层区块链提供一种形式的证明,证明其提议的状态更改是有效的。

这使得Rollups可以用更少的验证器来处理第 2 层网络上的所有交易。验证者可以是获得许可的实体,并且通常拥有更复杂的硬件,可以更快、更低成本地计算交易。出现这种情况的原因是验证者不提供共识——这是通过基础链上的智能合约实现的,而智能合约需要证明。

第 2 层安全性:proof的重要性

“proof”的概念是第 2 层的基础,以便它们继承基础链的安全保证。在物理世界中,proof可以采取多种形式。武器上的指纹和事件发生时的摄像机记录都是证据的例子。

密码证明的工作原理类似,但其内容比实体法庭所接受的内容客观得多。用密码学证明某事可以客观、可验证且防篡改地保证某件事是真实的。如果证明有效,则保证是正确的。就支付渠道而言,交易的加密签名提供了智能合约解决任何争议所需的明确事实。

每个第 2 层都依赖某种形式的加密证明来解决基础链上的争议。当今最突出的证明是Fault Proof和Validity Proof(也称为零知识证明zk proof,它们是 optimistic rollups 和 zk-rollups 的基础。

Payment Channel 签名消息

假设在关闭支付通道时,Bob或Alice采取恶意行为,并试图拿走不属于他们的资金。任何一方都可以通过向智能合约提供支付渠道“账本”的过时副本来做到这一点。

支付通道的一个关键设计元素是交易必须始终经过加密签名。这成为一种与解决争议的底层智能合约兼容的证据形式。例如,如果Alice提出了一份过时的账本副本,该副本给了她比她应得的更多的资金,那么Bob可以对结算交易提出异议,并提供一份较新的账本副本。然后,正确的金额可以由智能合约确定。Alice还必须为她的不诚实行为支付费用。

底层智能合约的裁决过程正是使支付通道成为第 2 层的原因。思考这个问题的一个简单方法是从“证明”的角度来看待它。一旦支付通道打开,Bob和Alice都必须对他们进行的每笔交易进行加密签名,并存储对方签名的副本。

这是支付渠道内活动的证据,但仅仅有证据是不够的。需要执行真相,就像法官在提供证据且陪审团做出裁决后做出决定一样。在这种情况下,智能合约将执行判决并通过将正确的金额返回到基础链上每个参与者的钱包来进行结算。

这就是继承底层区块链的去中心化和安全保障的意义。支付通道处理链下的大部分计算和执行,但在需要达成共识来解决通道的情况下,底层区块链的强大共识层将做出最终决定。

Optimistic Rollup Fault Proofs

Fault Proofs本质上很简单。使用Fault Proofs的第 2 层假定所有交易默认都是有效的。然而,存在一个争议期,任何网络参与者都可以产生争议,并向智能合约提供交易数据和提议的状态更改是错误的证据。当发布Fault Proofs时,Rollups交易将在链上部分或全部重新执行,并将结果状态更改与原始声明进行比较。如果重新执行的结果不同,则原索赔被视为无效并予以恢复。

**Optimistic rollups**使用**Fault Proofs**来确保最终的交易正确反映第 2 层网络上的活动。 如今,Optimistic Rollups 使用了该系统。 “乐观”来自于防错的哲学观点:智能合约“乐观地”假设所有交易都是有效的,直到被证明不然(在被证明有罪之前是无辜的)。回到不诚实验证者的例子,任何网络参与者只需要在争议期间向智能合约提出有效的故障证明,验证者的行为就可以在交易最终确定之前无效。

zk-rollup Validity Proofs

Validity Proofs可以被视为具有与Fault Proofs相反的哲学观点,其中所有计算和执行都受到质疑,并且必须先行证明是正确的。

简而言之,有效性证明证明某件事是正确的。在 zk-rollup 的情况下,这必然指的是在第 2 层网络上发生的事务和计算。因此,相应的链上智能合约可以验证第 2 层的有效性证明以批准状态更改。在验证器的背景下,功能齐全的 zk-rollup 有效地使得错误或恶意交易不可能在基础链上得到解决,因为每批交易都必须有相应的有效性证明。

有效性证明,提前证明Layer2网络活动的有效性 有效性证明,提前证明Layer2网络活动的有效性

Scaling Blockchains 扩展区块链

区块链可扩展性是指区块链在网络中添加更多用户时处理交易、存储数据和达成共识的能力。

信任最小化是区块链技术独特的定位所产生的一种宝贵的安全属性——用基于计算机代码、密码学和去中心化共识的保证取代握手、品牌声誉和纸质合同。区块链提供的这些卓越保证构成了密码学真理的基础。

加密信任为应用程序的后端计算和记录保存带来了信任最小化。 加密信任为应用程序的后端计算和记录保存带来了信任最小化。

区块链已成功地将信任最小化引入新的用例,包括货币政策(例如比特币)和数字资产交易(例如去中心化交易所)。然而,对于需要与传统计算系统相当的速度和成本的用例,区块链历来都在努力维持信任最小化。用户可以通过高交易成本的形式感受到这些可扩展性限制,并导致开发人员怀疑区块链是否可以支持依赖于实时处理数据的高价值用例。

区块链扩容的三个关键属性

区块链扩展可以分为三大类:执行、存储和共识。下面,我们定义每个属性并看看它寻求解决的核心问题。实际上,缩放一个属性通常依赖于或导致缩放其他一或两个属性。

Blockchain Execution 区块链执行

区块链执行是执行交易和执行状态更改所需的计算。交易执行涉及检查交易的有效性(例如验证签名和代币余额)以及执行计算状态变化所需的链上逻辑。状态更改是指全节点更新其账本副本以反映新的代币传输、智能合约代码更新和数据存储。

区块链执行的可扩展性通常被认为是每秒交易量(TPS),但在更一般的层面上,它指的是每秒计算的数量,因为交易的复杂性和成本可能会有所不同。流经网络的交易越多,在任何给定时间需要执行的计算就越多。

在扩展执行层时,要解决的主要问题是如何在不大幅增加验证块中交易的各个全节点的硬件要求的情况下实现每秒更多的计算。

Blockchain Storage 区块链存储

区块链存储是指全节点的存储需求,全节点维护并存储账本的副本。区块链有两种一般的存储形式:

  • 历史数据Historical data包含所有原始交易和区块数据。交易数据包括每笔交易的起始地址和目的地地址、发送金额以及签名。区块数据包括来自特定区块的交易和元数据列表,例如其 Merkle 根、随机数、前一个区块哈希等。历史数据通常不需要快速访问,并且只需要至少一个诚实的实体它可供下载。
  • 全局状态Global State是智能合约可以读取或写入的所有数据的快照,例如账户余额和所有智能合约中的变量。全局状态通常可以被认为是区块链的数据库,需要它来验证传入的交易。状态通常存储在树结构(例如 Merkle 树)中,完整节点可以轻松快速地进行访问和修改。

全节点需要访问历史数据以便首次同步到区块链和全局状态以便验证新块并执行新的状态更改。随着账本和相关存储的增长,状态的计算变得更慢且更昂贵,因为节点需要更多的时间和计算来读取和写入状态。如果节点的内存存储已满,则需要使用磁盘空间存储,这会进一步减慢计算速度,因为节点在执行期间需要在存储环境之间交换。

存储需求不断增加的区块链经常会遇到状态膨胀的情况,在这种情况下,如果没有硬件升级,全节点将变得更难与当前版本的账本(即链尖端)保持同步,并且用户同步新的全节点将变得更加困难。可能影响区块链是否经历状态膨胀的一些因素包括账本的历史长度、添加新块的频率、每个块的最大大小以及必须存储在链上以验证交易和执行状态的数据量变化。

在扩展存储层时,要解决的主要问题是如何在不增加全节点存储需求的情况下,让区块链能够处理和验证更多的数据;即,在不对区块链的信任假设进行重大改变的情况下,数据可以长期存储在哪里?

Blockchain Consensus 区块链共识

区块链共识是去中心化网络中的节点就区块链当前状态达成一致的方法。共识主要关注的是在面对一定阈值的恶意行为者时获得诚实的多数并达成最终结果;即,交易得到准确处理并且极不可能被逆转。区块链共识通常是围绕最小化通信开销而设计的,以增加去中心化的上限,以实现更强的拜占庭容错能力,并缩短最终确定的时间,以实现更快的结算。

在扩展共识层时,要解决的主要问题是如何以可预测、稳定和准确的方式更快、更便宜且更加信任最小化地达到最终结果。

扩展执行层

以下是目前用于扩展区块链执行层的五种不同方法以及每种方法的优点和权衡。在实践中,将其中一些方法组合起来可以获得更大的执行能力。

验证器硬件要求的垂直扩展Vertical Scaling of Validator Hardware Requirements

区块链执行可以通过增加区块生产者的硬件要求来扩展。更高的硬件要求导致每个验证器每秒能够执行更多计算。

优点:拥有由高计算能力验证器组成的单一去中心化网络,使得区块链可以支持更大的区块、更快的区块时间和更低的交易成本,同时仍然保持智能合约之间的链上可组合性以及比传统技术更高的信任最小化计算模型。此类区块链对于高频交易、游戏和其他延迟敏感的用例特别有用。

权衡:鉴于运行验证器或完整节点的成本较高,验证器的垂直扩展将限制网络去中心化。节点成本往往会随着时间的推移而增加,使得大多数用户难以参与。保持去中心化将取决于摩尔定律,该定律指出,微芯片上的晶体管数量大约每两年就会增加一倍,而计算机的成本则会减半。较高的全节点成本还会增加想要直接验证链上发生的活动的最终用户的成本,从而降低信任最小化。

通过多链生态系统进行水平扩展Horizontal Scaling via Multi-Chain Ecosystems

垂直扩展的另一种选择是通过在单个生态系统中使用多个独立的区块链或侧链来进行水平扩展。水平扩展将生态系统中的交易计算分布在许多独立的区块链上,每个链都有自己的区块生产者和执行能力。

优点:多链生态系统使每个链的执行层都具有完全可定制的功能,例如节点硬件要求、隐私功能、gas代币使用、虚拟机(VM)选择、权限设置等。这种设计就是为什么多链生态系统有时会产生 dApp 链,其中各个区块链专门支持单个 dApp 或小型 dApp 集合。自我主权区块链还可以帮助隔离安全风险,一条链的安全设计选择并不总是影响生态系统中的其他链。

权衡:多链生态系统要求每个区块链通过以通胀方式发行的本机代币来引导自己的安全性。尽管这是区块链早期发展阶段的标准,但事实证明,要转向基于链上用户费用的稀释性较小、更可持续的经济模式可能很困难,因为用户费用将分散在许多独立的区块链上。由于想要互操作的 dApp 和代币并不总是存在于同一个区块链上,因此还存在可组合性挑战。

通过执行分片进行水平扩展Horizontal Scaling via Execution Sharding

多链扩展的一种类似但独特的方法是拥有一个支持跨许多不同分片并行执行的区块链。每个分片本质上都充当自己的区块链,这意味着许多区块链可以并行执行。还有一条主链,其唯一目的是保持所有分片同步。

在执行分片中,有一个验证器池被分成跨分片来执行事务。节点是随机且定期轮换的,因此它们并不总是执行/验证相同的分片,配置的分片数量使损坏任何单个分片的风险在统计上微不足道。

优点:所有执行分片都从同一节点池中提取,因此无需在新分片上引导安全性。假设有大量节点,每个执行环境都可以达到相同级别的安全性。执行分片也不需要提高节点的硬件要求,因为节点一次只在一个分片上执行。分片还可以与相同的虚拟机一起运行或使用不同的配置来满足某些用例的独特要求。

权衡:鉴于所有节点必须能够支持每个分片的计算,每个分片的灵活性都受到限制。由于主链上的计算要求不断增加以及每个分片节点太少的风险,一个区块链可以支持的分片数量通常也受到限制。此外,由于共享安全模型意味着所有分片可能都存在相同的漏洞,因此在负载平衡和实施风险方面存在摩擦。

多链生态系统通常不会跨区块链共享安全性,而执行分片则在一个节点运营商池的各个分片之间分配安全性。

多链生态系统通常不会跨区块链共享安全性,而执行分片则在一个节点运营商池的各个分片之间分配安全性。

通过模块化水平扩展Horizontal Scaling via Modularity

另一种水平扩展的方法是模块化区块链,其中区块链的架构被分为多个不同的层;即隔离执行、数据可用性 (DA) 和共识组件。在模块化区块链实现中执行执行的最流行的方法是通过汇总,它将计算和状态从链下移动到链下网络,同时将交易数据存储在链上。然后,使用零知识证明(zk-rollups)在链上主动证明链下计算的状态更改是有效的,或者使用欺诈证明(乐观汇总)追溯无效。

优点:模块化区块链将交易执行和状态转移到更便宜、更精简和更高吞吐量的计算环境,同时仍然继承用于结算的底层区块链的安全性。这是因为验证执行层执行的链外计算的有效性的共识过程是由现有的去中心化基础层(即L1)区块链执行的。直观地说,这意味着可以更有效地使用基础层区块链的计算带宽,因为全节点不需要执行每笔交易。全节点只需要验证简洁的证明并存储少量的交易数据。

Rollups 还可以支持逃生舱口以实现信任最小化;即,如果汇总网络无法正常工作,用户可以提取其加密货币并将其提交到基础层区块链。许多模块化网络还可以分摊用户成本;即,在基础层区块链上验证 zk-rollup 的证明存在固定成本,这意味着共识成本可以随着使用量的增加而降低,因为它们在大量用户之间共享。此外,rollups 具有 1-of-n 信任模型——只需要一个诚实节点即可确保计算的正确性和活跃性。

权衡:模块化区块链可能不如侧链或独立链那么快或便宜,因为大多数方法都利用基础层区块链有限且有时昂贵的块空间来保证安全。目前的模块化网络方法通常还存在可升级性风险,需要治理干预(在不可变的汇总之外),并且如果某些 dApp 保留在基础层区块链上,而其他 dApp 跨不同的链下执行层运行,则可能会导致流动性碎片和可组合性挑战。最后,与启动新的独立区块链相比,实施汇总或其他模块化区块链设计是一个更新且更复杂的过程。

一种提议的扩展以太坊的方法是模块化区块链,将执行、数据可用性和共识层分开(来源)。

一种提议的扩展以太坊的方法是模块化区块链,将执行、数据可用性和共识层分开(来源)。

支付和状态通道Payment and State Channels

支付和状态通道可用于区块链扩展,允许用户将加密货币锁定到与其他方的多重签名智能合约中,然后在链下交换代表资产所有权转移和/或状态更改的签名消息,而无需进行任何链上操作交易。用户只需要在打开通道和关闭通道时进行链上交易。

多重签名合约用于通过让用户对每次交互进行加密签名来确保通道的正确结算,每个签名都附有一个随机数,以便智能合约可以验证交易的正确顺序。

优点:支付和状态通道允许实时进行加密货币传输,实现零成本和近乎即时的延迟。支付渠道使小额支付变得可行,这在基础层区块链上通常是不可能的。如果双方合作,他们还允许锁定在通道中的加密货币在链上快速结算。

权衡:状态/支付通道要求通道的每个参与方都连接到互联网,以确保其交易对手不会尝试使用旧消息在链上结算通道。这通常需要使用瞭望塔来持续监控通道并保护用户资金。支付渠道还需要预先提供流动性资金,这可能会导致大额支付变得困难并导致资本效率低下。

在渠道网络中有效路由支付是一个难题,可能会导致转账失败或创建更加集中的中心辐射模型,以确保参与者获得足够的流动性和较短的路径。一般来说,状态/支付通道在一组已知的静态参与者中效果最好,但在一组动态或无限制的参与者中效果不佳。还有所有权问题,渠道很难或通常不可能代表没有明确逻辑所有者的对象(例如 DEX 流动性池)。

Scaling Data Storage 扩展数据存储

以下是目前用于扩展区块链存储层的六种不同方法。在实践中,将其中一些方法结合起来可以实现更大的存储改进。

区块链节点的垂直扩展Vertical Scaling of Blockchain Nodes

与区块链执行的垂直扩展类似,区块链存储的垂直扩展涉及提高运行全节点的硬件要求。

优点:全节点存储限制较高的区块链可以提供大量廉价存储;即全节点可以存储更多的历史数据和更多的状态。由于没有额外的存储层或外部依赖,直接全节点存储可以更轻松地访问链上数据。

权衡:由于随着时间的推移,需要存储的数据越来越多,随着运行全节点成本的增加,区块链的去中心化面临的风险也越来越大。由于去中心化程度较低,可以向用户提供的数据可用且正确的信任最小化保证也较少。随着时间的推移,状态膨胀还会导致块的执行速度变慢,从而增加整个网络的压力。

第一层区块链上的数据分片Data Sharding on Layer-1 Blockchains

扩展区块链数据存储的另一种方法是数据分片。数据分片将账本的存储和/或用于在多个分片中重新创建账本的数据进行分割,从而将单个节点在任何给定时间的存储需求减少到单个分片或一小组分片的存储需求。

优点:数据分片允许区块链以廉价的方式增加存储数据的能力,而无需增加单个节点的硬件要求。这种方法有利于维持去中心化,因为它提高了用户运行自己节点的能力。数据分片还为在基础层区块链上存储交易数据的汇总提供了更大的存储容量——这是重建汇总状态的要求。此外,Danksharding 等方法允许合并费用市场,以实现更好的负载平衡和数据包含。

权衡:由于主链上的负载增加,一个区块链可以支持的分片数量可能会受到限制。还需要数据可用性采样(DAS),它证明重建部分账本所需的历史数据在某一时刻(即块生成时)可用,而节点实际上不必自己下载所有数据。此外,当将节点旋转到不同的分片时,数据分片需要通信开销来在节点之间传递存储。它还需要大量的节点来维持高安全性——每个分片必须有一定程度的去中心化,因此节点的总池需要很大,因为它被分散在所有分片中。

使用模块化区块链压缩链上数据存储Compressed On-Chain Data Storage With Modular Blockchains

模块化区块链执行链下计算,然后在链上或链下存储交易数据或状态差异。这些数据允许其他节点或用户重建账本的当前或历史状态。当汇总采用链上数据存储时,交易数据通常在存储在链上之前先在链外进行压缩。

优点:压缩链上数据存储是模块化区块链最安全的数据存储形式,因为数据由网络上的所有全节点存储。它还降低了在第一层区块链上存储数据的成本。当与数据分片相结合时,汇总可以访问更高效、更便宜的链上存储环境,以存储交易数据,并随着使用量的增加而更好地扩展。

权衡:链上存储可用性比链下存储更昂贵,这可能会抑制模块化区块链匹配分散程度较低的存储选项的可扩展性的能力。压缩数据还可能会删除验证中不严格需要的部分数据,从而可能抑制基于该数据对链活动进行更精细的分析。

模块化区块链设计中的链下数据存储Off-Chain Data Storage in Modular Blockchain Designs

模块化区块链可以将交易数据存储在链外,以进一步减少链上存储需求。这包括“validiums”,它在链上发布零知识证明,同时在链外存储数据。模块化区块链的链下数据存储主要有四种方法:

  • 中心化存储由中心化平台上的链下存储组成。虽然它是存储数据最便宜的方式,但它可能会受到数据扣留和安全问题的影响,例如集中存储平台修改数据或离线。
  • 获得许可的 DAC 在链外存储数据,但使用来自可信节点小型委员会(称为数据可用性委员会 (DAC))的签名方案,提供正确发布数据的链上证明。其优点和权衡与集中式存储解决方案类似,但对可用性的信任假设稍好一些。
  • 无需许可的 DAC 在链外存储数据,但使用无需许可的 DAC 提供链上证明,并通过加密经济激励诚实行事。免许可 DAC 比链上存储解决方案更便宜,同时比其他链下解决方案更安全。代价是,这仍然不如链上存储安全,并且尚未在具有可持续经济性的大规模生产中实现。
  • Volitions使用户能够选择是否要将交易数据存储在链上或链下。意志是新颖的,因为它们在单个交易级别启用数据可用性解决方案选项,同时允许所有交易共享相同的状态根和共识成本。然而,这种方法比上面列出的其他方法更复杂,尚未在生产中实现。

数据修剪Data Pruning

数据剪枝是一种使区块链全节点丢弃超出特定区块高度的历史数据的技术。数据修剪通常与权益证明检查点配对,其中超出检查点的区块中的交易被认为是最终的;也就是说,如果没有重大社会共识或硬分叉,它们就无法逆转。

优点:数据剪枝减少了节点参与共识时需要存储或引用的数据量——账本更小,因为历史数据已经经过验证,因此剪枝是安全的。由于历史数据已经被验证,如果操作全节点的目的只是验证未来的块而不是提供历史回顾,则不再需要历史数据。

权衡:数据修剪依赖第三方(例如交易所、区块浏览器等)永久存储历史数据,以便将状态重建回创世区块。然而,它是一种 1-of-n 信任模型,因此只有一个第三方需要诚实地存储数据,以便全节点能够重新创建所有历史状态。由于权益证明提供了检查点和较弱的主观性,这种假设变得不那么重要了。然而,此类数据对于链上分析和区块浏览器仍然很重要。

无国籍、状态到期和状态租金Statelessness, State Expiry, and State Rent

还有一些方法侧重于限制完整节点必须存储的状态量,特别是通过状态到期、无状态或状态租金实现。

  • State expiry允许节点修剪在一定时间内未访问的状态,但在需要时利用一种默克尔证明(称为“见证人”)来恢复过期状态。
  • Statelessness 是指不需要全节点来存储状态。全节点只需要在包含见证人的情况下验证新块。弱无状态是指只有区块生产者需要存储全局状态,而所有其他节点可以在不存储状态的情况下验证区块。
  • State rent 要求用户付费以维持有限的状态存储。不再付费的状态被回收并出租给新用户。

优点:限制状态存储需求的方法最终有助于限制各个节点必须存储的状态量。即使在账本不断增长或链上交易数量不断增加的情况下,这也有助于缓解状态膨胀。限制状态存储对于维持长期的最终用户验证同时仍然维持实际的硬件要求至关重要。

权衡:限制状态存储是一种相当新颖的方法,它消除了用户一次性付费让网络中的每个完整节点永久存储其状态的想法,这与当今区块链处理状态的方式形成鲜明对比。此外,将使用传统状态存储模型的区块链升级到更有限的状态存储模型很困难,并且可能会破坏在开发过程中对状态始终可访问做出特定假设的应用程序。新的状态存储模型也可能使特定应用程序比以前更加昂贵。

Scaling Consensus 扩展共识

以下是尝试扩展区块链共识机制时的四个总体目标,因为它们涉及更频繁的出块时间、更快的最终确定性以及增强针对停机或恶意攻击的鲁棒性。请注意,扩展共识不仅涉及速度,还涉及准确性、稳定性和安全性。

增加执行和存储容量Increase Execution and Storage Capacity

扩展区块链共识机制的一个基本组成部分是在不大幅提高全节点硬件要求的情况下增加其计算和存储容量。这将允许更多节点参与共识,或者至少防止现有节点随着账本的增长而退出网络,从而有助于在正常运行时间、审查阻力、准确性和安全性方面维持强有力的共识保证。如果执行和存储容量提高到显着水平而不会对全节点产生有意义的影响,那么区块链甚至可能能够以稳定的方式支持更快的块时间和/或更大的块大小,而不会牺牲其去中心化的核心属性。

减少网络带宽Reduce Networking Bandwidth

扩展区块链共识机制的另一种方法是减少网络带宽;即全节点之间为了达成共识所需的通信开销(发送和接收消息)。区块链共识可以设计为节点在任何时刻只需要与一小部分其他节点进行通信(例如子节点),而不是要求节点能够在所有其他节点之间进行通信(即全部投票)。 -采样)。一些共识设计不使用多轮投票或通信方案,因此所需的唯一通信是块的传播,但这通常是以牺牲概率最终性为代价的。

增加网络延迟Increase Network Latency 

还有一些方法专注于尝试减少共识期间的网络延迟,特别是因为它与缩短最终确定时间有关。一些区块链共识机制通过多轮子抽样或全面投票轮次具有即时最终性。其他区块链在一段时间后实施由验证者绝大多数共识保护的检查点,这意味着区块被认为是最终通过检查点的区块,因为在检查点之外不再有协议内重组。尽管一些混合方法已经针对两者进行了优化,但通常必须在网络延迟和网络带宽之间进行权衡。

增加安全预算Increase the Security Budget

共识的信任最小化也可以通过增加参与共识的节点的安全预算来扩展。这通常是通过实现货币溢价、通货膨胀的代币奖励和/或增加交易费收入来实现的,因为对区块空间的需求超过了供应。更高的安全预算可以为参与者带来更多的潜在收入,这可能会增加网络的去中心化程度,因为更多的节点会被激励加入。区块链还可以要求节点投入更多的股份或计算能力来参与共识,尽管如果要求太高,这可能会增加网络的中心化程度。

可扩展且安全的跨链未来

区块链可扩展性正处于其发展的一个令人兴奋的时刻,大量的解决方案正在构建、测试并投入生产,这证明了这一点。由于高度重视扩展性,同时保持信任最小化,区块链有望巩固自己作为各种行业和用例的首选后端的地位。

为了支持不断扩展的多链生态系统,跨链互操作协议(CCIP)正在Chainlink之上积极开发,使用户能够基于用户定义的逻辑在不同区块链之间安全地交换数据和代币。 CCIP 的构建非常注重安全性,正如风险管理网络的开发所证明的那样,它能够以不破坏区块链信任假设的方式实现跨链智能合约和安全代币桥接。有关 CCIP 的更多信息,请查看:利用 CCIP 解锁跨链智能合约创新。

image.png

点赞 2
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Rayer
Rayer
0x156c...41d0
希望能共同成长,有工作机会和技术交流沟通可以联系VX:cHenYuBiz