掌握区块链可扩展性的最终老板:国家增长
 
 
燃料实验室
0x3ED1
2024年2月2日
 
0x0e186b704783Ba103eE32723084eef498475d50B
0x32C52cC786DC9b919ebb0A14426E3a94FEE48154
87收集
薄荷
 

这是尼克·多德森(Nick Dodson)的转载 博客 2024年1月30日。

引入原住民补水,州最小化技术和州最小化交易模型。

我已经做好了 几次谈话 关于最近的州增长,并且看到有关该主题的X的更多讨论,我认为它将在我的演讲和Fuel所采用的方法上得到扩展。

因此,让我们直接进入。区块链面临的最重要障碍之一是“状态增长” —的问题,如果不加以制止,可能会破坏区块链网络的可扩展性和效率。让我们探讨一下状态增长是什么,为什么会出现问题,以及提出的解决方案,以使区块链在规模上保持苗条和功能。

了解区块链的处理瓶颈

在深入研究状态增长的复杂性之前,让我们分解区块链的三个主要组成部分,这些组成部分通常是缩放网络使用的瓶颈:

  • 执行。 CPU为确保正确的同步,验证和将来的块创建所做的工作。  已解决: 有很多解决此问题的选项,例如更高效的虚拟机(FuelVM,Stylus,SVM,MoveVM)和平行事务执行(使用CPU的所有内核), 以及更好的预编译(VM中的预设功能)。

  • 数据(存储和可用性)。 驱动状态转换并允许其他节点与区块链网络同步并启用欺诈或有效性证明以进行汇总的实际交易数据。  已解决: 有一些解决此问题的选项,例如EIP-4844,碎片设计以及外部数据可用性层,例如Celestia,EigenDA和Avail。

  • 状态。这是本地数据库中的活动存储信息,可确保适当的链验证和状态转换。这通常在用于区块链处理的“热路径”中, 需要在磁盘上进行大量随机访问,并且会产生大量IO,这通常是除签名和哈希之外最慢的处理区域。❌ 未解决。

这些组件中的每一个在区块链的操作中都起着至关重要的作用,但这是我们在讨论增长问题时特别感兴趣的“状态”。


国家增长的挑战

状态增长是指必须由区块链网络中的节点完全存储和管理的数据不断积累。由于状态会随着时间而增长,因此通常将其视为“未来问题”。但是,随着国家增长的滚雪球达到其阈值,节点操作负担沉重,当它阻碍更广泛的采用并减慢创新速度时,这成为可扩展性的瓶颈—被证明是致命的。

状态增长导致区块链膨胀,交易时间较慢和存储成本较高成为常态,这反过来又可能限制网络的可扩展性和可访问性。听起来很熟悉? 这是因为应对国家增长将是提高汇总经济学的下一个催化剂,这与其先前的问题吞吐量一样,后者引发了汇总革命。

流行EVM链的状态大小近似值。

数据是指示性的,仅用于说明目的。
数据是指示性的,仅用于说明目的。

…但是,汇总不能解决状态增长吗?

汇总允许以太坊为“打开新的”的大门。现有的解决方案解决了执行层问题,一些模块化解决方案进一步解决了数据可用性问题。但是,如果这些新解决方案不能解决国家的核心问题,那么您将回到与零和游戏作斗争。 任何 今天设计的区块链,无论是否卷起,都没有解决国家增长的策略,最终将受到国家膨胀的限制,无论其执行或数据环境如何。

Arbitrum和Optimism上的有效地址(与状态大小不同,但应大致相关)。资料来源-Etherscan。
Arbitrum和Optimism上的有效地址(与状态大小不同,但应大致相关)。资料来源-Etherscan。

比较国家设计

为了说明问题,让我们比较比特币和以太坊的状态管理:

  • 比特币状态: 利用UTXO(未用交易输出)集,该集更简单,传统上更易于管理,但可编程性有限。

  • 以太坊状态: 包括帐户余额,智能合同代码和智能合同状态—,包括令牌余额,批准等。

比特币状态管理模型已简化,但范围有限。比特币的状态通过可以花费或未花费的单个交易输出进行管理。它的UTXO(未用交易输出)模型通过未使用且准备用于未来交易或已使用并因此存储在区块链历史中的交易输出保持清晰的状态。这使得UTXO模型相对更易于管理,并确保状态不会随每次交易而失控地增长。但是,与以太坊的图灵完整系统相比,这种简单性是比特币有限的可编程性的代价。

与此形成鲜明对比的是,以太坊的状态模型,丰富的帐户余额生态系统,智能合同代码和无数合同状态—,每个交互都构成了不断增长的数据挂毯中的线程。这种不断的状态演变,虽然证明了以太坊的多功能性,但却带来了巨大的可扩展性挑战。随着状态随着每个智能合同执行和交易的膨胀,它导致网络膨胀,存储需求增加且处理时间变慢,从而限制了创新和用户采用。

比特币和以太坊的国家管理方法之间的对比强调了区块链设计的基本权衡:国家管理的简单性和效率与链上操作的复杂性和潜力。


