主页 > imtoken钱包下 > 解读什么是gas成本以及为什么需要gas
解读什么是gas成本以及为什么需要gas
解读什么是gas成本以及为什么需要gas
本文核心词:
什么是气体?
Gas 是用于衡量在以太坊区块链上执行特定操作所需的计算量的单位。
这个名字本身并不是偶然选择的。 天然气实际上类似于汽油。 后者作为汽车的能源,保证汽车能够正常行驶。 以太坊网络上的 gas 为交易“加油”并允许用户执行不同的操作。
以太坊区块链上的每个操作,或者更准确地说是以太坊虚拟机 (EVM) 上的每个操作,都有相应的 gas 成本。 例如:两个数字相加需要 3 个 gas; 获得账户余额需要 400 gas; 发送一笔交易需要 21,000 gas。
智能合约通常包括多项操作,这些操作加起来可能会花费数十万gas。
有趣的是,gas price 本身并没有告诉我们在某笔交易中需要支付多少。 要计算交易费用,我们必须将 gas 乘以 gas 价格。
gas的价格单位是gwei,gwei的单位小于ether,1 gwei等于0.000000001 ETH。 我们可以把它们之间的关系想象成分和美元。
例如,如果 ETH 的价格是 1800 美元,我们想发送一个简单的以太坊交易。 最流行的以太坊钱包(如 Metamask)估计所需的汽油价格,并允许我们在快速、中速和慢速交易确认速度之间进行选择。 让我们假设,如果我们希望我们的交易在一分钟内得到确认,钱包估计 gas 价格将设置为 100gwei。
我们现在可以快速计算出我们需要为这样的交易支付 3.78 美元。 我们将发送交易的 gas 成本(21,000 gas)乘以 gas 价格(100 gwei),等于 2,100,000 gwei,或 0.0021 ETH。 以 1,800 美元的 ETH 价格计算,交易费为 3.78 美元。
为什么我们需要天然气
相信大家应该关注前段时间filecoin产生高gas费的报道。 为了更好地解释气体,我们需要先了解气体为什么存在。 以太坊虚拟机是一个图灵完备的机器什么是以太坊汽油费,可以执行任意代码。 虽然这是使以太坊如此强大的主要因素之一,但它也更容易受到停机问题的影响。 停机问题是根据任意计算机程序的代码和输入确定该程序是结束还是永远继续运行。
如果没有气体,用户可以执行一个永不停止的程序。 原因可能是代码错误,或者有人做错了。 为了防止这种情况发生,以太坊引入了与每个操作相关的 gas 成本,这将防止程序永远运行,最终使整个网络陷入停顿。
除了 gas price 之外,每笔交易还有一个 gas limit,它必须等于或高于成功执行特定交易所需的预期 gas 量。
在执行交易中的每个操作之前,以太坊虚拟机检查是否有足够的可用空间来执行该操作。 如果剩余的gas不够用,使用“out of gas”来回滚整个交易,回滚所有状态。 即使交易失败,用户仍将按照已完成的工作量向矿工支付交易费。 这也是为了避免有人对网络发起恶意攻击。
如果交易消耗的 gas 比最初预期的少,则剩余的 gas 将转换为 ETH 并退还给发送方。
同样重要的是,以太坊上的所有操作都有正确的 gas 成本; 否则什么是以太坊汽油费,它可能成为另一个攻击目标。 其中一次攻击发生在 2016 年,导致以太坊网络硬分叉,导致系统中某些简单操作的重新定价。
现在,既然我们对 gas 有了更多的了解,那么让我们来看看最近交易费用是如何上涨的,以及一些现在和未来可以降低交易成本的解决方案。