以太坊交易费用、gas 限额和已用 Gas

Posted

技术标签:

【中文标题】以太坊交易费用、gas 限额和已用 Gas【英文标题】:Transaction fee, gasLimit and usedGas in Ethereum 【发布时间】:2019-05-21 06:33:46 【问题描述】:

我正在阅读有关以太坊中的 Gas 以及它如何用于控制执行的信息。有几点我不清楚:

TransactionFee = GasLimit * Gas​​Price(都由账户指定?)

据我了解,当交易处理完毕并在挖矿后,这笔费用将归矿工所有。另一方面,对于 EOA,它从余额中删除 GasUsed*GasPrice 的数量,GasLimit - GasUsed 的差值也返回给 EOA(如果交易有效)。 我的问题是:

    Gavin Wood 的论文中指定的帐户中没有气场。 GasLimit - GasUsed 如何退回账户?是不是转换成魏? 在 Andreas M. Antonopoulos 和 Gavin Wood 的“掌握以太坊”一书中,有一句话

“您只需为您的交易实际消耗的 gas 付费, 但你必须有足够的余额来支付你的最大金额 愿意在您发送交易前付款”

在gasLimit领域的论文中说

“这是在任何计算完成之前预先支付的,可能不会 增加”

该帐户用于支付什么费用? gasLimit 还是消费Gas?

    如果它为消费的Gas 付款,则不应向矿工支付消费的Gas 而不是transactionFee,因为从发送方提取的“钱”流向了矿工。 如果是TransactionFee,给矿工发件人消耗的Gas + Gas的差额,但这个差额也被退回到账户?!它就像以太坊一样使用两倍的相同差异。

我错过了什么?

【问题讨论】:

【参考方案1】: 交易签名者定义 gas 限制gas 价格。 在处理交易时,金额(gas limit * gas price)会从交易发送者的账户中扣除。 交易结束时,gas 使用量为gas used。发件人的帐户因未使用而记入贷方。该金额为 (gas limit - gas used) * gas price

所以最终结果是 gas used * gas price 已从发送者的账户中扣除,这是作为一部分记入矿工的金额他们的奖励。尽管从技术上讲,先扣除然后退款(以便在交易处理期间余额正确),但通常更简单地将其视为“您为使用的天然气付费”。我想这就是为什么你看到它在不同的地方有不同的描述。

回答您的个别问题:

    乘以汽油价格。这就变成了wei。 该帐户最终会支付刚刚消耗的 gas。 是的,矿工只获得消耗的气体的报酬。

【讨论】:

以上是关于以太坊交易费用、gas 限额和已用 Gas的主要内容,如果未能解决你的问题,请参考以下文章

以太坊合约所有者可以支付交易的gas吗?

是否可以从以太坊的另一个账户支付交易费用?

以太坊gas limit啥意思

区块链 以太坊 gaslimit 区块大小

如何确保在私有以太坊区块链中交易收取 0 费用?

支付用户的gas:以太坊