以太坊 Gas 费介绍和如何节省手续费

摘要

以太坊的 Gas 费是以太坊网络的动力,就像汽油是汽车的动力一样。我们普通用户参与到区块链中,无论是交易 Token,还是使用区块链上的去中心化应用程序(编写成智能合约),Gas 费都是一道绕不过去的坎。所以我们值得花点时间去了解一下以太坊的 Gas 费是什么,为什么要有 Gas 费,如何操作能够节省 Gas 费。

什么是 Gas

Gas 是指在以太坊网络上执行特定操作所需的计算工作量。

由于每笔以太坊交易都需要计算资源才能执行,每笔交易都需要付费。 在这个方面上,Gas 是指在以太坊成功进行交易所需的费用。

Gas 费用是以太坊的货币 ETH 支付的,单位是 Gwei,1 Gwei = 0.000000001 ETH = 10 的 -9 次方 ETH

Gas Price: 用户愿意为每个 Gas 支付的价格,是由用户自己竞价。

Gas Used: 是用户执行操作消耗的 Gas 总量,是固定数额,ETH 转账为 21000,其他 ERC20 代币因为是智能合约,一般比 21000 贵,具体由智能合约代码复杂度决定。我们可以通过网站 etherchain.org/tools/gasnow 看到常见的 Tokens 交易的 Gas Used。

image-20220217171141132.png

正如你开汽车需要汽油,运行应用程序(交易 ETH、部署合约)需要 Gas。

消耗 Gas 的量是固定,但是 Gas 的单价是波动的。比如说汽车要跑 20KM 需要 1 升汽油,但是加油站汽油多的时候,1 升汽油的价格是 10 美金,但是加油站汽油不足的时候,1 升汽油的价格可能是 100美金。对应到以太坊网络,网络不拥堵的时候,Gas fee 会比较低;网络拥堵的时候,Gas fee 可能会非常的高。

为什么要有 Gas

以太坊就像手机的安卓系统,你在上面给别人发信息(转账)、拍照存储照片(存储)、安装软件(部署智能合约),都需要花费一定的费用(Gas 费)。

我们都知道,免费容易导致泛滥和不规范,收费的社区和不收费的社区,质量和服务是完全不一样的。Gas 的存在,可以保护以太坊网络的安全,假如说没有 Gas 费,大家都可以去上面交易和执行计算,就会产生垃圾信息和浪费资源。有 Gas 费,作恶的成本就会上升,理性的情况下,没有人愿意花钱干一件对自己没有任何意义的事情。

以太坊是去中心化的网络,需要保证网络的安全和运行,还要保证有人去记录交易,那大家为什么愿意去干这个事情呢?这就是矿工做的事情,矿工挖矿得到记账权,会得到系统自动发的 ETH 的奖励,同时每笔交易都有一个手续费(Gas 费)。有记账权矿工的收益 = 挖矿得到的 ETH + 记账手续费(Gas 费)。

BTC 的总量是固定的,为 2100 万枚。但是 ETH 没有固定上限,那怎么保证它的数量不会太多而发生贬值呢?这也是 Gas 的一个功能,Gas 是使用 ETH 来付费的,手续费中的 Base 部分,会被销毁(所谓的销毁,就是把币转到一个黑洞地址,谁都没有私钥,这部分币会永远退出流动性,不能进行交易)。这样就保证了流通中的 ETH 不会只增无减。

稍微总结一下:Gas 费能够激励人们去维护以太坊网络的安全,防止产生过多的垃圾信息;同时交易有 Gas 费,大家都争着去记账;Gas 费中的大部分会被销毁,以维持流通中 ETH 的数量不会过高。

如何操作能够节省 Gas 费

我们看公式就会发现,右边部分 Gas Used 是相对固定的,我们无法改变。我们能够操作的是 Gas Price,而 Gas Price 是波动的,每分钟的价格都不一样。下面是 Gas Price 在 2022-02-10 至 2022-02-17 的每天每个小时的价格。

image-20220217174441982.png

因此,我们可以通过看实时的 Gas Price 价格,当 Gas Price 价格偏低的时候,我们再去交易,就可以节省一大笔费用。下面是几个常见的、查看以太坊 Gas 费的网站:

  • https://etherscan.io/
  • https://etherscan.io/gastracker#historicaldata
  • https://etherchain.org/tools/gasnow
  • https://ethgas.watch/
  • https://www.blocknative.com/gas-estimator#

Chrome 浏览器也有一个插件 Blocknative,能够实时看到 Gas 的价格。

image-20220217180311139.png

