当前位置: 首页 > news >正文

区块链技术原理(13)-以太坊燃料费Gas

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 什么是Gas?
  • 为什么需要 Gas?
  • 什么是燃料限额(Gas Limit)?
    • 如何估算复杂合约调用的 Gas Limit?
  • 为什么燃料费会变得如此高?
  • 如何计算燃料费?
    • EIP-1559 前的拍卖机制(2021 年 8 月前)
    • EIP-1559 后的双层结构(伦敦升级后)


前言

Gas 对以太坊网络至关重要。 正是这种燃料使它能够运行,正如车辆需要汽油一样。


什么是Gas?

在以太坊中,Gas(燃料) 是衡量网络执行操作所需计算资源的单位,类似于汽车的燃油。它不仅是支付验证者(矿工)的报酬,更是维持网络安全、防止滥用的核心机制。以下从技术原理、费用模型、优化策略和未来趋。

燃料是指在以太坊网络上执行特定操作所需的计算工作量。

由于每笔以太坊交易都需要使用计算资源来执行,因此必须为这些资源付费,以确保以太坊不容易受到垃圾信息的攻击,并且不会陷入无限的计算循环。 计算费用以燃料费的形式支付。

燃料费是用于执行某些操作的燃料数量,乘以每单位燃料的成本。 无论交易成功与否,都要支付燃料费。

燃料费必须用以太坊的本币支付,即以太币 (ETH)。 燃料通常以 gwei 计价,gwei 是以太币的一种计量单位。 一个 gwei 等于一个以太币的十亿分之一(0.000000001 个以太币,或 10-9 个以太币)。

比如,你可以说你的燃料费是 1 gwei,而不说 0.000000001 个以太币。

“Gwei” 是 “giga-wei” 的缩写,意思是 “十亿个 wei”。 一个 gwei 等于十亿个 wei。 Wei 本身(以 b-money的发明者 Wei Dai的名字命名)是以太币的最小单位。

为什么需要 Gas?

  • 资源定价:以太坊作为 “世界计算机”,需为每笔操作(如转账、合约调用)消耗的 CPU、内存、存储等资源定价,防止恶意用户通过无限循环或垃圾交易瘫痪网络。
  • 经济激励:验证者(质押 32 ETH 的节点)通过打包交易获得 Gas 费奖励,确保其持续维护网络安全。
  • 状态一致性:通过 Gas 限制(Gas Limit)控制单笔交易的最大计算量,避免因逻辑错误导致区块处理超时。

什么是燃料限额(Gas Limit)?

燃料限额是指你愿意在交易中消耗的最大燃料数量。 涉及智能合约的更复杂交易需要进行更多的计算工作,因此相比简单的支付,它们需要更高的燃料限额。 标准以太币转账要求燃料限额为 21,000 单位燃料。

例如,如果你对简单的以太币转账设置 50,000 单位燃料限额,以太坊虚拟机将消耗 21,000 单位,你将收到剩余的 29,000 单位。 然而,如果你设置的燃料太少,比如说,对于简单的以太币转账,设置燃料限额为 20,000 单位,以太坊虚拟机将消耗 20,000 单位燃料并尝试执行交易,但最后不会完成。 然后,以太坊虚拟机回滚所有变化,但由于验证者已经完成了价值 20k 单位燃料的工作,这些燃料就被消耗了,不会退回

如何估算复杂合约调用的 Gas Limit?

  • 使用 Hardhat 等开发工具在本地模拟执行,获取精确的 Gas 用量。
  • 在主网交易时,将估算值上浮 20% 作为安全边际(如预估 100 万 Gas 则设为 120 万)。

为什么燃料费会变得如此高?

燃料费高是由于以太坊广受欢迎。 如果需求量太大,用户必须提供更高的小费,力争使出价高于其他用户的交易。 小费越高,交易进入下一个区块的可能性就越大。 此外,更复杂的智能合约应用可能会执行许多操作来支持其功能,使它们消耗大量的燃料。

