首先我们需要了解,在 TRON 上执行每一笔交易都需要消耗资源。
TRON 有自己的一套资源模型,即能量和带宽,它们是 TRON 网络两种重要的系统资源。其中,带宽用于衡量保存在区块链数据库中的交易字节大小;交易越大,消耗的带宽资源越多。能量用于衡量 TRON 网络上 TVM 虚拟机执行特定操作所需的计算量。由于智能合约交易需要计算资源来执行,因此每笔智能合约交易都需要付费。
带宽
所有类型的交易都需要消耗带宽。交易以字节数组的形式在网络中传输和存储,每个字节需要消耗一个单位的带宽,因此一笔交易消耗的带宽等于其交易字节数。
当可用带宽不足时,需要燃烧 TRX 来支付带宽费用。目前,每单位 Bandwidth 的单价为 0.001 TRX。
能量
智能合约运行时,每一条指令的执行都需要消耗一定的能量。不同复杂度的合约消耗的能量数量不同;执行合约时,会逐条计算并扣除能量。
当账户可用能量不足时,需要燃烧 TRX 来支付相应的能量费用。目前,每单位 Energy 的单价为 0.0001 TRX。
注意:带宽和能量的单价由链上参数决定,可能随网络治理调整;请以当前网络参数为准。 可前往 TRONSCAN 网络参数页查看当前参数。
回到问题上来:由于 TRON 的资源体系,当用户执行一笔交易时,即使最终没有执行成功,在执行过程中也会消耗执行该笔交易所需的资源。若当前资源不足,系统将燃烧 TRX 支付资源费用。这就是交易失败后仍可能扣除手续费的原因。