EIP-1559 协议之前,以太坊的 Gas 费就像拍卖模型,出价高者先交易。什么意思呢?比如说我和你去加油站加油,你出价 10 美元/升汽油,我出价 8 美元/升汽油,工作人员就会优先给你加油,如果人数多的话,就优先给出价高的人加油。这样就容易导致一个问题:矿工可能会人为制造网络拥堵,让大家支付更高的手续费。

EIP-1559 协议之后,Gas 费 = (基础费 + 矿工小费)* Gas Price,其中基础费会被销毁掉,Gas Price 会随着网络拥堵情况,升高或者降低。

比如上图中的 Gas Price 为 48 Gwei,如果你的交易不紧急的话,你可以把交易的 Gas Price 设置为 30 Gwei;如果你的交易是很紧急的话,可以设置为 60 Gwei,则可以更快地交易成功。

如何看 Ethereum 的交易记录

如下图中的一笔交易为例,重点说一下圈出来的部分。

image-20220217183044046.png
  • Transaction Fee: 该交易需要的手续费,Transaction Fee = Gas Price * Gas Used,对应上面的数据就是:Transaction Fee = 82.768620951 * 46458 = 3845264.592141558 Gwei = 0.003845264592141558 ETH

  • Gas Price:该价格随时波动,Gas Price = Base + Max Priority,当前为:82.768620951 Gwei。

  • Ether Price:ETH 当前的价格为 $4,042.55

  • Gas Limit & Usage by Txn:Gas Limit 相对固定,为了防止部分智能合约存在漏洞,消耗完自己的代币。Gsage by Txn 取决于每个智能合约的复杂度,如果 Gas Limit < Gas Used,则会收取 Gas 费但是操作会失败。下图是常见的 Tokens 的 Gas Used:


    image-20220217171141132.png

如果 Gas limit < Gas Used,交易会失败,但是因为矿工已经去计算了,所以 Gas 费花了,但是没有执行成功。无论交易成功与否,你都要为此支付“燃料费”,这是因为即使交易失败,矿工依旧为此交易进行校验和计算,消耗了资源。为了避免合约中的错误,引起不可预计的燃料消耗,用户需要在发送交易时,设定允许消耗的燃料上限,即 Gas limit。这样的话不管合约是否良好,最坏情况也只是消耗 Gas limit 限制的燃料。就像开车到目的需要 10 升油,你只加了 8 升,你往目的地开车,到不了目的地,但是你的油也要耗费了。

  • Gas Fees:Base 是基础费,Max 是最高费,Max Priority 是给矿工的小费。Gas Price = Base + Max Priority。当 Max > Base + Max Priority 时,剩余部分返还给用户;当 Max < Base + Max Priority 时,不交易,等待 Base 下降(也就是手续费下降),直到 Max >= Base + Max Priority 才打包交易。这样可以为用户节约手续费,如表:

    用户 Max Base Max Priority Gas fees
    A 50Gwei 20 2 22 先于B执行
    B 50Gwei 30 1 31 A 执行后执行
    C 50Gwei 60 1 61 等待 Base 下降

    虽然用户 A 花费的手续费比用户 B 更低,但是矿工会优先执行用户 A 的交易,这样对用户就更加的节省手续费。

  • Burnt & Txn Savings Fees:燃烧掉的 Gas,Burnt = Gas Base * Gas Used;Txn Savings Fees 是交易剩下的 Gas,退还给用户。Txn Savings Fees = (Gas Max - Gas Base - Gas Max Priority) * Gas Used。

附加

EIP-1559 协议:没有 EIP-1559 协议之前,以太坊存在以下问题:

  • 以太坊的 Gas 费就像拍卖模型,出价高者先交易,且没办法预测到出价多少合适。所有的交易手续费都会给到矿工,所以矿工有动机认为制造网络拥堵,赚取更高的手续费。Gas fee = Base * Gas Price,所有的手续费都是矿工所有。
  • ETH 没有发行上限,容易导致币价贬值和信任问题,ETH 只增不减。

EIP-1559 协议后,Gas fee = (Base + Priority) * Gas Price,也就是基础费用+矿工小费。其中 Base 部分根据网络拥堵情况,按 12.5% 幅度增减,且全部销毁。

这样就解决了上面的两个问题:费用可预测,矿工没有动机去人为制造网络拥堵,短期看矿工收益受到影响,长期看因为网络更加稳定、交易量的增加和币价的升值,收益更可观;销毁 ETH 解决了通胀的问题。

简单说就是,EIP-1559 协议给 ETH 加入了烧毁机制,且让网络拥堵情况更加透明、可预测,优化以太坊网络。

你可能感兴趣的:(以太坊 Gas 费介绍和如何节省手续费)