执行以太坊智能合约需要的“钱” —Gas

今天新探君在Cryptoslate上面看到一篇名为“以太坊网络拥堵导致Gas费用加倍,dApps在24小时内收入达750万美元”的文章,文章主要讲了由于在线论坛的大量游戏的病毒式流行使Gas费用急剧增加,以及以太坊区块链是否适合大规模交易

Gas费用加倍?可能对于一些刚接触区块链、币圈的人来说,对Gas的存在简直是一头雾水。今天既然提到了Gas,新探君就简单给大家讲Gas,好让小白也可以明明白白的活在币圈

讲到关于执行以太坊智能合约时的消耗品“Gas”,不得不先给大家来介绍一下智能合约

智能合约

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约的目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本

智能合约是1994年由Nick Szabo提出的理念,几乎与互联网的提出时间相差无几。由于缺少可信的执行环境,智能合约并没有被应用到实际产业中,自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以太坊首先看到了区块链和智能合约的契合,发布了白皮书《以太坊:下一代智能合约和去中心化应用平台》,并一直致力于将以太坊打造成最佳智能合约平台,所以比特币引领区块链,以太坊复活智能合约

智能合约就像朋友间的约定,只是这个约定被以代码的形式表现了出来,智能合约一旦完成吗无论如何都无法被编辑或者修改。所以,智能合约中有何约定都会被执行

那么问题来了合约的执行需要“钱”嘛?你吃别人的东西不给钱,人家会白给你嘛!

Gas

"Gas"就是让以太坊智能合约可以执行下去的“钱”。交易是按照只能合约的规定按部就班的执行下去的,每执行一个命令就会有一定的“钱”被消耗,这个“钱”用Gas做为单位,不同命令消耗的Gas数量不同

Gas是交易中计算交易费的单位,最终交易费是多少还是用"钱"来表示更直观

交易费 = gasUsed(该交易消耗的总gas数量) * gasPrice(该交易中单位gas的价格,用ETH计算)

如一笔交易的交易费是0.001ETH,那么这个0.001ETH就是gasPrice

每笔交易都被要求包括一个Gas limit(有的时候被称为startGas)和一个愿为单位Gas支付的费用。其中Gas limit是这笔交易允许的最大的消耗Gas的数量,可以理解为交易服务本身的服务费;而愿为单位Gas支付的费用,可以理解为小费

无论你何时执行智能合约,你必须确定这笔交易允许的最大消耗Gas的数量(即Gas limit或称startGas),Gas limit可以理解为交易时候必要的服务费。除此之外还有一个愿为单位Gas(可以理解为交易时的小费)当合约执行完成之时,或是达到Gas限制之时,都会停止执行该合约。这么做是为了避免智能合约陷入无限循环之中,以防该程序反复执行一组语句,而不继续执行其他合约

矿工有权利选择先打包哪一笔交易,支付的交易费越多矿工就越快“接单”,交易确认的速度也会越快。Gas limit是一笔交易最多需要的交易费,交易费一般不会超过这个值,若交易完成后没有用完Gas limit数量的Gas,那么多余的Gas会以ETH的方式返还给你。如果你想让交易更快的被打包完成,这就涉及到了愿为单位Gas,也就是交易中多给的小费了。所以想要更快打包的交易所需实际消耗的Gas(Gas limit+愿为单位Gas)可能超过Gas limit(交易的Gas limit不一定会都被用光,所以Gas limit+愿为单位Gas可能大于、小于、等于Gas limit)

Gas确保了交易了一定的费用给以太网络。执行的每个交易都被要求支付相应的费用,这样才能确保网络不会因为进行大量密集的工作而陷入瘫痪(这就是开头文章中以太坊拥堵为什么会造成Gas费用加倍的原因)

今天所介绍执行智能合约所需的Gas和下面的Gas币并不相同~

顺便给大家简单介绍一下Gas币

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180521G1HTQ100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券