
不了解Gas,是要吃亏的。
下面这张图,是前两天截取的,以太坊Gas价格跌到3gwei的历史性时刻。

而就在不久前的5月份,gas价格却一度飙升到8000gwei,并在随后的两三个小时内稳定徘徊在5000之上。

如果你是新手,或者你不了解Gas,跟平时没什么两样,恰巧发送了一笔转账,那么,这笔转账可能比平时多支付了足足1000倍的冤枉钱!
如果对8000gwei没有直观印象,大家可以跟现在做个对比,现在gas价格也是5gwei,做一次swap平均在5美元,放在当时就是8000美元!一笔转账花了8000美元,不是活生生的冤大头吗?
关于什么是以太坊的Gas,你百度或者google,发现有非常多不同的表述,有些解释为“……消耗的数量”,有些则解释为“……消耗的费用”,目前没有统一定论,初学者往往会感到迷惑。
但,只要记住这个简单的公式:“费用=数量*价格”,即可逐一理解每个概念。讲解之前先看下面的举例:
汽车(燃油车)要跑起来,就必须消耗汽油。在以太坊网络,各种“应用程序”要“跑”起来,也必须消耗Gas。Gas之于以太坊,就像汽油之于汽车。
假设开车从A地到B地需要消耗10升汽油,每升的价格8元,那么,从A到B需要消耗的汽油费用:10*8=80(元)。
同样,在以太坊网络,假设执行发送代币这个操作,需要消耗Gas的数量是21000个单位,每个单位Gas价格是100gwei。则执行这笔操需要支付的费用:21000*100=21000 00gwei
上述例子中,21000就是Gas的消耗数量(Gas limit),100是Gas的价格(Gas price),21000 00gwei就是这笔操作消耗的手续费/Gas费用/GAS fee。
举这两个例子,仅想表明,费用=量*价。以太坊的手续费计算,也遵循这个公式,并且接下来也按这个公式展开解释,将涉及如下内容:
一、什么是Gas
二、什么是Gas Limit
三、什么是Gas price、Gwei
四、什么是Gas fee
五、如何计算Gas fee
六、什么是Base fee、Max priority fee、Max fee
七、MetaMask实例演算
八、为什么需要Gas
九、为什么有时GAS 价格这么高
十、如何减少GAS fee开支
一、什么是Gas
Gas翻译为中文是燃料/汽油的意思。在以太坊(或其他网络),为了执行特定的操作(比如发送代币、存储、兑换代币)需要消耗一定的燃料,这个燃料我们称之为Gas。
这就好比汽车要跑,就需要消耗汽油。在以太坊,要进行各种交互,就需要消耗Gas。这个Gas就当作一个专有名词。
经常听人说,现在gas是5/gas飙到了200……等等,在我看来,这种表述是不贴切。你说汽油现在是5,到底是说汽油现在是5元还是5升?如果说5元,那你说的gas指的是价格,如果说是5升,那么就是指数量。在我看来,Gas就是一个专有名词,既不是指数量也不是指价格。
二、什么是Gas Limit
在开头例子中,要计算从A地跑到B地汽油花了多少钱,除了要知道汽油价格(多少钱1升),还需要知道消耗的汽油量(用了多少升)。
同样,在以太坊网络,要计算某笔操作的成本(手续费),除了要知道Gas的价格,还要知道消耗的Gas的数量。
Gas数量要消耗多少,由合约创建者设定,不同合约、不同类型的操作,消耗的gas数量不尽相同,操作越复杂需要消耗的gas越多,所以很难预先估计Ga的消耗量,为此采取的办法是,给定一个比实际消耗更高的限值,即Gas Limit,如果实际未消耗这么多,剩余部分将退回用户。
因此,在以太坊网络计算手续费时,消耗的Gas的数量,通常采用Gas Limit的数值。
1.什么是Gas Limit?翻译为中文是燃料限制的意思,也就是Gas最高限额,是指你愿意支付的最高gas数量。
在计算消耗的Gas数量时,钱包提供商比如metamask往往直接给出Gas Limit,如果实际消耗小于Gas Limit,剩余的返还。如果实际消耗超过Gas Limit,交易无法完成。
假设一笔以太坊网络转账需要消耗的Gas数量为21000,Gas Limit设置为50000,而实际只消耗21000,那么剩下的29000将自动返还。但如果实际消耗需要51000,而你只设置为50000,那么这笔交易将不会完成,消耗的50000也不会退回。
所以,如果试图通过减小Gas Limit数值达到减少手续费的目的,可能会适得其反。不仅交易可能不成功,手续费照样扣。
2.Gas Limit如何确定?Gas Limit的数值一般是钱包提供商默认自动给出的,通常不需要我们手动修改或者调整。
下图是MetaMask钱包转账时,系统默认给定的Gas Limit数值。

