走向多维——EVM 中天然气计量的实证分析

本文为机器翻译
展示原文

这篇文章总结了一项实证分析的关键要点,该分析专注于理解不同的以太坊虚拟机(EVM)gas计量方案如何影响网络吞吐量和区块利用率。具体而言,我们关注的是多维方案,即不同资源的使用情况分别计量。

为了简洁起见,我跳过了许多技术细节。请参考项目文档以获取更多详细信息。

我想感谢@dcrapis提供的宝贵审阅、评论和讨论,感谢王守桥进行的早期讨论并分享其初步分析,以及ethPandaOps团队提供的惊人数据。该项目得到了ROP-15:EVM Gas计量资助,该资助由稳健激励组提供。

Gas计量和区块利用率

Gas是量化在以太坊网络上执行操作所需计算工作的单位。以太坊上的每笔交易都会消耗资源,为了防止寄生虫攻击和无限循环,用户必须为这些资源付费。

这个过程的一个essential组成部分是gas计量方案,即负责测量区块有多满以及还有多少资源可用的函数。所有去中心化网络都有有限的资源,因此协议必须有一种方法来计量使用情况并决定区块何时达到这些限制。

在以太坊中,当前的计量方案为每个操作分配一个成本(以gas单位衡量)并累加每笔交易的gas。然后,它将这个总和与3600万gas单位的固定限制进行比较。一旦区块达到3600万gas单位,就被认为是完全饱和的。除此限制外,协议还将区块已使用的gas与1800万的目标进行比较,这用于设置所有交易必须支付的基础费用。

这种方案的优点是简单,因此易于接口。然而,它的缺点是过高估计了区块接近网络资源限制的程度。

为了说明这一点,让我们从一个简单的例子开始。在这个例子中,我们有两个区块,B_1B_2,以及一个只关心两种资源的网络,xy,每种资源的限制为1。B_1的资源使用情况为(x=1, y=0)B_2的资源使用情况为(x=0.5, y=0.5)。根据当前方案,两个区块的使用情况都是1个单位。然而,我们可以看到两个区块都没有达到可用资源的限制。B_1达到了资源x的限制,但没有使用资源y。另一方面,B_2只使用了两种资源的一半。

当前方案缺乏表达性,这引发了用一种可以分别考虑不同资源的使用情况和限制的方案来替换它的想法。这些通常被称为"多维方案"。

一种可能的方法是类似于V神描述的方案。在这种方法中,我们将资源分组(在我们之前的例子中,资源x将是一个组,资源y将是另一个组)。然后,对于每个区块,我们为每个组添加gas单位(g_xg_y),并将区块资源利用率定义为组的最大值(\text{utilization}=\max(c_x*r_x+c_y*r_y, c'_x*r_x, g_y))。请注意,V神的方法是在交易级别,而不是区块级别。我们可以看到,在我们之前的例子中,这种计量方案将允许我们在两个区块中填充更多交易:B_1可以额外包含每种资源0.5个单位,而区块B_2可以包含1个单位的资源y而不达到区块限制。

这个例子突显了多维计量的一个潜在优势。通过更有效地核算资源利用率,我们可以在不显著增加资源过度使用风险的情况下提高网络吞吐量(即在一个区块中处理更多交易)。然而,这里有两个关键问题需要考虑:

  1. 我们应该期望从多维方案获得多大的吞吐量增益?
  2. 多维方案的设计空间是什么?下一步如何决定最佳设计?

我们将在以下章节尝试解决这些问题。

走向多维。为什么?

资源的历史gas使用情况

要理解多维计量的潜在吞吐量增益,我们首先需要研究每种资源正在使用多少gas。为此,我们设计了一个数据管道,从Xatu的数据集Erigon节点的调试跟踪收集原始交易数据,处理和聚合这些数据以计算单个gas成本组件(固有成本、输入数据、操作码和退款),并将这些成本映射到特定的EVM资源(计算、内存、状态、历史、访问和布隆主题)。

操作和资源之间的映射是这项分析的一个主要假设;不同的映射将对最终的资源细分产生重大影响。我们的映射基于对底层操作的了解(例如,我们知道某些操作码只使用计算资源)以及在最初设计gas模型时对某些操作码资源成本的部分细分

我们还应注意,这项分析忽略了与blob相关的成本和资源利用情况。尽管目前这是一个并行的自由市场,但它仍将对带宽限制施加约束,因此在设计新的gas计量模型时应予以考虑。

下图显示了在区块22000000到22005000之间观察到的每种资源对总gas消耗的贡献(这些区块在3月8日处理)。为了提高可见性,我们对连续10个区块的成本进行聚合。由于每个柱状图是10个区块的总和,因此每个柱状图可使用的最大gas为3.6亿单位,而目标gas为1.8亿单位。我们绘制了1.8亿单位的目标线。

在我们的数据中,状态在以太坊区块的gas使用中占据了显著部分,在22000000和22005000区块之间,状态占所有消耗gas的30.2%。使用gas第二多的资源是计算(26.8%),其次是访问(21.9%)。历史、带宽和布隆主题的贡献相对较小,分别占所有gas使用的9.9%、6.9%和1.6%。

这意味着状态、计算和访问是瓶颈资源,它们占用了大部分可用区块空间。因此,我们预计分别计量这些资源的模型将显示最大的收益。

在考虑资源约束和多维计量方案对网络可扩展性的影响时,查看拥塞或"高负载"时期也很相关。使用与之前相同的数据,我们筛选了利用率高的区块(超过95%),并绘制了按资源的区块利用率分布和按顶级资源的区块数量。这些区块构成了连续区块数据集的9.7%。

有趣的是,状态在这些区块中占主导地位(计算和访问也有一定贡献),与平均区块相比,这是一个显著的变化。这表明,在高需求期间,更常用的操作类型与平均区块中使用的操作类型不同。因此,对于当前的以太坊虚拟机(EVM)使用情况,在设计多维方案时,状态可能是最需要考虑的资源。

[后续内容保持原有翻译风格,此处省略]

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论