Gas 在以太坊中指的是在区块链网络上执行智能合约或交易所需的额外费用。
为什么会存在这个费用呢?主要有以下几个限制:
-
每个已部署的交易、智能合约或智能合约的执行都必须在以太坊区块链上的每个完整节点上运行,以保证其有效性。这是非常低效的(尽管较新的区块链正在简化这一过程)!
-
由于智能合约是图灵完备的,它们可能会无限期地执行,从而锁定区块链上的每个节点。
什么是图灵完备?
实际上,一个图灵完备的编程语言能够解决或表示任何计算问题,无论其复杂程度如何,只要有足够的时间和资源。具体来说,这有几个含义:
1.任何图灵完备的语言理论上都可以用来表示另一种图灵完备语言的逻辑,尽管实现可能非常冗长。
2.图灵完备的程序可能会陷入无限循环并永远执行下去。事实上,没有通用的方法可以证明这样的程序不会无限期地运行(这也被称为“停机问题”)。
例如,一个普通计算器不是图灵完备的,因为它只允许进行几种类型的计算。然而,一台电脑或科学计算器是图灵完备的,因为任何类型的程序都可以在上面执行。
https://www.web3.university/tracks/create-a-smart-contract/what-is-gas-and-how-is-it-used
由于智能合约程序可能会永远运行,gas 成为了在以太坊中管理区块链程序影响的实际方式!在区块链上进行的每一次计算或交易都需要支付一定的费用。这些费用防止了昂贵(或无休止的)合约执行,确保矿工为他们所做的工作得到公平补偿,并提供了一个公平的市场来优先处理哪些交易可以进入区块链。
计算 Gas 成本
对于任何给定的程序,总 gas 用量是由以太坊虚拟机执行的每个操作的 gas 之和来计算的。例如,在智能合约中添加两个数字需要 3gas,而发送一笔交易需要 21,000 gas。
总 gas 成本是通过将智能合约中使用的 gas 量乘以 gas 价格来计算的,而 gas 价格由你(交易发送者)设置。
为你的交易设置较高的 gas 价格意味着它更有可能在区块链上被确认,因为以太坊区块链每秒只能确认大约 15 笔交易。然而,这也会使发送者支付更多的以太币。
另一个可以设置的重要值是 gas 限制,即你愿意在交易上花费的最多 gas 量。
通过将 gas 价格乘以 gas 限制,你将得到允许以太坊在任何特定交易上的最大 gas 费用。
什么是 “Gwei” 或 “Wei”,它们与 ETH 有何关系?
“Wei” 是以太币(Ether)最小的单位,其中 10¹⁸ Wei 相当于 1 以太币。一个 Gwei 是 10⁹ Wei,每个以太币包含 10⁹ Gwei。
https://www.web3.university/tracks/create-a-smart-contract/what-is-gas-and-how-is-it-used
了解 Gas 执行
当调用智能合约时,调用(或交易)将在程序执行期间尝试使用提供的 gas。
-
如果调用成功,未使用的 gas 将返回给发送者。
-
如果调用因耗尽 gas 而失败,则整个交易将回滚,撤销对区块链的所有更改。没有 gas 会被退还,因为在计算过程中所有的 gas 都已被消耗掉了。
根据新的 EIP-1559 规范,成功交易的一部分 gas 费用将被销毁(即从总供应量中移除),其余的将被发送给将你的交易添加到区块链的矿工。
什么是 EIP-1559 以及它如何影响 Gas 费用?
在 2021 年 8 月 5 日以太坊提案 EIP-1559 实施之前,交易是通过首次价格 Gas 拍卖包含到区块链上的。
https://www.web3.university/tracks/create-a-smart-contract/what-is-gas-and-how-is-it-used