讲师中心 微信公众号
AI工具推荐 视频效率加速

以太坊如何计算交易成本 原

梦丽姑娘_9938

梦丽姑娘_9938

发布时间:2025-08-28 10:41:27

|

267人浏览过

|

来源于php中文网

原创

在发送比特币交易时,费用与交易的大小直接相关。交易中的输入和输出数量越多,费用就越高。此外,考虑到未决交易的影响,仅这两个因素就可能导致交易费用大幅上升。

在以太坊上,由于我们讨论的是协议中的编程语言,即使是非常少量的文本或代码(在比特币中可能非常便宜的东西),也可能对计算要求非常高。让我们以一个循环为例:

代码语言:javascript 代码运行次数:0

while (i++ < 1000) {
    j += i;
}

这个循环意味着只要i小于1000,就将其增加1,然后将i和j相加并将结果存储到j中,然后再次执行。如果

i
为0,这个循环将执行1000次,或者更多,如果它是负数。

为了公平地支付这种计算成本,因为它必须立即在所有矿工的机器上执行,并且他们将资源和时间投入其中,这里引入了gas的概念。gas用于支付EVM内部所谓的智能合约(以太坊程序)的执行费用。例如,上述的

i+j
是一个求和运算,每次执行需要3个gas,因此如果执行1000次则需要3000个gas。

为了正确理解gas,我们首先介绍EVM。

EVM代表以太坊虚拟机。那么,什么是虚拟机呢?

虚拟机是运行在特定计算机上的软件,它包含完全封装在主计算机内的另一个操作系统。例如,虚拟机允许你在Linux内部运行Windows,在Windows内部运行Windows,在macOS上运行Windows,如下图所示,或任何其他组合。

以太坊如何计算交易成本
                                                                            原

我们使用虚拟机将日常使用计算机的环境与工作或编程的环境分开。这样我们可以防范病毒(它们无法破坏虚拟机并进入主操作系统),防止无限循环崩溃我们的主操作系统,并保持硬盘驱动器免受损坏,如臭名昭著的WannaCry勒索软件。此外,VM允许我们在Linux上使用Windows游戏,或者让我们轻松地在相同编程语言环境的不同版本中编程,而不会混淆它们。

EVM是以太坊协议上运行的软件内置的以太坊虚拟机。它执行智能合约——用Solidity语言编写的以太坊程序。EVM包含在以太坊网络的完整节点中,在其中执行这些以太坊用户编写的程序。

以太坊的任何矿工同时执行智能合约代码。这意味着以太坊程序(dapps - 去中心化应用程序)同时在每个人的计算机上执行(去中心化的)。

然而,这些程序的执行并不是免费的。矿工们用自己的电力、时间和硬件来执行这些操作。为了支付他们执行计算机指令的努力(例如“将值5存储到变量X中”),引入了gas的概念。

gas、ether、GWei

gas是计算机执行特定操作所需的成本单位,当我们广播包含以太坊程序以运行dapp的交易时,它执行该指令。例如,总计两个数字需要3个gas。乘以它们需要5个gas。将256位字存储到区块链中需要20000个gas,这意味着存储1kb的数据需要640000个gas。

就像美元有美分一样,以太也有自己的基本单位:wei。如果我们将wei作为以太的基本单位,我们得到下面的定义表:

以太坊如何计算交易成本
                                                                            原

这就是以太坊单位之间的单位转换。

根据这个信息网站,目前的天然气平均价格是10GWei(10千兆wei)。看到1GWei是以太网的十亿分之一,上述存储1kb字的成本是640000*10,即640万GWei。这相当于0.0064eth,每个以450美元的价格,约为2.88美元。

从上表开始到文章的这个位置的文本大约是1kb。因此,将这一小段文本存储到区块链中实际上需要2.88美元。但这只是存储成本!我们的智能合约也可能有一些逻辑,如求和或乘以然后存储数字,或在特定的挖掘块上激活的触发器等。显然,将数据存储到区块链本身是非常昂贵的。BigchainDB或IPFS中的存储效果更好,而区块链是全局处理和验证数据的更好解决方案。

Java Api Extractor
Java Api Extractor

