主页 > imtoken注册 > 了解以太坊天然气和费用

了解以太坊天然气和费用

imtoken注册 2023-02-03 07:37:26

Gas的中文译名是:煤气,汽油,代表一种可燃气体。 这是对以太坊交易手续费计算模型的形象类比,区别于比特币直接支付比特币作为转账手续费。 以太坊被视为一个去中心化的计算网络。 当你发送Token、执行合约、转账以太币或者在这个区块上做其他事情的时候,计算机在处理这个交易的时候需要计算和消耗网络资源,所以你必须支付燃料费来购买燃料让计算机工作你。 最终的gas费作为手续费支付给矿工。

以太坊内部转账交易_以太坊交易手续费多少_国外以太坊币交易网站

与比特币不同,无论交易成功与否,您都需要支付 gas 费用。 这是因为即使交易失败,矿工仍然会对这笔交易进行校验和计算,消耗资源。 同时,你不能直接在钱包里设置要支付多少gas,因为实际的gas是矿工计算出来的,记录在包含这笔交易的区块中。

当你听到人们谈论 gas 时,他们实际上是在讨论两个概念:gasUsed 和 gasPrice,默认指的是 gasUsed。 你可以把 gasUsed 想成汽车需要多少升的燃料。 将天然气价格视为燃料的单价。

汽车方面,汽油价格为每升6.46元,10升汽油为64.6元。 对于以太坊,每个gas是20Gwei(价格),21000 gas是20*21000 Gwei= 420000 Gwei= 0.00042 Ether。 也就是说,交易过程是0.00042 Ether。

Gwei是以太坊的计算单位,详见文末。

使用的气体

那么,以太坊的计算机在处理交易时是如何计算计算量的呢? 以太坊有专门的虚拟机来处理交易。 虚拟机对交易中确定的每条操作指令进行逐条处理,每条操作指令都有明确规定的Gas消耗量。 比如执行一个加法操作会消耗3个Gas,那么交易需要消耗多少Gas完全取决于交易中所有操作指令执行完后累积的Gas。 交易执行时,虚拟机会反馈消耗的Gas总量,称为gasused。 而你需要支付的手续费等于gasPrice * gasUsed。

命令用气注意事项

停止

停止执行

添加

3个

添加两个数字

多联

5个

两个数相乘

低音炮

3个

减去两个数字

分区

5个

两个数相除

更多详情请参考:气体清单

气体限制

因为手续费等于gasPrice * gasUsed,用户转账时gasUsed是无法提前预测的,尤其是在执行智能合约的时候。 存在风险,当用户交易涉及恶意智能合约时,合约执行会消耗无限燃料,导致交易方全部余额被消耗(恶意智能合约可能是程序bug,如合约执行陷入死循环)。

为避免合约错误导致不可预测的gas消耗,用户需要在发送交易时设置允许消耗的gas limit,即gasLimit。 这样一来,不管合约好不好,在最坏的情况下,它只消耗 gas 有限数量的燃料。

然而,交易必须支付的gas已经根据交易执行的计算量记录在区块中。 如果你不想花费太多的gas以太坊交易手续费多少,刻意将gas limit设置到底部并没有多大帮助。 您必须支付足够的 gas 来支付此次交易所需的计算资源。 如果交易还没有执行,gas用完了,就会出现Out of Gas错误。 需要注意的是以太坊交易手续费多少,即使交易失败,您也必须为您所占用的计算资源支付处理费。 比如你通过合约给TFBOYS投票,设置gasPrice=2 gwei,gasLimit=40000(实现投票需要40001 gas费用),最后投票失败还需要支付40000*2 gwei= 80000 gwei= 0.00008 以太币。

另外,如果最终的gasUsed低于gasLimit,则表示燃料没有用完。 那么剩余的gas(gasLimit - gasUsed)会在交易后退还给你。 例如,如果您将 1 Ether 发送到另一个账户 B,并将 gas limit 设置为 400000,则 400000 - 21000 将返回给您。

21000 是用于标准转账交易的 gas。 因此,对于标准转账交易,您可以将 gasLimit 设置为 21000。

天然气价格

因为你需要支付的gas费是gas单价(gasPrice)*gasUsed,如果你想让交易成本更低,可以做的就是降低你愿意支付的gas单价。 另一方面,降低 gas 单价的缺点是交易可能需要很长时间才能包含在一个区块中。

这是因为交易 gas 费将归于挖出区块的矿工。 矿工在挖矿时,需要决定将哪些交易放入区块,哪些可以是随机选择的交易,也可以不包含。 为了鼓励矿工将你的交易放入区块,你会考虑将 gas 单价设置得足够有吸引力,以确保它可以首先放入区块。

但这仍然是一厢情愿的想法,因为这最终取决于矿工。 大多数矿工遵循一个简单的策略,先打包本地交易,将收到的交易按照燃料单价从高到低排列,依次放入区块,直到区块满,或者低于燃料单价矿工设定的价格下限。

如果您急于交易,高燃油单价将使您的交易先于他人。 如果你不着急,你只需设置一个足够高的 gas 单价,让矿工包含你的交易。

一般来说:

下图展示了最近1000个区块中不同燃料价格对交易确认时间的影响:

国外以太坊币交易网站_以太坊内部转账交易_以太坊交易手续费多少

由于以太坊目前的交易处理性能(每秒15笔交易),交易高峰期出现拥堵时需要考虑调整燃料单价。 比如Token创建后,抢购火热,需要设置更高的燃料单价才能中奖,这样才能抢先购买Token。

在设定燃油单价时,还需要考虑加密货币的价格波动,随时可能兑人民币上涨或下跌20%。 以人民币计算,之前交易10气价折合0.3元,现在可能已经是0.4元了。 因此,需要根据实际情况,尽可能降低燃油单价。 而当网络中大部分交易都是低燃料单价时,矿工也会调整他的底限。

那么问题来了,燃油单价应该设定多少呢? 您可以在 ethgasstation 网站上查看。 它会告诉你整个以太坊目前的情况,给你推荐的燃料单价。 下图为当前燃油单价设置建议。

图3-以太坊交易燃料单价设置建议

图 3 - Ethereum Transaction Gas 的建议单价设置 Appendix 附录 ETH Unit of Calculation