拟议的国家增长解决方案

已经提出了几种管理国家增长的策略:

让国家成长

接受状态增长以换取更大的带宽使用。这不是一个好选择,因为它对完整节点提出了更高的要求,从而限制了网络的分散化。

国家租金

存储状态数据的收费,以及诸如“树腐”之类的潜在问题的权衡' (如果以太坊中的所有状态元素都在一棵树中,而您忘记了一些叶子,则损坏了一些分支路径),以及其他问题。

无国籍

依靠交易和块中包含的状态证明,完整节点无需存储状态。从本质上讲,将状态从第1层链移到卷起。这就是以太坊的发展方向,但是关于这将是多么有效和可维护的问题很多。

韦尔克勒树。
韦尔克勒树。
韦克尔树
 
vitalitik.eth.limo

不道德的国家

一种以不同方式管理状态数据的技术方法。实际上,您将使用完整的节点来验证所有内容或与轻型客户端一起采样事物,而完全忘记状态树。

应用级状态压缩

使用调用数据技术压缩状态数据。本质上,您是带宽交易状态。较高的带宽需求导致网络受限,其影响严重影响了基础设施的稳健性和效率权衡。

示例1:Uniswap V3订书机(左侧图像)。 状态必须在带宽上补水。这样可以使状态最小化设计,并且Calldata比以太坊上的存储便宜得多。 示例2:压缩NFT(右侧图像)。合并NFT所有权数据并在状态下存储根。

压缩NFT-Helios。
压缩NFT-Helios。

现在…土著国家补液。


燃料的国家哲学

通过利用UTXO模型,您将获得几个“免费赠品”:

  • 本地化州树: 没有全球状态树,每个智能合约只有本地状态树。

  • 本地资产: 所有资产转移仅触及单个状态元素。本机资产可用于表示非值状态(例如,NFT表示所有权)。这些不需要合并,简化了状态。

  • 没有批准国: 从批准和转移功能中消除不必要的状态更改。

UTXO模型允许所有这些操作,同时保留丰富的加密光客户端和可验证性—,从而创建了“快速模式”以实现真正的互操作性(在以后的文章中对此进行更多介绍)。Fuel方法背后的主要理念是: 使用更多的带宽和执行力,同时使用更少的状态。但 怎么样?

土著国家补液

本机状态补液描述了燃料开发人员可以使用的方法 脱水 或划分状态。事情是 重新水化 带宽过大,可以在需要时重新访问状态。这与使用合同状态查找的以太坊的常规方法(“对所有内容使用智能合同”)相反。

新方法:

  • 仅存储根哈希/状态更改

  • 带宽到“脱水”状态的当前数据

  • 为开发人员提供最小化的状态技术以利用这一点。

国家最小化技术

专注于带宽和状态存储上的执行。Fuel为开发人员提供了许多方法,而不仅仅是智能合同存储:

  • 剧本: 短暂逻辑包含在事务中,而不是以状态存储。与可以直接调用合同(但只能调用单个合同)的EVM交易不同,Fuel交易执行脚本,该脚本可以调用零个或多个合同。

  • 谓语: 轻巧,无国籍的合同。谓词是一种用于授权交易的新的,纯净的机制。谓词只能访问事务中的数据,而不能查看当前链状态。除其他事项外,谓语可用于启用本机(无状态)帐户抽象。

在Ryan Sproule的这篇文章中了解有关谓语的更多信息: 谓词不是智能合约,但仍然允许使用自定义身份验证逻辑来花费硬币。这意味着,与任何EVM交易不同,无需私钥即可花费谓词。实际上,这意味着用户可以构建可以完全无许可使用的谓词。当与脚本的Fuel概念结合使用时,与智能合约进行交互的用户体验就会变得多余。

国家最小化交易模型

将状态最小化技术与UTXO模型结合使用,可以创建一个新的 灵活交易模型。 这允许更多的选项来形成多方复杂交易,这些交易不需要智能合约即可访问状态。

基于燃油UTXO的交易模型。
基于燃油UTXO的交易模型。

在实践中会是什么样? 例子:

智能合约钱包(只有一个32字节状态元素)

  • 合同状态存储在UTXO的单个根哈希中

  • 必要时状态会在带宽上重新水化

  • UTXO确保没有全球默克尔树的轻型客户可验证性

  • 仅需要阅读一份IO

  • 使用状态UTXO时可以更改状态

  • VS Ethereum不会丢失智能合约钱包功能

  • 带宽和执行优先于状态

  • 全部在本地级别完成(谓语)

Fuel的体系结构旨在将所有这些功能与状态最小化执行结合在一起,以创建用于以太坊卷起的软件包。燃料为以太坊生态系统带来了新的功能,同时通过以太坊的最终定居来维护安全性。

在与国家增长的斗争继续进行的同时,诸如Fuel之类的工具和策略为可扩展和高效的未来提供了希望。谚语说:“必要性是发明之母”,在区块链世界中,征服国家增长的必要性确实导致了一些零对一的解决方案。