链上手续费原来也有讲究?如何科学使用EIP-1559带来的新功能
大家好,我是西西哈哈的哈耶克。对区块链有了解的同学都知道,在链上玩,有的时候要付钱。这个钱就是我们标题里的Gas费。
去年以太坊升级了,修改了Gas费的计费方式,也就是EIP-1559协议。
但因为规则变复杂了,圈里很多的老手,对这个一年前就启用的协议并不太熟悉。
今天带大家一起深入了解一下Gas费计算,以及1559协议到底是如何优化Gas费结构的。在文末,我们也提供了一些Gas费设置对于我们搞钱的帮助。
我们先来看一下日常怎么去查询链上Gas费的数值,
01
我常用的Gas费预估插件
我经常使用Blocknative Gas Fee Estimator这个浏览器插件来监控链上交互的Gas费。
可以在Google Chrome插件商店搜索插件名下载。
打开后,默认的界面是这样子的。
我通常会把右上角的这个开关关掉,习惯使用下面的简约模式。
这样看起来比较方便,图片红框的数字越大,Gas费用就越贵。
像目前20左右的Gas都属于较低的水平,之前链上火爆的时候,达到过2000甚至更高的数值。2000相比于20,做一样的事情多花100倍的手续费。
其实它默认打开的方式就是ETH最新协议的打开方式。再对比下新协议,不难看出多了一些东西。
新协议多了基础费用(左下角),而红框中的费用明显小很多。
事实上,新协议把旧协议的费用进行了拆分。虽然感觉变繁琐了,但这么做使得Gas费的计算更加精确和可控了。
接下来,我们来看看新旧协议的Gas费是如何计算的。
02
区块链中Gas费如何计算
Gas指在链上交互时,为了让合约或交易被矿工正确打包上链,用户消耗的费用。
旧协议计算公式:Gas fee = Gas price × Gas limit
用一个例子来说明Gas:
A地到B地的路程是100 km(Gas limit),油价(Gas Price)是10 $/km,。
那么我们如果坐车从A到B,油钱(Gas fee)就会花费 10 ×100 = 1,000 美元。
Gas price 的数值较小,在实际使用过程中,为了便于计算,使用Gwei作为单位(1ETH = 10^9 Gwei)。
Gas limit则与区块链上操作的复杂程度成正比。
比如同一个合约,不同用户在不同的时间交互,使用的的 Gas limit 几乎没有区别。
对于最简单的链上转账交易来说,不管链上有多么忙碌,Gas limit 固定为21,000。
所以,只要明确了Gas price 和 Gas limit,就能够知道我们为这次交互花了多少eth。
其中Gas price将随着网络的拥堵而发生变化,Gas limit保持不变。
而新协议把Gas price拆分为了两部分:基础费用+矿工交费。
基础费用直接链上燃烧(就是销毁),另一部分才付给矿工,叫优先费用。
03
新协议的优点
1 | 可以预估的成本 |
新协议将基础费用波动设置了最高浮动振幅:12.5%。
即如果本次区块填充满了,下一个区块的基础费用将只能上浮12.5%,而不是像之前无任何限制。
之前科学家去冲热门项目时,往往给的Gas都是随缘拍脑袋想出来的。
因为矿工根据Gas高低排名进行打包,而旧协议下无法预估多高的Gas可以立刻排进打包池。
但新协议下就不一样了,现在点开小狐狸看交互细节,能看到每笔都有一个基础费用和优先费用。
新协议规定了基础费用每个区块最多上涨12.5%,因此实际交互的基础费用最大值理论上等于当前区块的基础费用乘以1.125的2次方。
之所以乘2次1.125,是因为理论上获取到的基础费用信息是已完成区块的,当前有个正在打包的区块,而交互的区块是已完成区块之后的第2个区块。
只是由于出块速度和网络延迟,实际交互中,我们对Gas fee的估计并不能只按照2次方来算,要留有更大的余地。
但如果留的余地太多,会不会多花冤枉钱呢?
答案是大概率不会,因为新协议很贴心地推出了Max fee(最大可接受费用)。
2 | 更精细的成本控制 |
Max fee指用户可以接受的最大交互费用。他的特点是如果交互成功,没有花出去的gas会自动退回。
先看看新协议下插件是如何预估Max fee的。
插件官网称他们保守地后推了6个区块,但通过观察,实际应该后推了4个区块。
基础费用是18.63,连续乘以4次1.125等于29.84,再加上优先费用0.38,是30.22,和页面显示31非常接近。
如果基础费用连续涨第3次时用户成功交互,那么实际花费等于 18.63×1.125^3 +0.38 = 26.91 Gwei。
Max fee - 实际花费的费用就是退回的费用。
退费= 31 - 26.91 = 4.09 Gwei。
04
新协议对实操的帮助
1 | 带来新的玩法 |
埋单一般指中心化交易所里提前挂好低价单,等待成交的做法。区块链上也可以近似完成这样的交互。
以XEN项目为例,交互只需要花Gas,而Gas多少取决于链上的拥堵。
通过下图我们发现链上拥堵程度是有明显的时间特征的,凌晨较低。
一天内Gas最高相差约5倍
当基础费用很高的时候,想拉低成本,以往的做法就只能等链上费用降下来再交互。
但出了新协议之后,我们可以设置一个较低的基础费用,较高的优先费用。
较低的基础费用,会导致一直pending状态,直到基础费用降下来,而较高的优先费用将会吸引矿工打包上链。
这样直接提交,睡一觉起来就会发现已经完成交互了。
2 | 更明确的目的 |
科学家抢跑项目去批量交互时,Gas的预估是很重要的,估计越精确,就能保证越高的效率。
在新协议下可以设置三个参数:
Gas limit(燃料限制)、priority fee(优先费用)、Max fee(最高收费)。
对于热门项目,我们不妨直接将优先费用给的高高的。
总之,理解了新协议之后,对于Gas的估算和使用,都有助于我们在区块链上花最少的钱,做最多的事。每一分都花在刀刃上。
05
科学家船队介绍
文章最后,我想介绍一下我们自己的科学家船队,这门课程有别于我们的区块链基础知识课程,更加注重实操。
我会带大家去看一些热门的项目,热点。
也会更多的带大家去找链上的机会,比如套利等。
目前船队已进行了超过20场直播,内容都是干货满满,欢迎感兴趣的同学报名参与。
往期文章推荐
XEN价格下跌90%后再跌90%,参与天数不能无脑写1,链上大数据告诉你填多少合适。
我咋想不到?利用FTX免费提现福利,白薅80个ETH的gas费冲XEN空投