如何计算燃料费?

  • Gas Price:用户愿为每单位 Gas 支付的 ETH 数量(单位:Gwei,1 Gwei = 10⁻⁹ ETH)。它分为两部分:
    • 基础费(Base Fee):由协议动态调整,反映网络拥堵程度(如区块利用率超 50% 时自动上涨),且100% 被销毁以调节通胀;
    • 优先费(Priority Fee):用户额外支付的小费,激励验证者优先打包交易。
  • 总费用公式:
    总费用=Gas用量×(基础费+优先费)

例如,假设 Jordan 要向 Taylor 支付 1 个以太币。 一笔以太币转账需要 21,000 单位的燃料,基础费是50 gwei。 Jordan 支付了 2 gwei 作为小费。总费用为 21,000 × 52 = 1,092,000 Gwei = 0.001092 ETH。

EIP-1559 前的拍卖机制(2021 年 8 月前)

  • 无序竞价:用户直接指定 Gas Price,验证者优先打包出价高的交易。
    痛点:
  • 费用波动剧烈(拥堵时 Gas Price 可达 1000+ Gwei,约 100 美元 / 笔);
  • 用户需盲目猜测合理价格,易超额支付。

EIP-1559 后的双层结构(伦敦升级后)

  • 基础费动态调整:
    • 每区块基础费根据前一区块的 Gas 利用率自动增减(±12.5%/ 区块),公式为:
 下一区块基础费=当前基础费×(1+(实际用量-目标用量​)/目标用量×8)

(目标用量为 1500 万 Gas / 区块,弹性上限 3000 万)。

基础费销毁机制减少 ETH 流通量,形成通缩效应(如 2023 年销毁超 400 万 ETH)。

  • 优先费市场化:用户通过调整优先费控制交易速度(如 DeFi 套利需支付高优先费抢占区块空间)。
  • 费用可预测性提升:用户只需关注基础费(公开透明)和优先费(自主选择),避免传统模型的竞价博弈。
http://www.lryc.cn/news/622225.html

相关文章:

  • 力扣top100(day04-03)--二分查找
  • whisper 语种检测学习笔记
  • canoe面板中的进度条的使用
  • 机器学习——PCA(主成分分析)降维
  • 岩石薄片图像数据及标签-一些研究参考
  • Ceres Solver中 SetParameterization函数的完整详解
  • MySQL视图:虚拟表的强大用途与限制
  • Effective C++ 条款43:学习处理模板化基类内的名称
  • 农药化肥行业的 “智能化拐点”:边缘计算网关如何破解生产效率困局?
  • P4069 [SDOI2016] 游戏 Solution
  • 使用 Let’s Encrypt 免费申请泛域名 SSL 证书,并实现自动续期
  • Python匿名函数的具体用法
  • 蓝桥杯 二叉树
  • 企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
  • Java: Spring前端传递列表和数组限制大小256问题
  • ​Visual Studio 2013.5 ULTIMATE 中文版怎么安装?iso镜像详细步骤
  • [优选算法专题二滑动窗口——无重复字符的最长子串]
  • 介绍TCP的拥塞控制
  • 【Go语言-Day 36】构建专业命令行工具:`flag` 包入门与实战
  • 用Qt自带工具windeployqt快速打包程序
  • 龙蜥邀您参加 AICon 全球人工智能开发与应用大会,探索 AI 应用边界
  • 2020 GPT3 原文 Language Models are Few-Shot Learners 精选注解
  • [Chat-LangChain] 会话图(LangGraph) | 大语言模型(LLM)
  • JAVA 关键字
  • 清除 pnpm 缓存,解决不同源安装依赖包失败的问题
  • 银河麒麟服务器jar包部署自启动配置
  • 如何在 Ubuntu 24.04 Noble LTS 上安装 Apache 服务器
  • 第十八讲:哈希2
  • Navicat 询问 AI | 轻松修复 SQL 错误
  • vector接口模拟实现及其原理