美文网首页
Gas 机制是如何运作的

Gas 机制是如何运作的

作者: rayjun | 来源:发表于2021-10-17 15:25 被阅读0次

以太坊是目前第二大公链,它和比特币不一样,以太坊上的可以实现的功能更多,如果比特币是一个可以进行加减乘除的计算器,那么以太坊就是一台功能完备的计算机。以太坊系统的复杂度超过比特币好几个数量级。

在以太坊中,用户可以自己写一个智能合约,然后把智能合约放到以太坊中执行。智能合约的执行需要消耗资源,而以太坊上的资源是有限的。

在计算机系统中,停机问题(https://zh.wikipedia.org/wiki/停机问题)目前还没有办法完全证明。这个问题简单来说就是没办法判断一个程序是否能够在有限的时间内结束运行。

如果一个用户提交了一个死循环程序到以太坊中,那么就会无限的执行下去,从而将以太坊网络击垮。而使用 gas 机制则可以解决这个问题,智能合约中,每段代码的执行都会消耗一定量的 gas,在用户提交交易的时候需要指定好。如果 gas 消耗完了,那么智能合约就必须停止,交易也会被撤销,如果智能合约执行完成, gas 还有剩余,就会退还给用户。

需要特别说明的是,即使交易失败,用户也需要支付 gas 费用,因为以太坊为这些错误的交易也付出了计算资源。

除了这点之外,gas 还可以用来激励矿工,用户提交交易所消耗的 gas 费用最后都会给到矿工,矿工会优先去打包那些提供了更高 gas 价格的交易,在以太坊中,如果希望自己的交易早点被打包,可以设置更高的 gas 价格。

gas 机制是以太坊系统的命脉。

gas 本质就是维护以太坊网络安全,这是从两个方面来做到的,一方面通过 gas 来衡量计算量,一方面使用 gas 来吸引更多的矿工,矿工的数量越多,以太坊网络就越安全。

gas 只能用于交易中,用户不会接触到 gas,gas 会在交易的提交的时候直接通过以太币来兑换。

衡量 Gas 量

智能合约中,每个操作都会消耗一定的 gas 。每个操作都对应一个 Opcode,下面是一些常见的 gas 消耗,完整的 gas 消耗说明看这里:https://github.com/crytic/evm-opcodes

  • 0x00:停止执行,消耗 0 gas
  • 0x01:加法运算,消耗 3 gas
  • 0x02:乘法运算,消耗 5 gas
  • 0x03:减法运算,消耗 3 gas
  • 0x04:整数除法运算,消耗 5 gas
  • 0x0a:指数运算,消耗 10^*(这里取决于具体的次方)
  • 0x20:计算 Keccak-256 哈希,消耗 30 gas
  • 0x31:获得给定账户的余额, 消耗 400 gas

以太坊区块的限制

以太坊中的交易最后会被确认,打包成区块,这样交易才算是完成,但是在一个区块中,可以打包的交易是有限的,以太坊通过 gas 来限制可以打包的交易数。这样就让被打包的机会成为了一个稀缺的资源。

用户提交一个交易后,gas 量可以看做是一个固定的值,矿工为了做到最大收益,就会选择那些 gas 价格更高的交易。

Gas 的价格如何决定

很多以太坊的用户经常吐槽 gas 费过高,其实这里的过高不是指 gas 本身过高,而是指 gas 对应的以太坊价格过高。

因为 Gas 的价格不是固定的,而是波动的,简单来说就是根据供需关系来决定的,如果同时需要用以太坊的用户多,那么Gas 的价格就贵,如果用户的人少,那么 Gas 的费用就会少。

以太币的最基本单位是 wei,1 ETH = 10 ^18 wei,而衡量 gas 价格的单位则是 gwei,1 ETH = 10 ^ 9 gwei。

在提交交易的时候,需要设定两个参数,一个是 gas 的最大消耗量(gas limited)和 gas 的价格,gas 的消耗量通常情况下会比较固定,不会有太大的变化,主要是 gas 的价格会波动很大。

在上面我们说到矿工会挑选那些 gas 费用比较高的交易进行打包。所以 gas 的价格设置的越高,那么总的 gas 费用就会越高。如果想让当前的交易尽快被确认,那么就需要设置一个当前相对来说比较高的 gas 价格。

其实对当前 gas 价格最清楚的就是那些矿工,所以矿工们也提供了一些服务,让用户可以实时的了解到当前 gas 价格的分布。比如 GasNow 就是一个比较常用的服务,现在很多钱包中都在使用这个来为钱包的用户提供 gas 价格建议。

如果你提交的交易不紧急,那么使用当前的平均 gas 价格就可以,如果需要提交紧急的交易,那么就需要设置更高的 gas 价格。

文 / Rayjun

相关文章

  • Gas 机制是如何运作的

    以太坊是目前第二大公链,它和比特币不一样,以太坊上的可以实现的功能更多,如果比特币是一个可以进行加减乘除的计算器,...

  • 自我观察——首先观察内在运作机制

    自我观察的首要任务是尝试观察自己的内在运作机制,观察各个机能如何运作,感知每个机能运作时所需能量的不同品质。 1、...

  • 生命的两种运行机制

    烦恼和痛苦是头脑运作机制下的产物,心灵运作机制下的状态里没有烦恼和痛苦。 放下头脑,心灵运作的机制便自然开启,只是...

  • 招聘可是头等大事

    「招聘是最重要的事情」--《Google 是如何运作的》 我们希望依靠良好的招聘机制,并配合优秀的团队氛围,以吸引...

  • 投射机制是怎么运作的?

    在投射机制下,我们会下意识地把自己的弱点转移到别人身上,就像是老电影放映机把图像投射到屏幕上一样,心理学层...

  • 书摘《为何家会伤人》

    1.借助心理学的理论,我们可以清晰地看到,中国家庭的那些机制,是如何运作又是如何伤人,而它又可以如何被改善甚至避免...

  • 心的运作机制

    识别→辨别→感受→习性反应 佛陀发现不管表象如何,事实上,每个人都是一连串前后不同,但相互关联的事件。每个事件都是...

  • 心灵的运作机制

    为了了解反应式心灵如何能在你不知情的情况下控制你,我们来看看催眠的情形。戴尼提并不是催眠,但显示催眠的运作,将证明...

  • 你是否有想过 当细胞缺乏营养物质或生长因子而生长停滞时。。。

    非编码RNA Gas5在细胞生长停滞和营养缺乏时抑制糖皮质激素受体活性文献影响因子:6.5 一、Gas5调控机制 ...

  • 管理领域的一般问题

    如何解决一个问题? 何时?何地?何人? 组织结构是怎样?沟通途经是怎样? 有什么制度?运作机制是怎样? 事情是什么...

网友评论

      本文标题:Gas 机制是如何运作的

      本文链接:https://www.haomeiwen.com/subject/bmlwoltx.html