一文带你轻松搞懂新版Metamask手续费设定机制!

2023-04-27分类:MetaMask 阅读(

本文章将从基础讲起,让你了解该如何有效的去设定新版Metamask的手续费!

前言

在2021年8月5日的晚上8点34分,以太坊区块高度到达12,965,000,这也代表了EIP1559正式上线,而这改动让原本的手续费从单纯设定Gas Price变成需要设定Max Priority fee跟Max fee,那这两者到底差在哪里,到底该如何设定比较好呢?想知道怎么设定,就要知道它的原理是什么,所以我们首先先从手续费的机制开始了解吧!

手续费机制

大家都知道区块链的安全维护都需要矿工的协助,而每个区块都有容量上限,如果在同一时间涌入了大量的交易,矿工会无法即时处理所有交易,所以才出现了手续费Gas Fee的机制,当区块链网路塞车时,矿工会优先选择手续费调的更高的交易,所以大家在送出交易的同时,会附带额外的Gas Fee,一方面是鼓励矿工挖矿,另一个是让区块链的交易变的有规则。

而计算手续费的方式,最常听到也直观的的版本是Gas Limit * Gas Price,也就是将你设置在Metamask的两个数字相乘,假设Gas Limit为21000、Gas Price设置为8gwei,那你将会花费21000*8gwei=21000*0.000000008 Ether = 0.000168 ETH,可以想像Gas Limit是你执行这笔交易所要使用的所有汽油量,Gas Price则是每公升汽油的单价。(1 gwei = 10^-9 ETH)


以前在设定手续费就只要设定Gas Price,而预估的手续费就会是Gas Price * Gas Limit

但是这并不全然正确,最正确的手续费算法其实是Gas Used*Gas Price,Gas Used的高低取决于你程式的复杂度,一般标准的转币为21000Gas,而如果你要进行像是在Uniswap交易或是在Opensea购买NFT的动作,则可能会用到10万~20万Gas,前面提到的Gas Limit意思是你的手续费最大限制,为了防止某些恶意或错误合约,导致Gas超出预期,所以设定了一个最大的限制,只要你实际的Gas低于Limit就会成功执行,而实际用的Gas就会是你的Gas Used * Gas Price。


正常转币的手续费Gas Limit是21000,手续费的算法是Gas Used * Gas Price


实际的手续费并非Gas Limit * Gas Price,而是要看真正交易所使用的Gas Used*Gas Price

Gas Limit通常不需要自行调整,若为了节省手续费而调的太低,很有可能会出现Out Of Gas,那这样不仅你的交易会失败,而你付出的手续费也会浪费掉。

旧版手续费机制造成的问题

以上的方法看似简单又有秩序,但其实有了一些潜在问题,试想一个问题:当目前你要进行一笔交易,去网站查询目前的gas price发现是40gwei,而你为了要加速所以将Gas Price调到了45gwei,如果当时交易的人很多,大家都设定45或是更高的gwei,你的交易将会需要更多的时间才能交易成功,而有些更激进的人更是会设定100、500甚至1000gwei确保自己的交易可以成功,但这些多付的手续费全跑到矿工手上,实际上也不需要付这么多,而部分人士也认为,由于大多数矿工采取「挖提卖」,越多的手续费到矿工手上,就会造成更大的市场抛压。

旧版的手续费显示,数字就是当前的Gas Price,使用者若想要比较快成交,就要调整高一点的数字

EIP1559介绍

EIP1559就是为了解决上述问题才产生出来的,一方面是更换了使用者在设定手续费的机制,另一方面是降低矿工的收益,虽然有很多矿工跳出来抗议,但其实未来升级到ETH2.0是改用POS(Proof Of Stake),所以逐步的降低矿工收益,也是慢慢在推动ETH2.0的升级嘛,总之最后还是决定在伦敦硬分岔时纳入EIP-1559。

其中的一个重大改动,手续费的机制从单纯的Gas Price变成有基本费Base Fee跟额外的小费Tips Fee,在一个区块计算时,大家的基本费都是一样的,而矿工打包的先后顺序则是看大家的额外小费多寡决定,当区块塞车时,Base Fee会随着区块逐渐变高,当区块交易变少时,Base Fee会逐渐减少,而当下的Base Fee可以去Etherscan做查询。

那矿工的收益变少是哪个部分呢?刚刚上面有提到手续费机制有改变,而原先矿工的收益会是当下的固定区块奖励加上那一个区块的总手续费,到了EIP1559之后,矿工的收益就只剩下Tips Fee的部分,其余的Base Fee则会烧掉去限制ETH的总发行量。


新版的gastracker多了Base Fee 跟Priority Fee,而交易介面也更变成要更改两个参数

EIP1559手续费设定

很多人在EIP1559刚上线时非常疑惑,因为原本只要设定一个参数(Gas Price),现在变成要设两个参数(Priority fee & Max fee),但是只要搞懂了,就会发现其实自订手续费并非难事!
第一个Priority fee其实就是前面提到的小费Tips Fee,换句话说你实际会花费的手续费就会是Base Fee+priority fee。
但由于Base Fee不能控制,有些人担心Base Fee太高导致整体手续费花费过高,所以另一个Max Fee就是用来解决此问题,如果Base Fee + Priority Fee大于Max Fee,则这次手续费就是Max Fee的数值,有点抽象吗?让我们来举几个小例子!

(以下例子假设当下的Base Fee为50)
例子1:Priority Fee=2 ;Max Fee=100 => Gas fee=52 (50+2<100 所以取52)
例子2:Priority Fee=10;Max Fee=55 => Gas fee = 55 (50+10>55 所以取55)
例子3:Priority Fee = 100 ;Max Fee = 100 => Gas fee = 100(50+100大于100 所以取100)
例子4:Priority Fee = 100;Max Fee = 70 => (Priority Fee>Max Fee不合理,交易不给送)


Etherscan 新版手续费说明,有一部分的手续费会直接烧掉,剩余部分才当矿工奖励

手续费设定策略1 - 正常交易且当下手续费低

如果你想要正常地进行一笔交易,建议你可以先去Etherscan查询目前Gas Fee,在你按交易的时候,Metamask会自己根据目前的Gas Fee自动调整参数,如果Gas在偏低的数值(50以下甚至20以下),就可以很放心的送出交易,你的交易很快就会上链,非常简单也便宜,如果迟迟没有成交,可以去Etherscan看目前设定的参数跟当下的Gas Fee是如何。

手续费设定策略2 - 正常交易但当下手续费高

如果你想要进行一笔交易,而当下的手续费又很高的话,这时就可以善用Max Fee的策略,直接把Max Fee调低并且送出交易,这样你就可以去做自己的事情,等到手续费逐渐平稳,降到你的Max Fee以下,你就可以用更便宜的手续费去完成交易,并且不用时时刻刻盯着手续费。

举例:小昀在Metamask有一些以太币要转到另一个钱包,但发现现在的手续费Base Fee在120以上,于是他将手续费设定为Max Fee=30,Max Priority Fee=2,接着就去做自己的事情,果然过了几小时后,随着手续费慢慢降低,他的交易就成功了,而手续费也是原本的1/4左右。

使用场景:拿到某NFT的白单而presale有24小时可以mint、网站领取空投、转帐......等等不急迫成交之交易。

手续费设定策略3 - 需要花大量手续费跟别人抢

当有一个NFT很热门,你预期他公售时会接近秒杀,这时为了成功购买到NFT,就要比别人快成交,而要比别人快,你就需要调高手续费(Max Priority Fee),但还是可以藉由Max Fee去调整一个你能够接受的上限,以免花到比自己预期还更高的手续费。

举例:有一个热门NFT即将公售,ABCD四人都非常看好这个项目,而在公售前的手续费Base Fee为30,由于这个NFT有限量需要抢,所以在公售时,四人各设定了不同的参数......
A:Priority Fee=2 ;Max Fees=1000
B:Priority Fee=200 ;Max Fees=1000
C:Priority Fee=500 ;Max Fees=1000
D:Priority Fee=1000 ;Max Fees=1000
结果最后A因为Priority Fee设定的太少,所以交易持续的Pending直到NFT完售后过一大段时间才跳失败,BCD都有成功的抢到,分别用了230、530、1000gwei去购买,D因为不会调整手续费所以两个数值设一样,但这样反而会有浪费gas的可能,这样的例子更可以凸显出EIP1559的优势~

使用场景:抢NFT、在DEX购买很热门的币等等需要急迫交易甚至是抢快的交易

Max Priority Fee跟Max Fee设定一样也是一个做法,就等同于旧版的手续费设定,但整体的手续费可能会花得比正常还多

总结

  1. 你在送出交易时,需要的手续费为Gas Limit * Gas Price,而最后实际会使用的手续费为Gas Used * Gas Price,Gas Used的高低取决于你执行交易的复杂程度。
  2. 旧版手续费会全部当矿工奖励,新版手续费则只有额外付的小费会给矿工,Base Fee会烧掉。
  3. 新版手续费需要设定Max Priority Fee跟Max Fee,前者代表额外多付的小费,后者是代表手续费能接受的最大值,Base Fee则是根据市场变动,不能做设定。
  4. 使用强化版手续费设定,可以先设定好要支付的手续费,在抢mint的时候就不用重新设定,加快成交速度。

Tags: Metamask