四大最受欢迎的AI加密交易
Paradigm:以太坊状态增长的挑战与解决方案
原文作者:Storm Slivkoff、Georgios Konstantopoulos
原文编译:Luffy,Foresight News
以太坊状态增长及其与 Gas 限制的关系被广泛误解。人们普遍认为状态增长是以太坊的主要扩展瓶颈。然而,关于状态增长的讨论常常因术语不精确和缺乏详细的定量证据而受阻。
采用数据驱动的方法可以使状态增长问题变得更加清晰。在本文中,我们利用高分辨率数据集来了解状态增长的大小和形状。在这个过程中,我们得出了令人惊讶的结论:现代消费硬件可以维持当前的状态增长率至少十年。此外,考虑到软件和硬件的不断改进,这条跑道可能会无限期地延长。
我们相信,以太坊有一个明确的路线图: 1)完全消除状态增长作为扩容瓶颈;2)将 Gas 限制提高到支持全球规模去中心化金融体系的水平。本文系列的目标是开发一种科学方法来理解和制定这一扩展路线图。
本文是有关以太坊扩容系列文章的第 1 部分,主要介绍状态增长,第 2 部分是关于历史增长,第 3 部分是关于状态访问,第 4 部分是关于 Gas 限制。
什么是状态增长?
「状态增长」一词通常用来概括任何以太坊扩展瓶颈,即数据大小超过以太坊节点硬件的容量。然而,状态增长不应该以这种单一的方式来思考。以太坊数据有多种类型,每种类型都与节点的底层硬件组件有独特的关系。因此,使用精确的术语来解释每个不同的扩展瓶颈至关重要。
状态是构建和验证新以太坊区块所需的一组数据。状态由合约字节码、合约存储、账户余额和账户随机数组成。历史是节点从创世区块同步到最新区块所需的数据集。历史由区块和交易组成。状态和历史是不重叠的数据集。从这些定义来看,至少有 3 种不同的现象给节点的硬件带来了巨大的压力:
状态增长:新账户、新合约字节码、新合约存储的积累。
历史增长:新区块和新交易的积累。
状态访问:用于构建和验证区块的一组读写操作。
每个瓶颈都与节点的硬件限制有独特的关系。四个相关性最高的硬件限制是:
网络 IO 是节点为了与对等节点达成稳定共识而必须维持的上传和下载速度量。
存储大小是节点为了构建、验证和分发区块而必须在永久存储中保存的数据量。
内存大小是节点必须在内存中缓存的数据量,以便与区块链的末端保持同步。
存储 IO 是节点为了与区块链末端保持同步而必须执行的每秒读写操作量。
这些瓶颈和硬件限制之间的关系如图 1 所示。
图 1 :以太坊扩容瓶颈
从图的顶部开始,每次以太坊执行交易时,该交易使用的所有资源都以 Gas 定价。因此,以太坊的 Gas 限制是一个单维量,它对所有形式的链上活动进行速率限制。 Gas 限制的下游是区块大小和每个区块的操作。每个区块的字节越多,历史记录增长得越快。每个区块的 IO 操作越多,状态访问率越大,并且(通常)状态增长率也越大。
因此,扩展瓶颈与节点的硬件约束有关,如下所示:
为了支持大量的状态增长,节点必须有足够的存储和内存空间。如果状态变得太大,则要么无法容纳在存储中,要么状态的频繁访问部分将无法包含在内存中,从而使得性能降低。
为了支持大量的历史增长,节点必须有足够的网络带宽来共享大量的区块数据和足够的存储容量来存储该数据。
为了支持大量的状态访问,节点必须有大量的内存来缓存热状态,并有大量的存储 IO 来支持足够的读写操作。
特别是对于状态增长而言,主要挑战是确保状态规模的增长速度不会超过消费者硬件的持续改进。节点内存和存储是有限的资源,因此它们最终将达到瓶颈,除非状态停止增长或硬件定期升级。幸运的是,内存和存储硬件多年来一直在改进。即便如此,对这些改进的准确预测仍不确定,并且不应认为它们的快速增长将无限期地持续下去。
请注意,即将推出的 EIP-4844 引入的数据 blob 将为这些扩展关系带来一些变化。在 EIP-4844 之后,预计磁盘上累积的历史记录会少得多,传输大量 Blob 数据时网络 IO 可能会显着增加。
在本文中,我们将主要关注状态大小和状态增长率,而不是内存大小和状态访问模式。我们将在未来的工作中研究其他主题。