通过钱包转账 ETH 或是 ERC-20 Token 时,我们知道这个转账需要付手续费。那么,转账的手续费是怎么算的呢?
如果转账的同时还去“刻字”,是不是需要收取更高的手续费呢?今天,大白就给大家聊聊以太坊的 Gas 机制。
在以太坊网络中转账,虽然最后的手续费我们支付的是 ETH,但其实在以太坊内部并不直接消耗 ETH,而是消耗 Gas。“Gas”这个单词的英文意思是“(气体)燃料”,以太坊网络中的操作需要消耗 Gas,就如同汽车行驶需要消耗燃料一样。
那么,交易的手续费(ETH)是如何计算的呢?我们先看一下大白在以太坊网络中的一个转账截图:
在以太坊网络中转账,手续费的计算方式如下:
交易手续费(ETH)= Gas的单价 x 消耗的Gas数量
盈透证券董事长Peterffy:标普500指数可能再跌16%才会见底:9月8日消息,盈透证券董事长Peterffy Peterffy称,美国股市的跌幅还不足以反映居高不下的通胀压力,通胀压力将促使美联储在一段时间内维持高利率。他周三向彭博电视表示,标普500指数跌到3300点至3500点之间才会见底。这意味着,与周三的水平相比,最大跌幅可达16%。见底之后,将会在底部徘徊“一段时间”。“我看空已经有一段时间了,我认为股市尚未见底,因为我认为通胀还没结束,”他表示,“我们面临着去全球化、ESG、缺少熟练劳动力、持续的赤字支出和偿债成本上升等深层次问题。所以他们共同促成了通胀。”[2022/9/8 13:15:18]
在大白的这笔交易中,Gas 的单价(Gas Price)是 5Gwei,也就是 0.0000000005ETH(小数点后面8个0)。这里大白再给大家介绍一下 ETH 的单位,ETH 的最小单位是 Wei,但是谈到以太坊 Gas 的时候,经常用 Gwei。ETH、Gwei、Wei 之间的关系如下:
投资公司Spartan Group将成立5000万美元风险基金以投资DeFi:总部位于新加坡的数字资产投资公司Spartan Group今日宣布,将投资一只新的5000万美元的风险基金,该基金将投资于新兴的去中心化金融(DeFi)生态系统。Spartan Group基金的首轮融资已超过3000万美元,预计3月或4月将再融资2000万美元。(Coindesk)[2021/2/9 19:21:37]
1 ETH = 10^9 Gwei(9个0)= 10^18 Wei(18个0)
知道了 Gas 的单价,我们再看下大白这笔含“刻字”的转账消耗的 Gas 数量:24876。所以,按照上面的公式,单价乘以数量,即可得到大白花费的手续费:
手续费 = 0.0000000005ETH x 24876 = 0.00012438ETH
汽车去加油站添加燃料,燃料的价格基本是固定不变的,但是在以太坊网络中,Gas 的单价是可以自己设置的。不过,需要注意的是,Gas 的单价会影响这笔交易被打包的速度。也就是说,Gas 的单价你给的越高,矿工为了自身利益最大化,越会优先打包你的交易。
下图是 ethgasstation.info 网站统计的实际操作中 Gas 的单价和所需要等待的交易打包时间。
在左边统计图中,我们可以看到,超过 70% 的以太坊网络转账给的 Gas 单价介于 4~20Gwei 之间,小于 1Gwei 或是大于 50Gwei 的交易占比很少。
在右边的统计图中,我们可以看到,如果给的 Gas 单价是 4Gwei,打包交易需要的平均等待时间是 0.6 分钟;如果是 20Gwei,平均等待时间是 0.2 分钟。
大家常用的 imToken 钱包,在 Gas 的单价设置里,提供的是 5~100Gwei,钱包把最低单价设置为 5Gwei,保证了交易能在合理的时间内被打包,当然,如果想插队,尽快被矿工打包,你也可以自己提高 Gas 的单价。
说完了 Gas 的单价,我们再接着说消耗的 Gas 数量。
在以太坊网络中,每一笔转账,无论数额大小,消耗的 Gas 是固定的,为 21000,如果添加备注(“刻字”),需要消耗额外的 Gas。
回到大白的那笔交易上,大白总共花费的 Gas 数量是 24876,其中包含了 21000 的固定消耗数量,以及备注消耗的 Gas 数量 3876。备注需要消耗多少数量的 Gas,和输入的内容长度有关,内容越多,需要消耗的 Gas 数量也越多。
如果你仔细观察大白的那张转账截图,你会发现,大白花费的 Gas 数量 24876 后面有个括号,里面是 41.46%。这个百分比是什么意思呢?如果你再仔细看截图,你会发现,上面还有一个 Gas Limit,数值是 60000,而且它的 41.46% 正好是 24876。
Gas Limit,是指这笔操作消耗的 Gas 数量上限,这个上限值你可以自己设置。比如,大白设置的是 60000,但实际操作中并没有达到这个上限,只用了 41.46%。一般的钱包都会默认帮你设置这个上限值,对我们普通用户而言,普通转账时这个上限值也不用去考虑。
以太坊网络设置这个上限值,是以防万一,如果碰到恶意的智能合约,该合约执行将消耗无限的燃料,这样会导致交易方的 ETH 余额全部消耗(恶意的智能合约有可能是程序 Bug,如合约执行陷入一个死循环)。
Gas Limit 如果设置过低,比如设置为 10000,任何一笔转账需要的 Gas 数量至少 21000,远远超过你设置的 Gas Limit,就会导致转账失败。也就是说,Gas Limit 会影响一笔交易是否能成功。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。