> 技术文档 > 基于机器学习的以太坊区块链Gas价格预测方法(A Machine Learning Approach for Gas Price Prediction in Ethereum Blockchain)_以太坊gas prediction

基于机器学习的以太坊区块链Gas价格预测方法(A Machine Learning Approach for Gas Price Prediction in Ethereum Blockchain)_以太坊gas prediction

目录

Abstract

Introduce

background

Ethereum

Gas and Payment

Proposed Approach

Data Collection

Data Pre-processing

Modeling

LSTM

GRU

Facebook Prophet

Evaluation

Experiments

LSTM Experiments

GRU Experiments

Prophet Experiments

Results and Discussion

Geth data preparation

Results and Discussion

Related Work

Existing Research Works

Gas Price Oracles

Conclusion


Abstract

以太坊是一个基于区块链的平台,它提供了一个运行智能合约的全球计算基础设施。为了给智能合约和交易执行分配成本,以太坊区块链采用了一种基于Gas的计量方法,旨在激励矿工操作网络并保护其免受攻击。更准确地说,矿工除了从采矿报酬中获得报酬外,还从矿块中包含的所有交易中获得费用。因此,交易中的 Gas 价格越高,支付给矿工的费用就越高,从而使得出价更高的交易能够更快地被矿工选中并执行。因此,以太坊交易的发送者面临一项重要挑战:需要选择一个最优的 Gas 价格——出价过低可能导致交易长期无法被打包,而出价过高则会造成不必要的开支。本文提出了一种推荐方法,为用户提供合适的 Gas 价格建议。更准确地说,本研究考察了多种预测算法在以太坊区块链中对下一区块 Gas 价格预测的应用。所用模型包括 Prophet,以及两种深度学习模型——长短期记忆网络(LSTM)和门控循环单元(GRU)。研究还将这些方法与最常用的 Gas 价格预言机进行了对比。结果评估显示,所提出的 LSTM 和 GRU 模型均优于 Prophet 模型和 Geth 预言机。在本实验中,LSTM 和 GRU 分别达到了 0.008 的均方误差(MSE),而 Geth 的 MSE 为 0.016,Prophet 的 MSE 为 0.014。


Introduce

区块链技术作为一种去中心化的分布式账本系统,已在金融、政府、制造、教育、医疗等地方展现出巨大潜力。以太坊平台进一步通过智能合约扩展了区块链的功能,使其不仅支持金融交易,还可部署各类分布式应用。以太坊网络采用工作量证明(Proof-of-Work)共识机制,矿工在挖矿过程中同时承担交易验证的任务,并根据用户为交易支付的 Gas 费用高低来决定打包优先级。 

然而,Gas 费用采用类似拍卖的动态定价机制,用户既要避免出价过高造成浪费,又要防止出价过低导致交易长时间无法确认。目前主流的 Gas 价格预言机(如 Geth、EthGasStation)在实际应用中常常出现预测不准的问题,无法满足用户对交易时效性和经济性的双重需求。

本报告针对这一挑战,提出了基于机器学习的 Gas 价格预测与推荐方法。我们选取了 Facebook Prophet、长短期记忆网络(LSTM)和门控循环单元(GRU)三种模型,面向下一区块的 Gas 价格进行逐区块预测,并与 Geth 预言机进行了性能对比。实验结果表明:

  • LSTM 与 GRU 模型在真实数据集上的均方误差(MSE)仅为 0.008,明显优于 Prophet(0.014)和 Geth(0.016);

  • 深度学习模型能够更精准地捕捉 Gas 价格的时序动态,为用户提供更具参考价值的报价建议。

本研究的主要贡献包括:

  1. 构建并清洗了为期 14 天的以太坊 Gas 价格数据;

  2. 系统比较了 Prophet、LSTM 和 GRU 三类预测算法在 Gas 价格预测任务中的性能差异;

  3. 验证了深度学习模型在提高预测精度、优化交易成本方面的有效性。

本文余下部分安排如下:
第 2 节介绍以太坊及其 Gas 机制的基本原理;第 3 节简要描述 Gas 价格预测方法;第 4 节介绍各模型的实验设计;第 5 节展示模型评估结果;第 6 节讨论相关工作;第 7 节总结全文并展望未来研究方向。


background

对以太坊网络的执行方式和Gas、支付机制进行描述。

Ethereum

  1. 用户对交易进行签名,通过infura等工具发送交易到以太坊网络中
  2. 网络中的矿工从交易池中选取交易,将其打包到一个待验证的区块中,开始验证的流程。(这里就是前文所说的用户Gas费用给的越多,矿工就越会优先选择Gas费高的交易,Gas费低的就乖乖排队等待)
  3. 交易池容量有限,若持续有更高 Gas 价格的交易涌入,Gas 价格最低的那些交易将被剔除,用户必须重新发起交易。
  4. 矿工选中交易并开始 PoW 计算,完成后将新区块广播到整个网络。网络其他节点收到新区块后,更新并同步本地区块链副本。

Gas and Payment

文章中三段文字的描述不够直观,我将文字整理成了表格如下:

概念 说明 Gas 衡量在以太坊网络上执行特定计算或交易成本的单位。所有可编程计算片段(合约创建、消息调用、存储读写、虚拟机操作等)都有一个全球统一的 Gas 成本。 gasLimit 每笔交易预先支付的最大 Gas 数量,由发送者在交易里指定。若实际消耗超过 gasLimit,交易因 Gas 耗尽失败并视为无效。 gasPrice 发送者愿意为每单位 Gas 支付的价格,单位通常为 GWei(1 GWei = 10⁻⁹ Ether)。矿工按此价格收取手续费并优先打包 Gas 价格较高的交易。 费用计算 交易最高可支付费用 = gasLimit × gasPrice 例如:30 000 × 25 GWei = 750 000 GWei = 0.75 Ether 失败条件 若实际消耗 Gas > gasLimit,则交易失败,已消耗的 Gas 费用不退还。 退款规则 若实际消耗 Gas < gasLimit,则剩余 Gas 金额按 gasPrice 退还给发送者账户。 矿工选择 矿工优先打包手续费(gasLimit × gasPrice)更高的交易,可自由选择或忽略交易,从而形成竞价上链机制。

Proposed Approach

Data Collection

数据集采用了2020年10月10日至24日期间的每个区块的Gas费价格,共计95960个区块。

Data Pre-processing

Gas的价格波动受到三个方面的影响:矿工打包的决策、各类预言机或者推荐方法的出价、以太坊网络的拥堵状况。如下图 3 所示,Gas 价格序列噪声大且分布极度不平衡,会显著降低预测模型的准确度。

因此,对数据的预处理分为三步:

  1. 数据重采样。采用下采样策略:以连续 5 分钟为一个时间窗口,计算该窗口内所有区块的最小 Gas 价格平均值,生成新的采样序列(见图 4),并在此粒度上进行预测,以缓解数据不平衡。

  2. 为减少噪声干扰,使用启发式准则剔除离群点:将所有超出均值±1.5 σ 的数据点替换为临界值(均值±1.5 σ)。

  3. 由于深度学习算法对输入尺度敏感,对重采样后的序列先做对数变换,再根据模型需要采用 Min–Max 归一化,以确保各特征数值处于相近范围。

Modeling

目的:预测预定义时间段内的最小 Gas 价格。

选择了LSTM、GRU、Prophet。

  • LSTM/GRU:在捕捉非线性与复杂时序模式方面能力强,能有效学习长短期依赖;

  • Prophet:参数直观易调,具有快速且较准确的趋势与季节性预测能力。

LSTM

长短期记忆网络是一种针对时序数据设计的循环神经网络(RNN)的变体,能过更有效的捕捉序列中的长程依赖。他的核心是四个相互作用层的记忆单元:cell state、输入们、遗忘门、输出门。

