主页 > imtoken支持bcc > 什么是气体,它是如何产生的?

什么是气体,它是如何产生的?

imtoken支持bcc 2023-09-18 05:11:32

Gas 是一个单位 slf00088,用于衡量在以太坊区块链上执行特定操作所需的计算量。

这个名字本身并不是偶然选择的。 天然气实际上类似于汽油。 后者作为汽车的能源,保证汽车能够正常行驶。 以太坊网络上的气体“加油”交易,并允许用户执行不同的操作 slf00088。

image.png

以太坊区块链上的每个操作,或者更准确地说是以太坊虚拟机 (EVM) 上的每个操作,都有相应的 gas 成本。 例如:两个数字相加需要 3 个 gas; 获得账户余额需要 400 gas; 发送一笔交易需要 21,000 gas。

智能合约通常包括多项操作,这些操作加起来可能会花费数十万gas。

有趣的是,gas price 本身并没有告诉我们在某笔交易中需要支付多少。 要计算交易费用,我们必须将 gas 乘以 gas 价格。

sitezhishu.com 以太坊挖矿成本_sitehqz.com 挖以太坊成本_以太坊交易成本

gas的价格单位是gwei,gwei的单位小于ether,1 gwei等于0.000000001 ETH。 我们可以把它们之间的关系想象成分和美元。

例如,如果 ETH 的价格是 1800 美元,我们想发送一个简单的以太坊交易。 最流行的以太坊钱包(如 Metamask)估计所需的汽油价格,并允许我们在快速、中速和慢速交易确认速度之间进行选择。 让我们假设,如果我们希望我们的交易在一分钟内得到确认,钱包估计 gas 价格将设置为 100gwei。

image.png

我们现在可以快速计算出我们需要为这样的交易支付 3.78 美元。 我们将发送交易的 gas 成本(21,000 gas)乘以 gas 价格(100 gwei)以太坊交易成本,等于 2,100,000 gwei,或 0.0021 ETH。 以 1,800 美元的 ETH 价格计算,交易费为 3.78 美元。

sitehqz.com 挖以太坊成本_sitezhishu.com 以太坊挖矿成本_以太坊交易成本

ETH的价格和gas有什么关系

值得一提的是,gas只是一个抽象单位,只存在于以太坊虚拟机中,用户实际上总是为以太坊网络中的交易付费。

使用单独的单位来衡量计算工作的主要原因是将其与 ETH 的价格脱钩。

这意味着 ETH 价格上涨不会改变交易成本。 如果网络活动保持不变,我们应该会看到天然气价格随着 ETH 价格的上涨而下降,因此以 ETH 衡量的最终交易成本应该保持不变(以美元价值计算)。

sitehqz.com 挖以太坊成本_以太坊交易成本_sitezhishu.com 以太坊挖矿成本

但 ETH 价格的上涨通常与以太坊网络上的活动增加有关,这会增加交易成本。

现在,让我们看看增加的网络活动究竟是如何导致更高的交易成本的。

首先,所有交易都被发送到以太坊的内存池(mempool)。 所有未处理的交易都在等待矿工将它们捡起来并将它们包含在以太坊网络的下一个区块中。

image.png

以太坊交易成本_sitehqz.com 挖以太坊成本_sitezhishu.com 以太坊挖矿成本

矿工被激励首先选择 gas 价格最高的交易,因为他们通常会在固定的工作时间内选择价格较高的交易。

以太坊协议还限制了矿工可以包含在一个区块中的交易数量。 这是由每个区块的最大气体限制决定的。 在撰写本文时,此限制设置为 12.5M gas。

作为一个简单的例子,我们假设内存池中只有简单的 ETH 交易,每笔交易花费 21,000 gas。 一个矿工可以打包 595 笔这样的交易。 假设 mempool 中有 1000 笔未决交易,矿工将所有未决交易按照 gas price 进行排序以太坊交易成本,并选择 595 笔手续费较高的交易进行打包。

当前的费用模型基于一种简单的拍卖机制,在该机制中,希望矿工处理其交易的用户必须首先以比其他人更高的费用在区块中获得一个位置。 这反过来又推高了天然气成本,尤其是当许多用户有紧急交易需要确认时。

sitehqz.com 挖以太坊成本_以太坊交易成本_sitezhishu.com 以太坊挖矿成本

为什么我们需要天然气

为了更好地解释气体,我们需要先了解气体为什么存在。 以太坊虚拟机是一个图灵完备的机器,可以执行任意代码。 虽然这是使以太坊如此强大的主要因素之一,但它也更容易受到停机问题的影响。 停机问题是根据任意计算机程序的代码和输入确定该程序是结束还是永远继续运行。

如果没有气体,用户可以执行一个永不停止的程序。 原因可能是代码错误,或者有人做错了。 为了防止这种情况发生,以太坊引入了与每个操作相关的 gas 成本,这将防止程序永远运行,最终使整个网络陷入停顿。

image.png

除了 gas price 之外,每笔交易还有一个 gas limit,它必须等于或高于成功执行特定交易所需的预期 gas 量。

在执行交易中的每个操作之前,以太坊虚拟机检查是否有足够的可用空间来执行该操作。 如果剩余的gas不够用,使用“out of gas”来回滚整个交易,回滚所有状态。 即使交易失败,用户仍将按照已完成的工作量向矿工支付交易费。 这也是为了避免有人对网络发起恶意攻击。

摄影小清新风晚安横版海报@凡科快图.jpg