从 Java 项目中提取 Controller 层接口定义为 JSON 数据。

下载

为什么需要gas?为什么直接支付gas而不是ether的成本?

EVM可以执行的所有可能操作的所有gas价格都在以太坊协议和我们连接到它的客户端(程序)中进行硬编码,如Geth,Eth,Parity等。如果代码在以太网中列出,那么每当以太的价值波动时我们就必须更新代码,以便将计算工作的价格保持在正常范围内并保持系统可用,这显然是不可持续的。

通过在成本之上添加这个gas层,并用GWei支付gas费用,我们可以选择改变交易中使用的gas量以及支付的金额。它完全在我们的控制之下,不会使系统失去平衡。

这引导我们进入上一节。

限价/成本与价格

gas限制是我们愿意花在交易上的最大gas量。我们用于广播以太坊交易的大多数软件都能够自动估算执行功能所需的gas量。它通常会立即建议一个值。例如,简单的货币A-> B交易通常只需要21000个gas。更复杂的那些称为特定智能合约功能的可能会遇到数十万甚至数百万的gas。消耗的gas量称为gas成本。

作为用户,我们可以修改我们想要在交易上花费的gas数量并减少它,但如果交易在执行期间耗尽了gas,我们就会丢失我们发送的gas。它已被花费并且交易被拒绝。另一方面,如果我们提供的gas量超过需要的数量,剩余部分将退还给我们。因此,发送比执行交易所需的更多gas总是更好。

gas成本是每单位gas的GWei价格。

因此,以太坊交易的总成本实际上是必需gas的数量乘以GWei每gas单位的价格。这是我们支付的最高交易费用;任何额外的gas都会退还,因此费用往往被高估。

我们来看一个例子。

以太坊如何计算交易成本
                                                                            原

在上图中,我们正在执行一项交易,由于其复杂性,估计它将需要135963gas。以25GWei的价格,我们支付的最高交易费是1.57美元,这在查看我们发送的总金额时是微不足道的(0.38eth = 178美元)。如果我们将天然气的价格提高到250GWei,那么交易成比例地变得更加昂贵:

较高的费用可以有效地鼓励矿工在队列中的其他人之前处理我们的交易,从而加快执行速度。如果我们不急,我们可以将gas价格保持在起始值,交易确认不应超过10分钟。但如果我们匆忙并希望在几秒钟内完成(例如,如果我们正在处理拍卖),那么很容易提高gas价格并牺牲一些钱来保证成功。

结论

gas是以太坊虚拟机中每次计算操作所花费的工作单位。这是以太币,以太坊协议的代币,并且每个计算操作都有不同的gas成本。gas价格(GWei或以太网的十亿分之一)根据网络拥塞和用户对快速确认的偏好而变化。

对于我们想要在以太坊网络上部署的智能合约,两个术语很重要:gas限制和gas价格。gas限制是我们愿意花在执行交易上的最大gas量。实际需要的gas量(仅在交易执行后才知道)称为gas成本。gas价格是每单位gas的价格,以GWei(或以太网的十亿分之一)表示。交易总成本将是gas成本和gas价格的乘积,而最高交易费用将是gas限价减去gas价格的乘积。差额退还给交易的发件人以保持系统公平和可用。

======================================================================

汇智网原创翻译,转载请标明出处。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3379

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2938

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

1528

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

2679

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3350

2023.08.08

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1697

2023.08.10

windows boot manager
windows boot manager

windows boot manager无法开机的解决方法:1、系统文件损坏,使用Windows安装光盘或USB启动盘进入恢复环境,选择修复计算机,然后选择自动修复;2、引导顺序错误,进入恢复环境,选择命令提示符,输入命令"bootrec /fixboot"和"bootrec /fixmbr",然后重新启动计算机;3、硬件问题,使用硬盘检测工具进行扫描和修复;4、重装操作系统。本专题还提供其他解决

2517

2023.08.28

windows锁屏快捷键
windows锁屏快捷键

windows锁屏快捷键是Windows键+L、Ctrl+Alt+Del、Windows键+D、Windows键+P和Windows键+R。本专题为大家提供windows相关的文章、下载、课程内容,供大家免费下载体验。

5227

2023.08.30

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

0

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn