走向多维——EVM gas计量实证分析——执行层研究

本文总结了一项实证分析的主要发现,该分析关注于不同EVM gas计量方案如何影响网络吞吐量和区块利用率,特别是多维方案,其中不同资源的使用情况被分别计量。研究结果表明,采用多维gas计量方案可以显著提高layer1的可扩展性,但同时也增加了复杂性,需要在实施和区块构建方面进行权衡。

3c0abdf68fa4364964ce6215fd77eb689ec5a217e9b2a2a0806125d3cb2b0db3\ 3c0abdf68fa4364964ce6215fd77eb689ec5a217e9b2a2a0806125d3cb2b0db31536×1024 152 KB

这篇文章总结了一项实证分析的关键要点,该分析侧重于了解不同的EVM gas计量方案如何影响网络吞吐量和区块利用率。具体来说,我们专注于多维度方案,其中不同资源的使用情况是分开计量的。

为了简洁起见,我跳过了许多技术细节。请参考项目文档了解更多详情。

我要感谢@dcrapis的宝贵审阅、评论和讨论,Shouqiao Wang的早期讨论和分享他的初步分析,以及ethPandaOps团队提供的惊人数据访问权限。该项目得到了Robust Incentives Group提供的ROP-15: EVM Gas Metering资助支持。

Gas 计量和区块利用率

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

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

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

该方案的优点是简单,因此易于连接。然而,它的缺点是高估了一个区块接近网络资源限制的程度。

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

当前方案缺乏表现力,这导致人们产生了用一种分别考虑不同资源的使用和限制的方案来代替它的想法。这些通常被称为“多维度方案”。

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

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

  1. 我们应该期望从多维度方案中获得哪些实际的吞吐量收益?
  2. 多维度方案的设计空间是什么?以及决定最佳设计的下一步是什么?

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

走向多维度方案。为什么?

按资源划分的历史gas使用情况

为了了解多维度计量的潜在吞吐量收益,我们首先需要检查每个资源正在使用多少gas。为此,我们设计了一个数据管道,该管道从Xatu的数据集和Erigon节点的debug traces收集原始交易数据,处理和聚合这些数据以计算单个gas成本组成部分(内在成本、输入数据、操作码和退款),按交易划分,并将这些成本映射到特定的EVM资源(计算、内存、状态、历史记录、访问和bloom主题)。

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

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

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

image\ image4920×1920 428 KB

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

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

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

image\<br>image4920×1919 384 KB image\<br>image1920×1920 156 KB

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

区块构建模拟和计量方案

现在,我们知道状态、计算和访问是最有可能实现吞吐量收益的资源。但是,我们仍然没有回答实际收益可能是多少。为了实现这一目标,我们构建了一个基于蒙特卡洛方法的模拟,该模拟使用重复的随机抽样来估计在不同的计量方案和交易需求水平下观察到的吞吐量。

我们通过场景来模拟交易需求。它们控制每个12秒插槽中到达mempool的交易数量和哪些交易。对于每个插槽,我们使用需求场景生成的交易来刷新mempool。然后,我们为该插槽构建一个区块。首先,我们按交易费用对mempool交易进行排序(最高的排在第一位)。其次,我们迭代地将交易添加到区块中,直到根据正在测试的计量方案将其填满为止。当然,一旦我们将交易添加到区块中,我们就会将其从mempool中删除,以便无法再次选择它。对于预定义的区块数,重复此mempool刷新和区块构建周期。

我们要讨论的第一个场景旨在模仿对历史交易的无限需求。换句话说,它试图估计我们在不同的计量方案下可以实现的最大收益,假设始终有更多的交易可用来将区块填充到3600万gas单位的限制。此方案从3月8日处理的同一历史区块中采样交易,直到区块已满。

下表显示了各种计量方案的平均交易吞吐量收益(即,包含在一个区块中的交易数量)和使用的总gas(即,包含在一个区块中的gas单位总数)。平均值是根据在此方案下构建的单个区块的100,000次蒙特卡洛迭代计算得出的。

计量方案 吞吐量平均增益 Gas使用量平均增益
计算 vs. 其他 60.1% 44.0%
状态 vs. 其他 58.9% 52.5%
访问 vs. 其他 49.6% 34.1%
带宽 vs. 其他 26.2% 11.7%
状态 vs. 计算 vs. 其他 145.2% 133.8%
状态 vs. 计算 vs. 访问 vs. 其他 241.3% 219.1%

在二维方案中,“计算 vs. 其他”和“状态 vs. 其他”与当前的一维方案相比,显示出最大的吞吐量增益。“访问 vs. 其他”也显示出显着的增益,尽管略低于其他两个方案。此外,三维和四维方案都比当前方案产生了更大的增益,这突出表明计算、状态和访问在历史交易中具有相关的gas使用量,因此,单独计量这些资源会对这些交易的需求无限大的情况下的吞吐量产生重大影响。

在区块中包含的gas单位总数中也观察到了这种趋势。但是,gas使用量的增益略低于在交易吞吐量中观察到的增益。

现在,我们已经估计了在各种计量方案中可以观察到的最大收益,因此很自然地会质疑在每种计量方案中需要多少额外的需求才能填充以太坊区块并实现先前观察到的吞吐量。为此,我们设计了一组场景,在这些场景中,我们从3月8日采样具有不同需求水平的历史交易。

需求由3月8日观察到的经验分布建模,并使用乘数来增加平均需求。例如,2倍的乘数将导致平均需求是3月8日观察到的需求的两倍。下图显示了测试的四个需求乘数的交易到达计数分布。

image\ image4920×1920 301 KB

下图显示了按计量方案和需求水平划分的中位数区块利用率和四分位间距(IQR)。回想一下,区块利用率表示一个区块有多满,并且定义为一个区块的计量gas除以3600万gas单位的限制。

image\ image4928×1920 431 KB

与先前的结果一致,基本需求(乘数 = 1x)不足以在所有计量方案中实现高利用率。随着需求水平的提高,中位数利用率也随之提高。在二维方案中,需要3倍的需求水平才能在中间情况下实现完整区块。三维方案需要5倍的需求。关于四维模型,所有测试的需求水平都会导致中间情况下部分填充的区块。

走向多维度方案。怎么做?

根据我们的实证分析,转向多维度计量方案可以在 L1 可扩展性方面获得显着收益。但是,有什么缺点吗?关键的权衡是复杂性。

多维度计量在两个层面上增加了复杂性。第一层是实现复杂性。我们需要能够跟踪每个EVM操作消耗的每个资源的gas量,这需要对执行客户端进行硬分叉,以添加新的资源维度。此外,我们需要对每个操作和每个资源之间的映射进行编码。此映射对于确保网络继续正常运行至关重要;因此,至关重要的是对每个操作的资源使用情况进行深入的基准测试。这可能类似于gas-cost-estimator的分析,但适用于所有相关的EVM资源。最后,我们引入了一个仅用于跟踪区块利用率的新变量。同时,我们继续使用总gas来计算交易费用,这可能会造成混淆。

第二层复杂性与区块构建有关。即使用户的体验保持不变——交易成本相同,并且用户继续提交单个gas限制和最大费用——区块构建者现在面临着更复杂的优化问题。他们不仅需要考虑MEV和交易费用,还需要考虑如何有效地将区块打包到各种资源中。

  • 原文链接: ethresear.ch/t/going-mul...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展