时间:2023-07-30|浏览:274
用戶喜愛的交易所
已有账号登陆后会弹出下载
那么,转账的手续费是怎么算的呢?如果转账的同时还去“刻字”,是不是需要收取更高的手续费呢?今天,就给大家聊聊以太坊的Gas机制。
在以太坊网络中转账,虽然最后的手续费我们支付的是ETH,但其实在以太坊内部并不直接消耗ETH,而是消耗Gas。“Gas”这个单词的英文意思是“(气体)燃料”,以太坊网络中的操作需要消耗Gas,就如同汽车行驶需要消耗燃料一样。
那么,交易的手续费(ETH)是如何计算的呢?我们先看一下大白在以太坊网络中的一个转账截图:
在以太坊网络中转账,手续费的计算方式如下:
交易手续费(ETH)=Gas的单价x消耗的Gas数量
在这笔交易中,Gas的单价(GasPrice)是5Gwei,也就是0.0000000005ETH(小数点后面8个0)。这里再给大家介绍一下ETH的单位,ETH的最小单位是Wei,但是谈到以太坊Gas的时候,经常用Gwei。ETH、Gwei、Wei之间的关系如下:
1ETH=10^9Gwei(9个0)=10^18Wei(18个0)
知道了Gas的单价,我们再看下这笔含“刻字”的转账消耗的Gas数量:24876。所以,按照上面的公式,单价乘以数量,即可得到花费的手续费:
手续费=0.0000000005ETHx24876=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%。这个百分比是什么意思呢?如果你再仔细看截图,你会发现,上面还有一个GasLimit,数值是60000,而且它的41.46%正好是24876。
GasLimit,是指这笔操作消耗的Gas数量上限,这个上限值你可以自己设置。比如,大白设置的是60000,但实际操作中并没有达到这个上限,只用了41.46%。
一般的钱包都会默认帮你设置这个上限值,对我们普通用户而言,普通转账时这个上限值也不用去考虑。以太坊网络设置这个上限值,是以防万一,如果碰到恶意的智能合约,该合约执行将消耗无限的燃料,这样会导致交易方的ETH余额全部消耗(恶意的智能合约有可能是程序Bug,如合约执行陷入一个死循环)。
GasLimit如果设置过低,比如设置为10000,任何一笔转账需要的Gas数量至少21000,远远超过你设置的GasLimit,就会导致转账失败。也就是说,GasLimit会影响一笔交易是否能成功。
关于以太坊转账,你还有哪些疑问,或者你有哪些心得可以分享?欢迎在留言区留言。