三、什么是Gas price、Gwei
如果说Gas Limit是“量”,那么Gas price就是“价”。
1.什么是Gwei。我们知道分、角、元,是人民币的单位,1元=10角=100分。而Gwei,是ETH的货币单位,1Gwei=0. 0000 00001ETH,1ETH当前大致=1600USDT,1USDT当前大致等于6.8元。
2.Gas price,是指Gas 的价格/单价,通常用Gwei来表示。下图中,当前的平均Gas price是9gwei。

虽然Gwei是ETH的货币单位,两者可以相互转换(1Gwei=0. 0000 00001ETH),但在说Gas price的时候,通常用Gwei来表示,因为说"Gas price是10Gwei",比"Gas price是0.0000……1ETH“来的顺口。
有些人非得用ETH来表示,当然没问题,就好比“指甲长1厘米”,你非得说“指甲长0.00000……1千米”也不能说错。
3.Gas price如何确定?下面第六点展开讲。
四、什么是Gas fee
Gas fee,是在区块链上执行特定操作所需要支付的费用。可以笼统称之为“手续费”。
既然是费用,那就有计量单元,在以太坊网络,Gas fee的计量单位通常用ETH来表示(目前1个ETH约=1600usdt)。
比如,发送了10USDT给张三,手续费却花掉了0.01ETH。这个0.01ETH就是这笔交易所支付的Gas fee。
当然也可以用Gwei来表示,利用1Gwei=0. 0000 00001ETH转换一下就行了。
但是,正如你所看见的,1000000Gwei,1后面太多的零,不利于人类肉眼识读,因此,人们通常用更大的单位 ETH来表示。好比“道路长100千米”,通常我们不说成“道路长100……00毫米”。
我们经常听见有人说,“现在Gas都降到到5了……”,其实是在说“Gas的单价降到5Gwei了”,而不是指Gas的数量(Gas Limit),也不是指费用(Gas fee)。
总结一下,当我们说Gas价格(Gas price)的时候,通常用gwei作单位;当我们说Gas fee 的时候,通常用ETH做单位。
五、如何计算Gas fee
上面提到Gas Limit、Gas price、Gas fee三个概念,那么Gas fee的计算就非常简单了,Gas fee=量*价,即Gas fee=Gas Limit*Gas price。
假设,张三向李四支付1ETH,Gas Limit为1000,Gas price为100Gwei,Gas fee=1000 * 100 =10000 0Gwei,用ETH表示就是10000 0/1 0000 0000 = 0.0001ETH。按目前每个ETH1600美元来算,就是0.0001*1600=0.16美元。
关于Gas price,伦敦升级实施后跟以往不一样,在第六点进行说明。
六、什么是base fee、Max priority fee、max fee
上面讲Gas price的时候,为了更好理解,没有展开说,2021年8月5日伦敦升级实施后,Gas price变成包含两部分的费用:基本费(base fee)和小费(Max priority fee),在metamask钱包中,被称为max fee。
1.base fee
即基本费。每个区块都有一个作为底价的基本费,为了有资格被包含在一个区块中,Gas价格必须大于等于基本费。基本费用的确定方法,这里不展开。
2.Max priority fee
Max priority fee,即小费的意思。在滴滴打车的时候,遇到高峰时段,如果加10元、20元小费,可能你会优先叫到车。在以太坊网络Gas费的设计机制中,同样适用这个道理。你给小费,就可能优先成交。
这里需要注意,基本费是根据网络拥堵情况实时变动的,可以通过网站查询基本费,而小费可以自己调整,一般调高不调低。下图中,base、priority分别代表基本费和小费。

