什么是状态膨胀?为什么说状态膨胀是区块链扩容关键技术

Fuel 创办人 Nick Didson 指出区块链扩容的技术大部分已经找到解决方案,不过并没有一个适当的方式处理状态 (state) 膨胀问题,什么是状态膨胀?目前又该如何减少此问题?将是每个去中心化网络迟早都需要思考清楚的问题。

状态膨胀是扩容最终 Boss

Web3 产业在效率上已经努力多年,似乎也逐渐看到终点,但是区块链扩容之路上的最终 Boss — 状态膨胀,目前似乎还没有解决方案。或许此问题将会变成扩容最后也是最大的瓶颈。

区块链扩容关键技术

状态增长目前没有解决方案

区块链扩容的议题上,主要有三个技术问题需要解决,分别是执行效率、资料可用性 (DA) 与状态大小控制,至今前两者已经有明确的解决方案:

  • 执行:确保去中心化网络中交易的正确同步、验证和区块建立。目前此瓶颈已获得解决,例如市场上已经出现更有效率的虚拟机器 (FuelVM、Stylus、SVM、MoveVM),或是并行交易执行方式,以及更好的预编译。
  • 资料可用性与储存:确保状态转换时与区块链网络同步,并支援 Rollups 的诈欺证明或有效性证明的验证。同样,此问题已经有许多解决方案,例如坎昆升级 EIP-4844 的引入、分片设计以及外部资料可用性层包含 Celestia、EigenDA 和 Avail 所提供的服务。
  • 状态:状态是指「去中心化网络的最新帐本资讯」,包含网络中所有的帐户资料与代币分布。为了让节点可快速存取,状态资料通常需要在磁碟上进行大量存取,是交易中除签名和杂凑之外最慢的处理过程。而随着网络的使用年限增加,状态大小持续膨胀。

其中,状态是随着时间的推移而增长的东西,经常被视为「未来的问题」而被忽视。状态增长问题目前各界几乎没有好的解决方案,而若无法减缓此问题,会让区块链交易时间变慢和储存成本升高,会逐渐让节点运行承受巨大负担,最终将阻碍区块链技术受到更广泛的采用。

Rollups 并不能解决状态增长问题

Rollups 现有的解决方案仅有解决执行层问题,而一些模组化解决方案例如 Celestia,更进一步解决资料可用性问题。但如果这些新解决方案不能解决状态膨胀的核心问题,那么区块链产业就会回到零和游戏。

若状态增长无法受到解决,至今为止的扩容技术迭代都将是一场空。不论什么网络最终都会受到状态膨胀的限制,无论其执行或数据环境如何设计。

Nick 认为解决状态成长问题将成为 Rollup 生态的下一个催化剂,这与过往 Rollup 针对执行层面技术的革命同样重要。

效率越高,状态越大

状态的大小增长通常会跟执行的速度成正相关,当区块链的效能愈高,所产生的状态大小通常也会愈大,导致包含 BNB Chain、Sei 到 Base 等各种宣称拥有高执行效能的去中心化网络,都面临状态大小快速膨胀的问题。


各区块链状态大小变化

为什么比特币的状态增长较慢?除了网络效率较低之外,因为其使用 UTXO 帐本模型,没有余额的帐户就不需要纪录在状态中,借此最小化状态增长问题,这使得 UTXO 模型相对更易于管理,但代价是牺牲了可编程性。

相对来说,以太坊的状态模型是一个由帐户余额、智能合约代码和无数合约状态组成的丰富生态系统,因为网络帐户、代币、合约数量上的增长,借此衍生的帐户各代币的余额、批准纪录等等,其网络的状态相较于比特币持续快速增加。

以帐本模型为基础的区块链,随着每一次智能合约的执行和交易,状态都会膨胀,这会导致网络臃肿,储存需求增加,处理时间变慢,进而抑制创新和用户采用。

因此目前大多数的区块链,都将面临着状态增长的问题。

状态膨胀可能的解决方案

虽然上述表示没有明确的解法,但开发者们也已经对此讨论,提出了几种未来可能管理状态膨胀的策略,不过目前许多技术仍在理论或是讨论阶段,或是有其他面向的缺点:

放任状态发展

一派人认为可以接受状态成长,以换取更大的频宽使用。但 Nick 认为这不是一个好的选择,因为这样会提高全节点的硬体需求,进而降低网络的去中心化

状态空间费用

像网络用户收取储存状态资料的费用,权衡旧资料储存与大量空间滥用的问题。但是此手段需要思考如何去除旧资料而不影响到其他资料的储存,因为状态是使用资料树纪录的,中间资料遗失会破坏一些分支路径。

无状态设计

思考一种全节点不需要储存状态的设计,而是依赖交易和区块中包含的状态证明。本质上是将状态从 Layer1 转移到 Rollups。虽然这是以太坊的发展方向 (verkle tree),但关于其效率和可维护性还有很多未解决的问题。

Un-Merkalizing the state

一种以不同方式管理状态资料的技术。将使用完整节点来验证所有内容或使用轻客户端对交易进行采样,并完全丢弃状态树。

应用层级的状态压缩

使用呼叫资料技术来压缩状态资料,可以说是用频宽换取状态大小,例如 Solana 上的压缩 NFT (cNFT),就是将 NFT 的所有权证明储存在 Merkle Tree 之中,若需要读取则需要依赖节点频宽向外调用资料。


压缩 NFT 将所有权证明储存在 Merkle Tree 之中 (资料来源)

不过更高的频宽需求会导致网络受限,可能会影响基础设施的稳健性和效率。

状态膨胀不再是未来的问题

目前以太坊的状态大小约为 267 GB,并且每个月以 2GB 左右的速度在成长,若未来网络用户数与合约增加,此增长速度将会更快,状态的成长对于需要追求共识的区块链网络节点来说,会逐渐变成一项负担。

目前现有的解决方案,大多仍在理论阶段或是缺陷明显,市场上个专案仍未有明确的共识,不过可以确定的是,状膨胀的问题越来越受到重视,可以预期未来将出现更近一步的解决方案。该文下半部分也介绍了 Fuel Network 所提出的创新解决方案,笔者将另撰文说明。

本文链接地址:https://www.wwsww.cn/hqfx/24287.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。