您的位置  > 币圈知识

ETH以太坊中的Gas究竟是什么?

广告 X
OK欧意app

欧意最新版本

欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。

APP下载  官网地址

Gas翻译为中文是燃料/汽油的意思。在以太坊(或其他网络),为了执行特定的操作(比如发送代币、存储、兑换代币)需要消耗一定的燃料,这个燃料我们称之为Gas。这就好比汽车要跑,就需要消耗汽油。在以太坊,要进行各种交互,就需要消耗Gas。举个例子:

假设开车从A地到B地需要消耗10升汽油,每升的价格8元,那么,从A到B需要消耗的汽油费用:10*8=80(元)。

同样,在以太坊网络,假设执行发送代币这个操作,需要消耗Gas的数量是21000个单位,每个单位Gas价格是100gwei。则执行这笔操需要支付的费用:21000*100=2100000gwei。

为什么需要Gas

我们都知道,在web2当中最重要的一个策略就是免费,来吸引流量实现变现。那么web3中的以太坊为什么不这么做呢?

收取gas费除了打赏奖励矿工等激励性质的作用之外,另一个作用就是防止恶意的攻击,假设没有gas费的设置,攻击者就可以发布无数死循环的合约,然后不断通过发送交易让节点运行,劫持全网的大量算力使得系统瘫痪。通过规定gas消耗量,以避免一些代码恶意的无限循环,导致资源浪费。当所有的gas消耗殆尽,就停止继续运转,好比汽车的汽油耗尽,车就停下来不走了,这就不至于无效者继续占坑。

Gas Limit

什么是Gas Limit

在开头例子中,要计算从A地跑到B地汽油花了多少钱,除了要知道汽油价格(多少钱1升),还需要知道消耗的汽油量(用了多少升)。

同样,在以太坊网络,要计算某笔操作的成本(手续费),除了要知道Gas的价格,还要知道消耗的Gas的数量。

Gas数量要消耗多少,由合约创建者设定,不同合约、不同类型的操作,消耗的gas数量不尽相同,操作越复杂需要消耗的gas越多,所以很难预先估计Ga的消耗量,为此采取的办法是,给定一个比实际消耗更高的限值,即Gas Limit,如果实际未消耗这么多,剩余部分将退回用户。

在计算消耗的Gas数量时,钱包提供商比如metamask往往直接给出Gas Limit,如果实际消耗小于Gas Limit,剩余的返还。如果实际消耗超过Gas Limit,交易无法完成。

假设一笔以太坊网络转账需要消耗的Gas数量为21000,Gas Limit设置为50000,而实际只消耗21000,那么剩下的29000将自动返还。但如果实际消耗需要51000,而你只设置为50000,那么这笔交易将不会完成,消耗的50000也不会退回。

所以,如果试图通过减小Gas Limit数值达到减少手续费的目的,可能会适得其反。不仅交易可能不成功,手续费照样扣。

Gas Limit如何确定?

Gas Limit的数值一般是钱包提供商默认自动给出的,通常不需要我们手动修改或者调整。

Gas price

什么是Gas price

Gas price,是指 Gas 的价格/单价,通常用Gwei来表示。

Gas price如何确定

在2021年8月5日伦敦升级实施后,Gas price变成包含两部分的费用:基本费(base fee)和小费(Max priority fee)。

「1.Base fee」

即基本费。每个区块都有一个作为底价的基本费,为了有资格被包含在一个区块中,Gas价格必须大于等于基本费。基本费用的确定方法,这里不展开,反正用户自己修改不了,由以太坊本身决定。

「2.Max priority fee」

即小费的意思。在滴滴打车的时候,遇到高峰时段,如果加10元、20元小费,可能你会优先叫到车。在以太坊网络Gas费的设计机制中,同样适用这个道理。你给小费,就可能优先成交。这里需要注意,基本费是根据网络拥堵情况实时变动的,可以通过网站查询基本费,而小费可以自己调整,一般调高不调低。

「3.Max fee」

即每单位Gas的最高费用。最高费用是你愿意为每单位Gas支付的绝对最高金额,以使你的交易得到确认。在大多数情况下,你的实际交易费用将低于你预先指定的最高费用,你交易的最低Gas价格是当前的基本费用。然而,如果在你交易尚未完成时,基准费用增加了呢?那么,你的交易就有可能被卡住,或失败或被放弃。因此,为了在EIP-1559下实现可预测的交易结算,目前认为最好的做法是设置一个预期基本费用增加的最高费用。

上图是真实的交易费用。

热门文章