每当您在以太坊网络上进行交易时,您都需要支付一定的费用。这笔费用支付给加密矿工,用于执行与交易相关的计算,并将其写入区块链。
为了确切地确定某个操作需要多少工作量,使用了一种称为燃料(Gas)的内部计价单位。一个简单的交易不需要像智能合约或去中心化应用程序(DApp)那样多的计算能力才能写入区块链。因此,前者只需要少许燃料,而后者两者可能需要大量燃料。
Ges 用以太(ETH)支付,即以太坊的原生加密货币支付。它们之间没有 1:1 的对应关系;相反,用户自己决定愿意支付多少燃料费用,以执行他们的操作。价格越高,矿工越愿意优先处理这些操作。
由于以太坊的公开交易和转账特性,以太的市场价格可以非常快速地变化。这就是为什么使用内部计价系统来保持交易费用相对于快速变化的以太市场价格较为稳定。
例如,想象一下,执行交易的费用以 0.1 ETH 的静态成本支付。当 1 ETH 的市场价格为 10 美元时,您需要支付 1 美元进行交易。但如果 1 ETH 的价格上涨到 1,000 美元,您将需要支付 100 美元进行同样的交易。
这就是为什么创建了一种称为“gas”的内部计价单位。它通过将交易成本与以太不断变化的市场价格脱钩来稳定交易成本。
以太坊网络上的所有交易都需要计算能力来执行。每个操作都有相关的燃料成本,无论是简单交易、智能合约,还是DApp。通常,操作所需的燃料量与写入区块链所需的工作量直接成正比。
进行交易时,您的钱包通常会给出一个大概的燃料估计。然后由您决定愿意为这些燃料支付多少。例如,如果您的交易需要 21,000 燃料,您愿意为每一个燃料单位支付 5 Gwei(0.000000005 ETH),您将支付总额为 0.000105 ETH 的费用,按当前汇率计算,相当于一美分。
您无法确切知道一个操作将需要多少工作量。因此,您不是附加一个精确的费用,或允许费用自动调整,而是设定一个gas limit。这是您愿意为交易支付的最高燃料金额。结合燃料价格,燃料限制实际上决定了交易可能花费的最高 ETH 金额。所有未用于将交易写入区块链的燃料都将退还到您的钱包。
gas 价格 × gas limit = 最大成本(以 ETH 计)
如果您设定了一个精确的费用,结果发现它无法支付计算费用,您仍然必须支付您设定的价格,因为包含您交易的矿工已经尽可能多地为这个价格工作了。
如果您允许费用自动调整,您就有耗尽所有资金的风险,因为如果您干预的智能合约存在错误代码或无限循环,会使它比最初预期的要大得多、因而写入区块链的成本也要高得多。设定燃料限制,您可以避免这两个问题,因为它或多或少保证了您的交易费用,并保护您在出错时不会失去所有资金。
请注意,交易 gas 限制与区块 gas 限制不同,区块燃料限制是以太坊控制区块大小的方式。
应当注意的是,矿工可以选择优先处理哪些交易,并且通常会优先处理燃料价格较高的交易。这是因为矿工在将您的交易写入区块链时,会使用自己的时间、电力和计算能力,并且他们希望使自己的工作尽可能盈利。
设定正确的 gas 价格和 gas 限制确保您的交易得以开采并以最优的价格 - 时间比添加到区块链中。燃料费用过小的交易可能永远不会被包含在区块中,而燃料费用过高的交易可能是浪费金钱,因为它并不比平均费用提供特别的时间优势。