Gas 费是一种付给矿工的手续费,在区块链的运作中,每笔交易都需要处理与验证,这部分工作由矿工负责,而Gas 就是他们处理与验证交易的报酬。
也可以想像成是区块链的过路费,缴过路费,矿工才愿意让这笔交易上链,没缴过路费或缴不够多,这笔交易就上不了链。
什么是Gas 费?为什么要付Gas 费?
一开始是指以太坊链上的手续费,以太坊把链上的矿工手续费称之为Gas Fee,但后来也慢慢变成一种泛称,泛指在链上处理交易时需要付给矿工或节点的手续费。
还记得区块链的三大特性吗?去中心化、公开透明、不可窜改,每一笔在区块链上的交易都需要经过处理和验证,并打包成区块上链,一旦上链后就不可窜改,其中的每笔交易都公开透明,这靠的就是众多矿工一起付出努力,处理、验证与打包每笔交易。
矿工为区块链付出了这么多,能获得的报酬有两种,一种是交易手续费,另一种是区块奖励,后者就是俗称的挖矿。
天下没有白吃的午餐,当我们在链上发起交易,需要矿工处理,就得付Gas 费给矿工,不只是要付而已,还得付的够多!付的够多,矿工才愿意优先处理这笔交易,付的不够多,矿工会把这笔交易先放着,等之后有空再来处理,如果付太少,矿工甚至不想处理这笔交易,那么在交易拥塞时,你发出的交易就会需要等比较久才会完成。
Gas 的费用结构是什么?
Gas Fee = Gas Price x Gas Limit
Gas 费= Gas 价格x Gas 单位
最常用来解释Gas 费用结构的举例就是汽油,开车的时候会消耗汽油,例如开一百公里会耗掉7 公升的汽油,路程愈远消耗愈多,路程很短就只消耗一点点,这就像是Gas Limit,要完成一笔交易需要消耗几单位的Gas,很简单的交易需要比较少的Gad Limit,愈复杂的交易则消耗愈多单位。
而每公升汽油价格多少钱,这是Gas Price,跟消耗单位数量无关,而是你愿意为每单位消耗出多少钱。
每单位的Gas 价格x 消耗的Gas 单位数= 实际付出的Gas 费。
如果给的单位数(Gas Limit) 不够,就像汽油不够,车开到半路没油,交易做到一半停住,无法完成,但花掉的还是花掉了。如果给的单位数很多,就像汽油加太多,车开到终点还没用完,多的汽油并不会消耗掉,还是在油箱里,多给的Gas Limit 不会消耗掉,还是在钱包里。
如果给的单位价格太低,就像出价太低,没人想处理这笔交易,只能等,等到有人愿意接。如果给的单位价格很高,就像出价很高,大家会争抢这笔交易,抢着处理。
一般说来,发起一笔交易时,系统会根据情况预先计算所需的Gas Limit,这边就算多给也没关系,没用完的就不会花到。单位主要是确保交易能确实执行完毕,至于价格则是用来确认有矿工愿意处理这笔交易,出价愈高,愈优先处理。
偶尔也会有这样付出大量手续费的情形出现,通常出现于抢购热门的NFT 等情境,NFT 本体只卖一颗以太币,但为了抢快,这位买主付出了超过22 颗以太币的手续费,这时候便是矿工开心收取手续费的时候。
Metamask 钱包手动设定Gas 教学
在小狐狸Metamask 钱包中有手动设定Gas 的功能,但预设是关闭的,需要先到设定里打开。
按下右上角的帐户,找到设定。
找到进阶。
接着往下滑,把「显示进阶gas 控制选项」的功能打开。
如果在预设状态,显示进阶gas 控制选项并没有打开,发起交易的时候会看到像下图这样,但没有编辑可以按:
发起交易时,会根据预设以及该协议的建议,显示一个预估的Gas 费,如果有开启进阶控制项功能,就可以按下编辑做进一步的设定。
通常Gas Fee 的单位会是该链的原生币,例如以太链上的Gas 用以太币计算,币安链(BSC) 上的Gas 用BNB 计算,其他链的Gas 费也是收取各自不同的币种。
Gas 上限指的就是Gas Limit,单位数。这部分设定高或低主要影响交易能不能确实被执行完成,就算设定过高,多的也不会被消耗掉,通常来说依据系统预设的就应该足够。
下方的Gas Price 才是影响矿工愿不愿意优先处理这笔交易的关键,如果想要更快速完成交易,需要调高的是Gas Price。
GWEI 是Gas Price 的价格单位,十亿分之一,一GWEI = 十亿分之一颗以太币(0.000000001)。
Gas 一开始是以太坊上才有的名词,专指以太坊上的矿工手续费,以太链上的手续费用以太币计算,后来许多公链也参考这样的模式。
Metamask 钱包基本上支援所有EVM 公链,如果在另外一条公链上,假设是Astar 链,这条公链上的原生币是Astr,Gas 就会用Astr 来计算,那每个GWEI 就会等于十亿分之一的Astr,依此类推到其他EVM 公链。
Gas 给太低交易很慢怎么办?提高手续费加速交易
在Metamask 钱包中可以看到交易纪录,正在处理中的交易会像图中这样显示等待处理,如果等太久可以按下加速提高手续费。
按下加速后会跳出这样的画面,按下右上蓝色10% increase 按钮即可做进一步的Gas 费设定。
加速也没反应,交易完全卡住怎么办?使用「自订交易nonce」功能
这是较为进阶的功能,需要更熟悉区块链的运作以及钱包操作。
也是在Metamask 设定功能的进阶选项中,打开这个自订交易nonce 的功能。
在以太坊上的每一笔交易都会有个nonce 值,用来计算这个地址发起的交易数量,数字由小到大,可以把它视为这个地址发起过的交易顺序。
矿工处理交易的原则是按照顺序处理,于是如果上一笔交易卡住,后面发起的交易也无法处理,必须等到那笔卡住的交易解决后,矿工才会按照顺序往下处理新交易。
当交易卡住时,通常是因为Gas 费设定太低,或是链上交易壅塞,这时候如果想要发起新交易,就得把卡住的那笔交易给取消掉,但它卡住了,连要送出取消的指令有时候都做不到。
这时候的作法是用一笔新交易覆盖掉旧交易,透过自订nonce 来覆盖掉卡住的那笔交易。
首先找到卡住的那笔交易的nonce 值:
到交易纪录中找到卡住的那笔交易,直接按下去就会显示出详细资料。
接着就可以在详细资料中找到nonce 的值。
接着发起一笔新交易,或是重新发起交易,然后在交易确认的介面中自订nonce 值:
交易确认的页面中,中间是设定Gas 的部分,下方就是交易nonce,可以在这边填入想要覆盖掉的那笔交易的值,就可以用这次的新交易覆盖掉那笔旧交易。
这个功能不只是用在Gas 费给太低,无论任何理由导致交易卡住时,因为矿工就是按照顺序处理,都会导致后面无法再发起新交易,这时候可以透过这功能来覆盖掉卡住的交易,让钱包恢复正常使用。
但切记发起的新交易Gas 费要给足,不然也许又成为下一笔卡住的交易。
小提醒:nonce 值不要乱设,矿工会检查nonce 值来判断这是不是合理的交易,如果被察觉不合理,交易会被拒绝或放置不处理。
监看链上即时Gas 费的网站
链上当下交易过于热络时,Gas 费就会升高,交易比较平静时,Gas 费会比较正常,分享两个可以监看目前链上即时Gas 状况的网站:
https://etherscan.io/gastracker
可以看到目前以太链上的Gas 费状态,显示的是三种价格,慢速/ 平均/ 高速交易之下应该要出的Gas Price。
https://www.blocknative.com/gas-estimator
不只以太坊,也可以看到Polygon 链上的状态。
本文链接地址:https://www.wwsww.cn/qianbao/19496.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。