编者按:本文来自 知矿大学(ID:gh_37c9e0eaf00a),Odaily星球日报经授权转载。
以太坊钱包可能是大家使用最频繁的加密货币钱包了,尤其是前段时间的 DeFi 流动性挖矿热潮,让很多之前从来不使用钱包的用户也纷纷把币提到自己的钱包里去提供流动性。
现在,流动性挖矿的热潮已经褪去,以太坊网络的 Gas 平均价格也从之前的最高点 709 Gwei 回归到目前的 50 G wei,但在 BTC 的带动下,ETH 的价格仍在不断挑战年内新高。ETH 价格涨了,从法币本位的角度看,转账所需的矿工费又变贵了。
你知道你的某个钱包地址一共花出去了多少 ETH 矿工费吗?
以下这个网址可以帮你查询:
比如,要查询「0xD58189F5E858A6F67319E33Fa1107eb7e679989f」这个地址一共花出去了多少矿工费,可以按照下面的格式,直接将这个「地址」加到上面的网址中进行查询:
https://fees.wtf/?address=0xD58189F5E858A6F67319E33Fa1107eb7e679989f
通过查询我们可以得知,这个钱包地址一共花出去了 0.484 ETH 的矿工费,按照现在的价格计算,价值 $213.92,也算是一笔不小的开支了。
那么,问题来了,以太坊转账如何设置矿工费更省钱呢?
在回答这个问题之前,我们先来了解以太坊网络中的三个概念:Gas,Gas Price,Gas Limit。
以太坊本身就是一个去中心化的虚拟机,联合起来就相当于世界级的计算机网络。在以太坊网络上,每一次的运算、每个字节的存储、链上的任何操作(钱包转账、调用合约、写入数据等等),都需要全网的计算机共同去参与。
天下没有免费的午餐,上述的这些操作都需要消耗相应的网络资源,因此必须支付相应的费用给矿工。在以太坊网络中,这个费用称之为「Gas 费用(燃料费)」,更通俗的叫法是「矿工费」、「手续费」。这里需要注意的是,Gas 不是一种新的代币,而是一种计量单位。
上述所提到的那些操作,每个运算步骤需要消耗多少 Gas,以太坊系统里都是事先规定好的。比如,执行一次 Copy(复制)操作需要消耗 3 Gas,执行一次 SHA3 哈希需要消耗 30 Gas。普通的转账,以太坊系统规定的是需要消耗 21000 Gas。
图:https://github.com/ethereum/go-ethereum/blob/master/params/protocol_params.go
Gas Price 指的是,你愿意为消耗的每单位 Gas 支付多少的单价。Gas Price 的单位通常用 Gwei 表示,1 Gwei = 0.000000001 ETH。
Gas Limit 指的是,你愿意为这笔操作支付的 Gas 数量上限。默认情况下,Gas Limit 是 21000 Gas。一般情况下,我们也不需要调整 Gas Limit 的数值,但涉及到复杂一些的操作,比如在以太坊区块链上“刻字”,就要调整 Gas Limit 上限了,否则活还没干完就已经消耗完了 Gas 数量。
图:知矿大学“爱在七夕,链上有你”活动中,某个上链内容实际消耗的 Gas 数量为 22632 Gas,所以 Gas Limit 在事先调整到了 42000 Gas。
那以太坊系统为什么要设置 Gas Limit 这个参数呢?一方面,是为了防止某些有 Bug 的程序陷入死循环(消耗完 Gas 数量后就自动停止了),另外一方面是为了防止某笔操作耗尽账户上的所有 ETH。
明白了这三个概念,我们再来看下以太坊的矿工费计算公式:
矿工费 = 实际消耗的 Gas 数量 * Gas Price
其中,「实际消耗的 Gas 数量」小于或等于 Gas Limit,这点很容易理解。
上文提到过,每个运算步骤需要消耗多少 Gas,以太坊系统里都有所规定,所以「实际消耗的 Gas 数量」我们无法调整,我们能调整的是「Gas Price」。
以太坊矿工和比特币矿工一样,都是趋利的,谁给的 Gas Price 高,就优先给谁打包确认。因此,遇到特别紧急、需要马上确认的情况,我们需要给更高的 Gas Price,从而让矿工第一时间给我们打包确认;而在不紧急的情况下,我们则可以把 Gas Price 调低一些,以节省不必要的矿工费开支。
现在,很多钱包都很“智能”,通过对当前网络拥堵情况的分析,告诉你 Gas Price 的推荐值。当然,你也可以自己手动调整 Gas Price,钱包会告诉你调整后预计需要多久才能被矿工打包。
除了钱包推荐的 Gas Price 数值,还可以参考 Gas Now 这个网址给出的数值:
如上图,截图的这一刻,如果想在 15 秒内(即下一个区块)被矿工确认,可以将 Gas Price 设置为 32 Gwei,如果不着急,可以选择“缓慢”模式,设置为 16 Gwei。通常情况下,选择“一般”模式推荐的矿工费即可。
Gas Now 是当前最大的以太坊矿池——星火矿池,根据矿池节点交易池中实时交易的 Gas Price 分布给出的推荐值,其数据更具实时性、准确性,更有参考价值。近期,imToken、麦子钱包、MYKEY、TokenPocket、Trust Wallet 等钱包已经宣布使用 Gas Now 的服务。
最后,我们总结一下今天的内容:
1、以太坊转账的矿工费由「实际消耗的 Gas 数量」与「Gas Price」的乘积所得,前者是系统事先规定好的,后者我们可以自己调整从而减少不必要的矿工费开支。
2、调整「Gas Price」时,可以参考钱包给的推荐值,也可以参考实时性、准确性更强的 Gas Now 网址。
3、另外,如果涉及更加复杂的操作,还需要调整 Gas Limit 的数值,以防止活还没干完就把 Gas 消耗完了的情况出现。