全球区块链监管查询平台

简体中文
下载WikiBit

以太坊的GAS是什么?|区块链入门012

以太坊的GAS是什么?|区块链入门012 WikiBit 2021-01-15 11:14

在以太坊网络中转账,虽然最后的手续费我们支付的是 ETH,但其实在以太坊内部并不直接消耗 ETH,而是消耗 Gas。

  在以太坊网络中转账,虽然最后的手续费我们支付的是 ETH,但其实在以太坊内部并不直接消耗 ETH,而是消耗 Gas。

  “Gas”这个单词的英文意思是“(气体)燃料”,以太坊网络中的操作需要消耗 Gas,就如同汽车行驶需要消耗燃料一样。

  那么,交易的手续费(ETH)是如何计算的呢?

  在以太坊网络中转账,手续费的计算方式如下:

  交易手续费(ETH)= Gas的单价 x 消耗的Gas数量

  在天眼君的这笔交易中,Gas 的单价(Gas Price)是 27Gwei,也就是 0.0000000027ETH。

  Gwei又是什么呢?

  ETH 的单位

  ETH 的最小单位是 Wei,但是谈到以太坊 Gas 的时候,经常用 Gwei。ETH、Gwei、Wei 之间的关系如下:

  1 ETH = 10^9 Gwei(9个0)= 10^18 Wei(18个0)

  知道了 Gas 的单价,我们再看下天眼君这笔含的转账消耗的 Gas 数量:1,757,273。所以,按照上面的公式,单价乘以数量,即可得到大白花费的手续费:

  手续费 = 0.0000000027ETH x 1,757,273 = 0.047446371ETH

  汽车去加油站添加燃料,燃料的价格基本是固定不变的,但是在以太坊网络中,Gas 的单价是可以自己设置的。

  不过,需要注意的是,Gas 的单价会影响这笔交易被打包的速度。也就是说,Gas 的单价你给的越高,矿工为了自身利益最大化,越会优先打包你的交易。

  提交每笔交易时,需要附加愿意付出的最多成本,矿工在打包时,会遵循以下规则:

  •   利益导向——哪笔交易给的酬劳高,会优先打包谁的,直到区块中包含的算力值(gas limit)消耗殆尽;

  •   多退少不补——按实际算力收取费用,但如果给的不够,打包时则不会将计算结果提交到链上,费用也会全部收取(每笔事务的最低算力消耗值则为21000gas)。

  在理解了上述规则后,扩容问题的解决就简单了:为了避免出现比特币类似的区块扩容争议,以太坊协议允许矿工每次可以将上个区块BGL值调整正负0.0976%(=1/1024 ),按平均每15秒出块的频率,以快速满足网络上快速变化的计算需求。

  大家常用的 imToken 钱包,在 Gas 的单价设置里,提供的是 5~100Gwei,钱包把最低单价设置为 5Gwei,保证了交易能在合理的时间内被打包,当然,如果想插队,尽快被矿工打包,你也可以自己提高 Gas 的单价。

  说完了 Gas 的单价,我们再接着说消耗的 Gas 数量。

  在以太坊网络中,每一笔转账,无论数额大小,消耗的 Gas 是固定的,为 21000,如果添加备注(“刻字”),需要消耗额外的 Gas。备注需要消耗多少数量的 Gas,和输入的内容长度有关,内容越多,需要消耗的 Gas 数量也越多。

  除了GAS,在转账中我们还会遇到GAS Limit。

  以太坊网络中不同的事务,所需要的计算成本各不相同。

  举个例子,对于转帐交易类事务,以太坊网络的处理是相对一致的;而对于一个有Bug的程序来说,很可能会消耗掉大量的算力(比如程序中存在无限循环运算时)。以太坊明确了每笔操作会有个最低算力消耗值,而智能合约的算力消耗量则在最低消耗值基础上,还需要加上所有代码执行的算力。实际消耗的算力只有在实际使用时才能确认。

  因此,以太坊中每笔交易的大小是不确定的。如果需要用一个相对固定的参数来规范以太坊区块的话,最直观的就是固定每个区块中所包含的算力了。这个值由矿工在每个区块中的GAS LIMIT(单位:gas)参数来表示,每个交易提交时也会有算力需求(单位:gas),乘以算力gas的价格(单位:gwei/gas),就是交易成本了(单位:gwei,gwei和eth类似于比特币里的 聪 和BTC的关系:每 eth = 10^9 gwei)。

  Gas Limit,是指这笔操作消耗的 Gas 数量上限,这个上限值你可以自己设置。

  一般的钱包都会默认帮你设置这个上限值,对我们普通用户而言,普通转账时这个上限值也不用去考虑。以太坊网络设置这个上限值,是以防万一,如果碰到恶意的智能合约,该合约执行将消耗无限的燃料,这样会导致交易方的 ETH 余额全部消耗(恶意的智能合约有可能是程序 Bug,如合约执行陷入一个死循环)。

  Gas Limit 如果设置过低,比如设置为 10000,任何一笔转账需要的 Gas 数量至少 21000,远远超过你设置的 Gas Limit,就会导致转账失败。也就是说,Gas Limit 会影响一笔交易是否能成功。

  以太坊明确了每笔操作会有个最低算力消耗值,而智能合约的算力消耗量则在最低消耗值基础上,还需要加上所有代码执行的算力。实际消耗的算力只有在实际使用时才能确认。

免责声明:

本文观点仅代表作者个人观点,不构成本平台的投资建议,本平台不对文章信息准确性、完整性和及时性作出任何保证,亦不对因使用或信赖文章信息引发的任何损失承担责任

  • 通证换算
  • 汇率换算
  • 购汇计算
/
当前汇率
可兑换金额

0.00