eip1599 以太坊gas新提案

以太坊的gas机制比较复杂。

在gas机制中,定义了如下一些参数,来维系整个gas体系的运行。

1)gas 参数

 

gas price,燃料单价。这个就是报给我们矿工的燃料单价,在案例中我们报了1毛每gas的价格。这个gas price报的低没有矿工愿意打包交易,报的高打包快但我们总成本高。实际报价是以以太币来报价,你如果打开钱包软件imtoken,在转账的高级选项中会有gas price设置,会以太币的单位gwei进行报价。1个以太币=10的9次方gwei。

gas limit,燃料限额。这是我们愿意出的燃料限额,要高于实际花费,反正没用完能退。定的太低就悲催了,用了钱却退回初始状态。

gas fee,燃料开销。这就是我们执行的代码实际需要花销的燃料,如果我们执行的代码需要燃料开销gas fee是10万gas的话,那么我们设定的燃料限额gas limit 要大于我们的代码的燃料开销gas fee,例如设置成20万gas。如果小于实际需要的gas就是最悲残的情况,花了gas但恢复初始状态。

gas used,使用过的燃料:这是我们已经使用过的燃料。当一段路走完,使用过的燃料gas used应该是等于燃料开销 gas fee ,并小于燃料限制gas limit 。

gas cost,燃料代价。就是我们做一步操作的代码,例如加法3个gas,转账21000gas,创建账户3200gas。

我们在整体串一下gas机制的运作过程

 

  1)对你需要执行的代码进行报价,gas price,并设定最大愿意支付的燃料限制gas limit。

  2)如果报价过低,没有愿意打包的矿工,你的代码不会被执行,你也没有损失。

  3)如果报价合理或偏高,矿工将为你打包执行的代码,并放入待执行的序列中。

  4)当以太坊执行你的代码时,每一步操作都有燃料代价gas cost。所有的燃料代价gas cost累计起来就是需要执行任务的总花费:燃料开销gas fee。

  5)当我们的燃料限额gas limit合理,也就是说大于需要的燃料开销gas fee时,代码执行完成之后,燃料限额gas limit减掉使用过的燃料gas used后,剩余的gas退回你的账户。如果燃料限额设置太低,小于燃料开销,则消耗完燃料之后,代码回归到初始状态。这也就是多退少没有办法补。


而这套机制目前存在什么样的问题呢?

最主要的问题就是大家没有办法估量自己所需要花费的燃料费用。因为燃料费用完全是一个不透明的竞价机制。这就意味着有可能不会提供一个最佳的燃料费用。也就是说自己报的费用有可能太高了,浪费。也有可能太低,导致打包延迟。对工作完成时间也不太好预估。下面一张图是以探访历史交易费用。

图片发自App

所以Eric Conner 提出EIP1599提案来尝试解决这种问题。

这套方案核心,就是设定一个基本交易费用(BASEFEE amount)。这个基本交易费用由系统来进行设置,所以它会相对精准。为了担心矿工自动发起交易来提高这个基本交易费用,所以这个基本交易费用是燃烧掉,不会给矿工。

矿工真正的收益在于小费。也就是说,原来矿工的收益在于用户支付的燃料gas,而新的方案在于用户需要支付的是基本交易费用加上小费。基本交易费用将会被燃烧,可以理解为被系统收税。小费是支付给矿工。


这套方案同时建议把原来的美区块最大限额从800万GAS改为1600万GAS。

协议提案者认为,这种对交易费用体系进行的升级将对以太坊平台及其用户带来如下裨益:

节省高达 90% 的交易成本费用


通过实现交易费用竞价体系的自动化,这将极大地改善用户体验


为高级用户提供一个可以预测的交易费用体系


减少确认交易的预期等待时间


允许用户即便在网络拥堵的情况下也能够“插队”


即便交易费用是主要的奖励来源,这种方式也能抑制自私挖矿 (selfish mining)


在协议层面巩固 ETH 的经济价值

你可能感兴趣的:(eip1599 以太坊gas新提案)