3.Max fee
Max fee等于基本费加小费(max priority fee + base fee),现在的max fee 相当于升级之前的Gas price。我们平时说gas价格,通常指max fee。
4.base fee、Max priority fee、max fee如何确定?通过网上查询即可,下图所示的19就是指那个时段平均max fee是19gwei。

目前可查询的网站很多,可以自行搜索。
以太坊Gas查询网址:
https://etherscan.io/gastracker
bsc\polygon网络查询网址:
https://mycointool.com/GasNow?mode=eth;
含2层网络的Gas查询网址:
https://cointool.app/gasPrice/arb;
……
七、MetaMask实例验算
下面以MetaMask转账为例,验算上述Gas fee的计算方法是否正确。
下图3可以看出,
Gas Limit:21000;
Max fee/Gas price:63.97gwei;
那么,Gas fee就等于两者的乘积,21000*63.974=134 3454gwei;换算成ETH,再除以10的9次方,等于0.0013434ETH;

计算结果对比下图1MetaMask系统给出的估算结果,是符合的。有兴趣的朋友
可以回去动手算一算。

八、为什么需要Gas?
如果用一句话概括解释,“免费的往往是最贵的,收费有时是最优的”。
我老家县城有一条路,以前路边每天都停满了车辆,甚至很多是过夜长期“占坑”的,道路非常拥挤。后来政府画了车位,改收费,增加停车的成本,结果那些车似乎一夜之间就人间蒸发了。
以太坊网络通过设置gas这一规则,增加恶意者向网络发送垃圾邮件等恶意行为的作恶成本,达到防止或者减少作恶的目的。如果做坏事没有成本,就会变相鼓励坏人继续作恶。
同时通过规定最高gas消耗量,以避免一些代码恶意的无限循环,导致资源浪费。当所有的gas消耗殆尽,就停止继续运转,好比汽车的汽油耗尽,车就停下来不走了,这就不至于无效者继续占坑。
九、为什么有时GAS 价格这么高
在以太坊上执行任何操作都是需要消耗gas的,包括计算、存储、转移代币等都需要一定数量的Gas。由于以太坊网络区块空间有限,遇到一些特殊情形,比如上述猴子地拍卖,都抢着买有限的地。为了抢到猴地,只有比竞争对手抢先上链、抢先成交,这就不得不提高Priority fee(小费)。这种大家集体"哄抬价格"的现象,就容易导致Gas价格突然性飙涨。
当遇到这些情况时,最好暂时避开其他操作,此时如果你提交的数据是飙升之前的数据,由于你的Gas价格过低,可能会导致交易被拒绝,在这种情况下,你不仅交易没有完成,还可能会失去所支付的Gas fee。
这就回到开头第一句话,不懂Gas是要吃亏的。谨慎起见,交互时先看看Gas价格,也许可以减少甚至避免这些无谓的损失。
十、如何减少GAS fee开支
首先,交互之前一定查看当前Gas价格,否则运气不好遇到特定高价时段,多花冤枉钱。
其次,如非必要,选择Gas价格较低时段操作。一般下午至傍晚时段Gas价格较低,晚上七点至第二天上午较高。当然,这只是通常情况,遇到一些热门项目,随时都可能居高不下。
第三,可以选择其他二次网络或者侧链,现在以太坊的几乎每个应用,都被重复复制或者迁移、部署在其他侧链、2层网络,如果没有非以太坊不玩的洁癖,可以尝试非以太坊公链,在这些网络Gas价格非常便宜,有些甚至可以忽略不计,比如人气火爆、被称为“乞丐链”的polygon,非常友好,非常适合空投交互,与以贵著称、被称为“贵族链”的以太坊,正好形成鲜明对比。
(本文结束。如果表述错误或者不当之处,欢迎指正)
天丞健:健康使者,传承健康,守护爱。
关注微信公众号“ 天丞健 ”
如若转载,请注明出处:https://www.jiuea.com/16211.html