ETH之所以被称为加密世界中的“石油”,主要原因在于它的gas机制很像在给汽车加油。如果你的油没加到位,那么你在以太坊上的转账很可能会因为燃料不足而无法到达“终点”,从而导致该笔交易失败。所以,要想让转账在以太坊上变得“丝滑”,各位还是要先了解一下以太坊上的各种“gas”。
1.gas:以太坊网络中的燃料。其实不止是转账,部署智能合约也要用到gas,gas使用ETH来支付。 1ETH=10^9Gwei=10^18wei
2.gas price:指gas的单价,即每单位gas你愿意支付多少Gwei。
3.gas used:指交易中实际消耗的gas数量。
4.gas limit:指你愿意在一笔交易中花费gas的最大数量。
在以太坊网络中转账,手续费按如下公式计算: 交易手续费(ETH)=gas price*gas used
肖恩给大家举个例子,当你用钱包(比如imToken等)转账时,你可以对gas price和gas limit进行设置。通常来说,在以太坊网络中的每一笔转账,无论数额大小,消耗的gas是固定的(备注需要消耗额外的gas),即21000。假如你将gas price设置为6Gwei,gas limit设置为100000,那么你这笔交易的手续费是6*21000=126000Gwei=0.000126ETH。当然,如果你想你的交易能尽快被打包,可以适当提高gas price的设置值。
细心的朋友应该会注意到,以太坊交易手续费的计算公式里并没有出现gas limit,这是意味着gas limit是个“鸡肋”的功能吗?肯定不是的。
比如,你在一笔普通的转账中将gas limit设置为10000,因为10000小于21000,那么这笔交易就会失败,但是这笔交易的手续费是不会退回你的。就好比你在开车前没把油加够(油只加到10000),车子在去往目的地的途中没油了(开车到目的地需要把油加到21000),你虽然车没开到地方,但用掉的油就是用掉了。
再比如,假如你碰到了恶意的智能合约,该合约的执行将消耗无限的燃料,会导致你ETH的余额全部消耗。这时,因为你设置了gas limit,你的损失就不会超过gas limit的设定值。由此可见,gas limit的存在是有它的道理的。