【钱包科普】什么是Gas?一文了解以太坊交易费
随着DeFi的持续火爆,之前持币观望的小伙伴都在财富效应的召唤下开始入坑。然而“隔行如隔山”,大部分向来只专注于炒币的朋友在初入DeFi就遭遇各种问题:怎么充钱?手续费怎么设置?如何加速交易?
我们在《【钱包科普】不知道怎么参与DeFi?WalletConnect了解一下》中已经为大家解决怎么充钱的问题,今天为大家讲一讲以太坊手续费以及手续费该怎么设置。
Gas
首先要明确一个问题,为什么需要支付手续费。
如果把以太坊看作一台世界计算机,当我们在以太坊链上发起转账或者调用智能合约时,都需要消耗这台“计算机”的资源。而我们支付的手续费,实际上是在为执行某项操作所消耗的资源买单。
以太坊链上手续费称为Gas,中文直译大概是“汽油、燃料”,尽管我们不会用中文称呼它,但这个翻译可以直观地帮助我们理解Gas消耗逻辑。
假设张三开车从A地到B地需要消耗数量a的汽油,如果他直接从A地开到比B地更远的C地,那就需要消耗比数量a更多的汽油。显然,路程越远,油耗越高。
同样的道理,假设张三在以太坊上执行一次简单操作消耗数量a的Gas费,如果他想执行一个更复杂的操作,需要占用以太坊更多的资源,那必然需要消耗比数量a更多的Gas费。即操作越复杂,Gas消耗越多。
GasPrice 和 GasLimit
理解了Gas是什么东西后,我们可以谈谈Gas的定价问题。
在Gas的实际使用中有两个概念:GasPrice和GasLimit。
GasPrice指的是用户愿意为每单位Gas支付的价格,GasLimit指的是用户愿意为执行这笔交易支付Gas的最大数量。
如果沿用汽车油耗的例子,那么GasPrice就是每升油的油价,GasLimit则是我们为了这趟旅程愿意使用的油耗上限。
但实际上,这个例子并不是非常准确。
在现实世界中,油价并不是我们能决定的,只受国际形势及“两桶油”的控制。而且高价油不会让车速变快,低价油也不会让车速变慢。
此外,燃油的例子忽略了以太坊交易中一个重要的角色——矿工。正如前面所说,我们支付以太坊手续费实际上是在为我们消耗的网络资源买单,而网络资源的消耗是通过矿工这个角色来实现的。
如果我们把发送一笔交易看作是把一份快递从A地寄到B地,可能能够更好地理解GasPrice。
众所周知,快递的寄送需要通过快递员实现。当我们寄出一份快递时,快递员(或者说快递公司)会按照我们寄件的距离、快递重量收取费用。
收费之后,快递员会给我们一个预计送达时间。不同的快递公司预计送达时间是不同的,一般来说,顺丰最快、“四通一达”次之、平邮最慢,而这三类快递公司收费标准和它们的送件速度是成反比的。
如果我们想尽快送达,那就选择顺丰;如果我们想省钱,那就选择平邮;如果我们既想省钱又不想太晚送达,那就选择“四通一达”。
同样的道理,在以太坊网络中,矿工扮演“快递员”的角色,根据我们发起交易的复杂程度、交易大小确定基本的Gas数量;而我们可以根据自身需要的交易确认速度给出不同的GasPrice,GasPrice给得越高,交易确认速度越快;反之亦然。
以太坊交易可以视作链上快递
当然,以太坊交易和快递还是有一些不同的。
在寄快递时,我们是被动接受快递员(或快递公司)给我们开出的价格和送达时间,只能通过选择不同的快递公司来达到我们的目的(省钱或尽快送达)。
而在以太坊发起交易时,我们可以自己设定一个GasPrice,矿工(快递员)通过对比全网待打包交易的GasPrice(快递费单价)情况选择要打包那一笔交易(送哪份快递)。
至于GasLimit,用油耗的例子还是相对准确的。当张三想要从A地开车到B地时,需要给自己的车加一定量的油,加油的数量就是GasLimit。如果油箱里的油耗光时,汽车就无法继续行驶;而如果在油箱里的油耗光之前张三就已经达到B地,那么剩余的油依然属于张三。
同样的道理,当Gas消耗达到GasLimit时,这笔交易就会停止;而如果在Gas消耗达到GasLimit之前交易就已经达成,那么剩余的Gas将会退还给用户。
GasLimit的存在基本上算是为智能合约量身定制的。不同于直接发送一笔交易,智能合约可能需要执行更加复杂或者重复的任务,达成目标具体需要消耗的Gas数量只有在交易完成后才能确定。
而且还存在这样一种情况,某个任务的执行是无限循环的,如果不主动停止,任务就将一直执行下去直到账户余额被全部消耗。
因此,GasLimit实质上是一种保护机制,通过让用户在发起交易时设定一个上限,当消耗的Gas数量达到上限时停止执行任务,防止因用户错误估算或智能合约bug导致账户余额过度消耗。
Gwei
以太坊的最小计量单位是Wei,单位的命名是为了纪念加密货币先驱戴伟(Wei Dai)。戴伟于1998年提出了匿名分布式电子加密货币B-Money,比特币的设计思想有许多借鉴于此。
戴伟
我们平常所说的1个以太坊实际上指的是1 Ether单位的以太坊,1 Ether = Wei。Gwei也是以太坊的基本计量单位之一,1 Gwei =
Wei,1 Ether =
Gwei。
我们在设定GasPrice时通常会以Gwei为单位,年初全网交易的平均GasPrice在40 Gwei左右,而在DeFi热潮来袭之后,GasPrice一路升高,最高时甚至超过了400 Gwei。随着近期行情转冷,链上交易数量减少,GasPrice也大幅回落,截至发稿时GasPrice约为80 Gwei。
在介绍GasPrice时我们曾经说过,如果不着急交易很快被确认可以选择稍微低一些的GasPrice,这样比较节约交易费。但需要注意,低GasPrice只是相对于当前平均水平较低,并不是无限低。如果在当前的网络环境下我们发送交易时设定1 Gwei的GasPrice,那这笔交易怕是等到海枯石烂都无法完成。
目前大部分去中心化钱包都会提供一个推荐GasPrice,既能让用户节约手续费又能使交易在较短时间内被确认。
CoinEx Wallet在推荐GasPrice的基础上进一步优化,增加“当前网络情况”和“预计确认时间”的展示,您可以根据自身需求的确认时间来调节GasPrice高低,实现“精准打击”,既能在自己想要的确认时间完成交易,也不需担心浪费交易费。
除此之外,如果您觉得系统默认可供选择的GasPrice均不符合需求,比如确认速度不够快、手续费不够低等,还可以通过自定义功能输入自己觉得合适的GasPrice。
如何使用CoinEx Wallet调整GasPrice
1. 进入ETH转账页面后,交易费一栏会展示默认交易费,默认交易费 = 推荐GasPrice*默认GasLimit。
CoinEx Wallet将根据您发起交易的币种及交易类型给出推荐的GasLimit,如果实际使用的GasLimit数量低于GasLimit,多余部分将退还至您的钱包地址。点击交易费栏尾部的小三角可自行调整交易费。
2. 点击小三角后将展示“当前网络情况”及“预计确认时间”,当您通过滑杆调整GasPrice时,预计确认时间也会相应变动,您可以结合价格与确认时间综合选择适当的GasPrice。如果滑杆范围内的GasPrice都不能满足您的要求或者想调整GasLimit,可点击【自定义交易费】按钮。

3. 点击【自定义交易费】按钮后,您可以根据您的需求自行设定GasPrice及GasLimit。