autorenew
以太坊的状态膨胀:表情包代币如何阻塞区块链,以及修复方案对加密世界的意义

以太坊的状态膨胀:表情包代币如何阻塞区块链,以及修复方案对加密世界的意义

以太坊一直是发布各种代币的首选平台,包括那些一夜之间俘获网络想象力的热门表情包币(meme coins)。但高度流行也带来了责任——在这里表现为一大堆数字垃圾。StatelessETH 和 Ethereum 的状态分析师 Han (ngweihan.eth) 最近的一系列推文揭示了以太坊状态增长的问题,显示大约 80% 的网络状态是陈旧的或基本无用的。这不仅是技术人员的担忧;它直接影响到表情包代币的创建者、交易者以及更广泛的加密生态系统。

对于不熟悉该术语的人,“state”在区块链术语中指的是网络上所有账户、余额和智能合约数据的当前快照。随着以太坊处理交易,这个 state 不断扩展,使得节点(运行网络的计算机)更难、更昂贵地保持同步。Han 的分析深入探讨了为什么这么多 state 是垃圾以及我们可以采取什么措施来应对。

从外部拥有账户(externally owned accounts,EOAs)——也就是你常见的钱包地址——与智能合约对比,数据显示 EOA 的存在时间更长,中位活动时长约为 3.1 天。相比之下,超过 55% 的智能合约只在单个区块中出现,意味着它们被部署后就被遗忘。这一点非常重要,因为许多表情包代币本质上就是被拉高、抛售后让其闲置的智能合约。

显示以太坊上 EOA 和合约活动时长的图表 合约在区块中活动分布的图示

再深入看,以太坊大约有 5000 万个智能合约,但只有约 160 万种独特的 bytecode 实现。bytecode 是运行这些合约的已编译代码。高达 97% 的合约重复使用现有的 bytecode,这说明存在大量垃圾部署。想想钓鱼骗局或从像 ERC-20 标准这样的模板复制出来的粗制滥造的表情包代币。这些重复项膨胀了 state 却没有增加实际价值。

以太坊上独特字节码数量的图表 合约字节码复用率的图示

部署模式也很有启示性。主网中只有大约 560 万个地址曾部署过合约,如果你做过部署,你就是那 0.02% 的精英之一。但排名前 500 的部署者负责 57% 的所有合约,可能是大型参与者或自动化脚本在大量生成表情包代币或代理合约。

以太坊合约部署者分布情况

Factories(工厂合约)——用于创建其他合约的特殊合约——约有 9.9 万个,它们部署了 89% 的所有合约。这些通常用于高效、可重复的部署,比如常见于表情包代币发射以节省 gas 的 minimal proxies(ERC-1167)。

工厂合约在合约部署中的作用 由工厂合约部署的合约所占百分比

大多数合约的字节码体积较小,这对只处理转账和余额的简单表情包代币来说很合理。有趣的是,约 54% 的合约没有任何存储槽——它们是无状态的,仅执行计算而不保存数据。但那些有状态的合约(会存储例如代币余额的信息)生命周期甚至比无状态合约更短。

合约字节码大小分布 具有存储槽的合约所占百分比 有状态合约与无状态合约的活动时长对比

导致 state 增长的真正罪魁祸首是合约存储。约 63% 的存储槽只在一个区块中被触及,然后再也没有被访问过。这些可能是失败的表情包代币试验或骗局留下的临时数据,但它们却一直存在,推高了所有人的成本。

以太坊上存储槽的活动情况

Han 的推文系列在最后提出了可行的应对思路。state expiry(状态过期)可以自动移除冷(不活跃)的 state,减轻节点负担,同时在需要时允许通过证明恢复数据。对复用代码的部署收费更低,会鼓励更高效的做法而不抑制表情包代币的创新。对每个地址实施逐步增长的存储定价可以遏制连续部署者造成的膨胀,临时存储选项则为短期数据提供廉价空间——非常适合基于炒作的表情包发射。

归根结底,并非所有 state 都是等同的。削减冗余可以使以太坊更便宜、更快、更可持续,这将有利于表情包代币爱好者,降低进入门槛并减少 gas 费用。如需完整深入的研究,请查看原始文章: Ethereum Magicians

这项分析说明了为何表情包代币在有趣且可能盈利的同时,需要随着区块链的发展而进化。随着以太坊的优化,预计发射会更顺利、杂乱会更少——既保留表情包的魔力,又能避免那堆乱摊子。

你可能感兴趣