介绍了超参数调优的具体项:

  • Batch size:一次参数更新所用样本数,实验范围 [1,128]。

  • Epochs:完整遍历训练集的次数,实验范围 [100,500]。

  • 隐藏单元数:每层神经元数量,实验范围 [15,200]。经测试单元数对误差影响不大,最终选 15。

  • 损失函数:对比 MAE (平均绝对误差)与 MSE(均方误差),最终选用 MAE。

  • 优化器:对比 Adam 和 SGD,最终选用 SGD,因其在大数据集上更易收敛且有助于泛化。

  • Dropout:防止过拟合,测试后选 1% 并在 LSTM 层后添加 Dropout 层。

  • 学习率:实验 [1, 1e-4] 范围,兼顾收敛速度与稳定性。

  • 权重衰减:测试 [1e-5,0] 范围,平衡正则化强度。

  • 激活函数:实验多种后选用 tanh,效果最佳。

  • 隐藏层数:测试 1~4 层,单层结构在效率与性能间表现最优,故最终采用 1 层。

GRU

GRU 是 LSTM 的简化版本,将输入门与遗忘门合并为“更新门”,并保留“重置门”以控制遗忘量。GRU 在多项任务中已超过 LSTM,且结构更轻量。我们在 GRU 模型中沿用与 LSTM 相同的超参数流程进行调优。

Facebook Prophet

Prophet 是 Facebook 核心科学团队开源的时序预测工具,专为用户活动等具有趋势与多重季节性的场景设计。其基于可调节的曲线拟合方法,以鲁棒、易配置、快速著称。

关键超参数

  • Changepoints(趋势拐点):定义趋势变化位置,可自动检测或手动指定;

  • Seasonality(季节性):默认包含年、周、日三级季节性,也可根据需要增减。

由于以太坊是全球性指标,且链上无节假日信息可用,我们仅对拐点和季节性参数进行了少量调整,以适应 Gas 价格的时序特征。

Evaluation

为全面评估 LSTM、GRU 和 Prophet 三种模型的性能,文章采用了以下四种回归常用指标:

  • 平均绝对误差(MAE)

    \\mathrm{MAE} = \\frac{1}{N} \\sum_{i=1}^{N} \\bigl|\\,y_i - \\hat y_i\\bigr|

    通过计算预测值与真实值误差的绝对值再求平均,反映模型平均误差的大小。

  • 均方误差(MSE)

    \\mathrm{MSE} = \\frac{1}{N} \\sum_{i=1}^{N} \\bigl(y_i - \\hat y_i\\bigr)^{2}

    将误差平方后求均值,对较大误差给予更重惩罚。

  • 均方根误差(RMSE)

    \\mathrm{RMSE} = \\sqrt{\\frac{1}{N} \\sum_{i=1}^{N} \\bigl(y_i - \\hat y_i\\bigr)^{2}}

    为 MSE 的平方根,恢复到与目标变量同一量纲,便于直观解读。

  • 决定系数(R²)

    R^2 = 1 \\;-\\; \\frac{\\displaystyle \\sum_{i=1}^{N}\\bigl(y_i - \\hat y_i\\bigr)^{2}} {\\displaystyle \\sum_{i=1}^{N}\\bigl(y_i - \\overline{y}\\bigr)^{2}}

    反映回归模型对样本观测值的拟合程度,取值范围 R^2 \\in (-\\infty,\\,1] ,越接近 1 拟合越好。


Experiments

将总的数据,70% 用于训练(其中再留出 10% 作为训练中的验证集),30% 用于最终测试。

LSTM Experiments

在训练前对数据做预处理也就是归一化处理(Min–Max 到 [0,1]),并按 90%/10% 划分训练集/验证集。在表1中给出一系列学习率、衰减、批大小、轮次组合的 MAE、MSE、R²、RMSE(也就是上面评估提到的四种指标)

随训练轮次增加,训练集与验证集的损失持续下降,且两者曲线趋于重合,表明防止了过拟合;

最佳配置下模型在测试集上可达 MSE≈0.008、R²≈0.89。

GRU Experiments

对同一数据集、相同预处理与超参范围,重复LSTM的流程。

Prophet Experiments

季节性调整,先在年、周、日三级季节性间切换,发现关闭年季节性表现最佳。

拐点尺度调优,在 [0.0001,0.5] 范围内调整拐点先验尺度,最佳取 0.01,可获得最优RMSE≈0.149。

