存储增长并不是提高 Gas 上限的瓶颈。

撰文:Giulio Rebuffo

编译:善欧巴,金色财经

关于提高以太坊的 Gas 吞吐量的讨论越来越多,主要通过提高 Gas 上限或缩短区块生成时间来实现。支持这一主张的主要论点是,在过去四年中,运行验证节点的硬件需求稳步下降。

此外,出现了两种增加 Gas 上限的方案:

  • EIP-7782:通过减少以太坊协议的区块时间

  • EIP-7783:通过「渐进增加」的机制逐步提高 Gas 上限

本文将分析在 Gas 上限翻倍的情况下,带宽、计算和存储需求在最坏情况下和平均情况下可能的表现。

回顾以太坊 Gas 上限的历史

以太坊于 2015 年推出时,Gas 上限最初设置为每区块 5,000 Gas。随后这一限制经历了重大变化:

2016 年:Gas 上限首次提高至约 300 万,随后又提升至约 470 万。

在 Tangerine Whistle 硬分叉之后,特别是 EIP-150 的实施,Gas 上限增加到 550 万。这一调整是为应对拒绝服务(DoS)攻击,对某些 I/O 密集型操作码重新定价的一部分。

2017 年 7 月:Gas 上限提高至 670 万,并继续上升:

  • 2017 年 12 月:~800 万

  • 2019 年 9 月:~1000 万

  • 2020 年 8 月:1250 万

  • 2021 年 4 月:1500 万

根据 EIP-1559 的规定,还有一个最大(或「硬上限」)Gas 限制,设为目标的两倍。这意味着一个区块最多可以包含 3000 万 Gas 的交易。

在过去的近四年里,Gas 上限一直没有进一步提高。

是否是时候重新审视 Gas 上限了?

为了回答这个问题,我们需要分析如果将 Gas 上限提高到 6000 万,硬件需求在带宽、计算和存储方面的表现。

存储

在考虑提高 Gas 上限时,存储是以太坊网络面临的最大瓶颈和担忧。原因在于以太坊状态规模的历史增长,以及这种增长对验证者带来的持续压力。

以太坊有两种类型的增长:

  • 状态增长

  • 历史增长

状态增长

以太坊的状态,即所有账户余额、智能合约代码和存储的集合,随着交易的增加和智能合约的部署不断扩展。自以太坊成立以来,状态规模大幅增长,特别是在网络拥堵、交易活动增加以及去中心化金融(DeFi)和 NFT 兴起的推动下。目前,状态增长约为每月 2.5 GB,或每年 30 GB。

这种状态增长可能导致以下问题:

  • 磁盘访问时间变慢

  • 硬件要求增加

然而,截至本文撰写时,这些问题都不是特别显著。存储系统之间相差几十 GB 的访问时间差异非常微小,因为查询的算法复杂度通常是对数级的。此外,存储需求也不大,因为新硬件的成本下降速度远远超过每年 30 GB 的状态增长。即使增长到每年 60 GB,这一差异也不会特别显著,硬件的技术进步依然会超前。

历史增长

虽然状态规模增长是一个问题,但技术进步使得硬件成本大幅下降,减轻了压力。即使 Gas 上限翻倍,硬件成本依然在持续快速下降,使得所需的硬件变得越来越便宜。

值得注意的是,单独的质押者很快将需要超过 2 TB 的存储空间来运行以太坊验证节点。这意味着他们实际上需要 4 TB 的存储空间,因为大多数硬件都是以 2 的幂出售的。因此,以太坊完全可以利用这些额外的存储空间,因为无论 Gas 上限是否提高,验证者都需要购买更大容量的硬件。

存储成本变化

为了证明存储成本在以指数速率下降,我们可以查看过去四年 1 GB SSD 的美元价格波动情况。数据显示,每两年 1 GB SSD 的成本大约减半。

将这一趋势与存储和状态增长进行比较,差异非常小。目前以太坊的增长是线性的,而硬件成本的下降则是指数级的。这一趋势进一步证明,提高 Gas 上限对硬件需求的影响相对较小。

带宽

以太坊的平均带宽需求大约为 2MB/s;不过,这个数字主要来自信标链(CL)的数据传播和聚合。当讨论提高 Gas 上限时,唯一需要关注的就是区块大小。

目前,记录的最大区块大小为 270 KB,Deneb 升级后的当前区块大小为 75 KB。如果将其翻倍,这一变化相当于增加 0.5-2 个数据块(blob),与历史最大值和当前平均值相比,相当于节点带宽(输入和输出)增加了约 2-5%。因此,在平均情况下,这并不是显著的变化。事实上,增加 3 个 blob 的影响会更大。

最坏情况:Gas 上限翻倍

最坏情况下,区块大小被计算为 1.7MB,翻倍后为 3.4MB(带宽需求增加 50%)。这虽然不算多,但仍然是个值得注意的增幅。我认为这个增幅并不算多的原因在于,这样的拒绝服务(DoS)攻击成本相当高,而带宽的增加相当于当前平均需求的 50%,这是已在考虑范围内的。此外,连续多个区块都填满 1500 万 Gas 是非常昂贵的。因此,即使攻击者有可能在几个区块内发起 DoS 攻击,他们也需要花费大量资金。此外,他们还必须与其他交易竞争区块空间,这进一步增加了攻击成本。

无论如何,不管对这些数字的看法如何,提高 calldata 成本可以完全解决这个问题,所以我对此并不担心。此外,如果通过 EIP-7783 增加 Gas 上限,这些风险是可忽略且可控的。

计算

计算和区块时间从来不是问题所在,但让我们来看一下。

平均情况

区块计算的平均时间通常小于 1 秒,即使对于配置较差的机器也是如此。总的来说,这从未是瓶颈。

最坏情况

最坏情况目前尚不清楚,且取决于客户端。与一些客户端团队沟通后,大家的共识是,唯一的问题是某些操作码(如 MODEXP)扩展性不好。

然而,这里的任何 DoS 攻击向量都可以通过重新定价来解决,而且如果通过 EIP-7783 提高 Gas 上限,那么这些风险是可以忽略的。

结论

总体而言,存储增长并不是提高 Gas 上限的瓶颈,因为存储硬件容易升级。然而,带宽问题是一个更大的威胁,因为带宽扩展难度更大。幸运的是,通过 EIP-7783,可以有效缓解与带宽和潜在计算增加相关的风险。尽管如此,重新定价 calldata 成本以确保额外的安全性可能是明智的选择(尽管我个人认为这并不是必要的)。

就我个人而言,我认为目前可以在 EIP-7783 的渐进增加机制下,将 Gas 上限提高 33%,甚至翻倍。

通过 EIP-7782 提升上限可能为时尚早,因为这对分布式验证(DVT)和 SSF 会带来不利影响。然而,一旦这些问题得到解决,缩短区块生成时间无疑是未来的趋势。