为什么以太坊合约交易使用的天然气更少?

时间:2018-07-01 14:47:50

标签: blockchain ethereum solidity contract erc20

请在以太坊交易下方查看此信息

  

0xe9adbe7e538ccf9f9d4ede8cc4200581dac131976738d3bbf0eb90700cd8a2b6

以太坊交易至少消耗 35,000 GAS 来转移合同上的ERC20代币,以替换两个帐户余额和一个事件。

但是,此交易仅使用了 21,003 GAS 。那怎么可能?

1 个答案:

答案 0 :(得分:1)

  

以太坊交易至少消耗35,000 GAS来转移合同上的ERC20代币,以替换两个账户余额和一个事件

此陈述不一定正确。消耗的汽油量取决于该帐户的上一个和/或更新后余额是否为0。

Ethereum yellow paper(操作码名称|气体成本|描述):

  

Gsset 20000当存储值从零设置为非零时,为SSTORE操作付费。

     

Gsreset 5000当存储值的零度保持不变或设置为零时,为SSTORE操作付费。

     

当存储值从非零设置为零时,给予Rsclear 15000退款(添加到退款计数器中)。

对于您发布的交易,发件人转移了其所有令牌并将其余额设置为0,因此获得了15000汽油退款。