对数变换,对原始数据波动幅度大,进一步对数变换后再训练,并将预测结果指数反变换,获得的显著误差下降,表明对数预处理增强了 Prophet 的预测稳定性。


Results and Discussion

这一部分,将所提出的机器学习模型(LSTM、GRU、Prophet)的结果与Geth预言机进行了比较。

Geth data preparation

通过Python脚本调用 Etherscan API获取Geth建议的Gas价格数据,与前文的数据集一样进行相同的数据预处理流程。

Results and Discussion

在相同时段内,将真实 Gas 价格与 Prophet、LSTM、GRU 模型以及 Geth 推荐值进行对比,并用四项指标评估误差。

可以看到图中,蓝线是真实的数据,LSTM和GRU更拟合。


Related Work

回顾现有的 Gas 价格推荐研究,并概述主要的预言机实现。

Existing Research Works

  • Singh & Hafidh 将交易确认时间划分为 8 类(15s、30s、1min、…、30min+),使用多层感知机(MLP)和随机森林对确认时长进行分类。机器学习回归模型优于传统泊松回归,但需频繁重训,不够实时。

  • Werner et al. 结合深度预测模型与“紧迫度”参数,为用户推荐 Gas 价格。在引入紧迫度后,可比 Geth 平均节省超 50% 费用,仅多等待约 1.3 个区块。

  • Pierro & Rocha 分析待处理交易数和矿工数量对手续费的因果影响,并评估 EthGasStation 预言机。现有预言机误差可达 28%,推荐结果不够准确。

  • Chen et al. 提出 Gasper 工具,通过符号执行检测智能合约字节码中的高费耗损模式,侧重 Gas 用量优化,与 Gas 价格预测不同。

  • Ducasse et al. 开发 SmartAnvil 平台,支持未来集成交互式 Gas 估计与优化功能,关注 Ethereum/Solidity 合约分析。

Gas Price Oracles

  • Geth,Go Ethereum 原生客户端,占全网 >79% 市场份额。建议值取最近 100 个区块最小 Gas 价格的第 60 百分位。

  • EthGasStation,第三方工具,基于前 10 000 区块 Poisson 回归模型,提供 SafeLow、Standard、Fast、Fastest 等多档估计。实践中易出现过度预估,研究指出误差大于官方宣称。

  • GasStation-Express,EthGasStation 的轻量版,基于最近 200 区块最低接受价的占比阈值(SafeLow 35%、Standard 60%…)进行估算,同样存在显著过付风险。


Conclusion

在以太坊网络中预测交易的 Gas 价格并非易事,但鉴于交易所涉及的资金规模,这一任务显得尤为必要。本文提出了一种基于机器学习的以太坊 Gas 价格预测新方法,选取了 Facebook Prophet 算法和两种深度学习模型(LSTM 与 GRU)作为预测工具,并对这三种模型的性能进行了系统评估。我们还将它们与最常用的 Gas 价格预言机 Geth 进行了对比,验证了深度模型在预测精度上的优势,并确定了最适合本任务的模型配置。

未来工作展望:

  1. 探索更多机器学习和深度学习技术,扩大数据集规模,与其它预言机(如 EthGasStation)进行更广泛的对比。

  2. 研究如何将 Gas 价格预测结果应用于用户实际交易中,以帮助用户实现更经济的交易策略。

  3. 基于所提模型开发一个 Web 应用,使任何以太坊用户在发起交易前都能在线获取 Gas 价格预测,提升使用体验。


创新点:

方法迁移创新:将适合时序预测的LSTM/GRU模型首次应用于区块链gas价格预测场景

交叉验证设计:不仅对比机器学习与传统统计学方法,还与区块链原生预言机进行横向benchmark

评估维度突破:采用MSE指标量化预测误差,突破传统gas价格研究中定性解释为主的局限

不足之处:

数据时效局限:训练数据未体现以太坊2021年后EIP-1559升级带来的gas机制结构性变化

场景泛化不足:仅验证下一个区块的短期预测,未探索更长时序窗口的预测可行性

工程落地缺失:未将模型集成到钱包等客户端形成完整推荐系统(需考虑实时推理延迟等工程因素)

By Superx,written in chengdu