重点理解:一个链用的人越多,发送交易就越贵。
在Eherscan上,可以看到:总费用=(区块基础费+最大优先费)*Gas使用数量
区块基础费:Base Fee,最大优先费:Priority Fee.
在MetaMask中,我们可以设置Gas limit。
Gas Price是如何计算的?
根据EIP-1559协议,现在在以太坊上,每一笔交易都有Base fee,这是能够设置的最低的Gas fee,它是以Gwei计价的;这里的Max fee是指我们最多愿意为这个交易付多少Gas fee,从数值上看maxFee >= baseFee + maxPriorityFee;这里的Max Priority fee是指由用户设置的每笔交易最大可支付的优先交易费用(Priority fee:小费)
实际交易中
basefee不用设置(钱包也不管),是以太坊通过算法,自动根据上一个block的大小和上一个basefee计算出来的。
为了让用户更好地控制自己的钱,实际交易中,设置的是maxfee(愿意给出的最大gasprice)和maxpriorityfee(愿意给出的最大Tip)。
maxfee必须要大于basefee,然后,矿工会按如下的算法收取小费:
Tip = min(maxpriorityfee,maxfee-basefee)
如果maxfee > basefee + Tip,多余的费用就会被矿工退回交易发送者。
maxFee 和 maxPriorityFee 都支持用户自行设置,baseFee 则由算法根据上一个区块的利用率自动给出
Gas Price = basefee + maxpriorityfee。
矿工到底拿到了多少钱?
目前在以太坊上,这个Base fee会被烧掉,Burnt可以看出有多少被烧掉了(Base fee×Gas的使用数量就是这里Burnt的数值)。
这意味着,每次你转账的时候,一部分以太币会永远不再流通,因为被烧掉了。
现在在以太坊上,你交易手续费的一部分被烧掉了,另一部分直接给了矿工,交易手续费不完全由矿工收取。(也就是说这个交易当中付给矿工的以太币数量=Transaction Fee-Burnt)用户先给钱,以太坊再烧,烧完再给矿工
也就是说基础费用在交易完后被烧掉了,矿工只拿到了小费。
Txn Tyep:EIP-1559:代表这个交易的版本是EIP-1559
Base Fee是怎么被算法调节的?
baseFee 会根据上一区块的空间利用率自动调整,如果利用率超过 50%,则提升当前区块的 baseFee;反之降低。
按照 baseFee 计算公式,相邻区块间的 baseFee 变化幅度在 ±12.5% 之间:
- 如果上一区块空间利用率为 100%,则当前区块 baseFee 将自动提升 12.5%
- 如果上一区块空间利用率为 0%,则当前区块 baseFee 将自动降低 12.5%
总结
每个区块链都有不同的手续费燃烧和Gas机制设置,它们都不尽相同,但总结起来。在区块链中,区块能存储交易的空间有限,为了让你的交易被写在某个区块中,你需要支付手续费,这个手续费会根据需求变化,以太坊的Base Gas费用会上下调节,调节依据是有多少人正在发送交易(想把交易写入这个区块中),如果有很多人想将交易写入区块,那就有大量的Gas被烧掉。
总的来说,以太坊的这个交易费=(基础汽油单价+汽油单价小费)*汽油的升数。
Base Fee是基础汽油单价,Max Priorivy是汽油单价小费,这俩加起来算出来的才是Gas Price(每个汽油的的单位价格)
然后再乘以Usage by Txn(实际上在交易当中使用的Gas数量也就是汽油升数),这样算出来的才叫做交易费。
注意一点:上面说的maxfee、basefee、Tip,都是针对per gas的,计算真正费用的时候,还需要乘上gas数。
你在不同场合看到的这些符号,有些是带per gas的,有些不带,注意要区分一下,一般指的都是带per gas的。
VX:JLZ-up
智能合约开发者/Web3从业者社群