【Web3 开发系列教程—创建你的第一个智能合约(3)】什么是 Gas,它是如何使用的?

以太坊中的 Gas 是指在区块链网络上**执行智能合约或交易所需的额外费用。**为什么会存在这种情况? 好吧,在运行智能合约时有几个主要限制:

  1. 每个部署的交易、智能合约或智能合约的执行,都必须在以太坊区块链上的每个完整节点上运行,以保证有效性。 这是非常低效的(尽管新的区块链正在简化这一点)!
  2. 因为智能合约是图灵完备的,它们有可能永远执行,锁定区块链上的每个节点。

什么是图灵完备性?
实际上,只要有足够的时间和资源,图灵完备的编程语言就能够解决或表示任何计算问题,无论多么复杂。 特别是,这有几个含义:

  1. 理论上,任何图灵完备语言都可以用来表示另一种图灵完备语言的逻辑,尽管实现的时间可能长得不合理。
  2. 图灵完备的程序最终可能会永远循环和执行。 事实上,没有通用的方法可以证明这样的程序不会永远运行(也称为“停机问题”)。

例如,普通计算器不是图灵完备的,因为它只允许几种类型的计算。 但是,计算机或科学计算器是图灵完备的,因为可以在其上执行任何类型的程序。

由于智能合约程序可以永远运行,gas 已成为以太坊中管理区块链程序影响的实用方式! 在区块链上进行的每次计算或交易都会产生一些费用。 这些费用可以防止昂贵的(或无休止的)合同执行,确保矿工的工作得到公平的补偿,并提供一个公平的市场来优先考虑哪些交易进入区块链。

计算 Gas 的成本

对于任何给定的程序,使用的总 gas 计算为以太坊虚拟机执行的每个操作的 gas 总和。 例如,在智能合约中

猜你喜欢

转载自blog.csdn.net/ImagineCode/article/details/125115572
今日推荐