EIP-1559前以太坊gas费是怎么算的?
在以太坊中,交易所需的gas费计算方式是:
TransactionFee=GasPrice×GasLimit
其中GasLimit代表你愿意为这笔交易支付的最大gas量,这通常取决于交易的复杂程度。GasPrice指的是Gas的价格,即你愿意为每个单位的gas所支付的ETH数量。
目前以太坊费用机制使用的是首价拍卖模式。用户需要向以太坊网络提交出价。每当生成一个新的区块时,矿工将把TransactionFee最高的那些交易打包进区块里。每一笔交易都会按照它的出价来支付gas费。
我们通常说的“支付更多的Gas费”意思是增加某笔交易的GasPrice以获得被打包的优先权。例如在Metamask中,有“慢”、“平均”和“快”这3个GasPrice选项供用户选择,用户通过这个选项支付更高的GasPrice来加快自己的交易被打包。
问题在于,用户与钱包都无法准确估计他们应该支付的gas费,事实上用户总在支付高于他们本应支付的价格,来确保交易的顺利进行。我们可以从下图中看出,ETH交易费的平均值一直高于它的中位数,并且当网络拥堵的时候差值尤其的大。
ETH交易费的平均数/中位数?(来源:CoinMetrics)
EIP-1559会改变什么?
EIP-1559可以称作是以太坊历史上最令人期待的提案之一。它对以太坊网络的交易费机制进行了很大改造,主要可以概括为:
引入弹性区块大小的机制,每个区块的最大GasLimit被提升至原来的2倍,矿工可以在网络拥堵的时候弹性地改变区块的大小。
原本单一的交易费被更改为固定费用加上小费的模式,固定费用是必须支付的部分,并且会根据上一个区块的Gas使用情况进行动态调整。且每个区块的固定费用部分都会被烧毁,不会给到矿工。
以太坊核心开发者会议:讨论EIP-4844和L2 EIP,预计接下来会议确定坎昆升级范围:5月12日消息,以太坊核心开发者 Tim Beiko 发推总结最新一次的执行层会议讨论内容,本次会议讨论大部分都集中在 EIP-4844 上,并对 L2 EIP 进行了一些简要讨论,以及 Cancun 整体计划。
MarioVega.eth 提出了一个关于区块有效性条件的问题,该条件由某些客户端隐式实现,但不是全部。我们同意将此作为明确的有效性条件。此外,Geth 团队正在增加对 c-kzg 和 go-kzg 的支持,以允许用户在遇到错误时轻松切换。会议还讨论了两个 EIP,其中一个包括 EIP-6969(在以太坊 L2 上引入 / 标准化 CSR 的提议)。Tim Beiko表示,希望在接下来的一两次会议中可以最终确定升级的范围。[2023/5/12 14:58:42]
弹性区块大小允许矿工动态扩张或缩小区块大小来处理暂时性的网络拥堵。有了EIP-1559之后,每区块的目标Gas限值还是15M,?但是最大Gas限值会从15M调整到30M。如果区块中使用的gas量比目标gas限值少,那么代表网络是不拥堵的,下一个区块的固定费用会降低。如果如果区块中使用的gas量比目标gas限值多,那么代表网络是拥堵的,下一个区块的固定费用会升高。我们会在下文仔细讲解这种机制。总的来说,交易量的波动原先会转化为交易费的波动,而如今转化为区块大小的波动。
区块拥堵程度(来源:IOSGVentures)
EIP-1559引入一种新的交易费用机制,来解决首价拍卖模型中的问题。每区块固定费用是“基础费用”,给矿工的额外的激励是“小费”。所以交易费变为:
TransactionFee=BaseFee+InclusionFee
进一步分解:
TransactionFee=BaseGasPrice×GasLimit+InclusionFee
以太坊JavaScript库Ethers.js提出EIP-3540:EOF v1:4月7日消息,以太坊 JavaScript 库 Ethers.js 提出 EIP-3540:EVM Object Format (EOF) v1,目前正在审查中。EIP-3540 为 EVM 字节码引入了一种容器格式,使分离代码和数据更加干净;允许根据平台规则在部署时验证字节码;支持更轻松引入新的突破性更改功能。[2022/4/7 14:09:51]
BaseGasPrice代表每个区块的BaseFee里的Gas的单价,每个区块的BaseGasPrice是固定的,而且价格高低由前一个区块的拥挤程度来决定,
BaseGasPrice=PreviousBaseGasPrice?×?(1+k?×CongestionLevel)
其中CongestionLevel代表区块的拥挤程度,PreviousBaseGasPrice代表上一个区块的BaseGasPrice。k是调整速度系数,0<k<2。而根据EIP-1559的初始设定,k=1/8。拥挤程度会根据每区块中使用的gas量是否大于目标gas限值来决定。
CongestionLevel=(PreviousBlockGas/UsedTargetGasUsed-1)
总结来说,我们可以看到,
0.875×PreviousBaseGasPrice≤BaseGasPrice≤1.125×PreviousBaseGasPrice
假设gas限值相同的情况下,
0.875?×PreviousBaseFee≤BaseFee≤1.125?×PreviousBaseFee
当网络拥堵时,每过一个区块后BaseFee最多会增加12.5%,BaseFee不断增加直到用户因为交易不再盈利而减少交易,所以这种机制可以缓解拥堵的网络;当网络不拥堵的时候,每过一个区块后BaseFee最多会减少12.5%,BaseFee的下降激励用户增加交易。
Fairyproof:V神的EIP-4844提案中两个内存池问题需得到解决:3月29日消息,Fairyproof今日发布关于V神提出的EIP-4844提案研究报告,报告称,此EIP在以太坊客户端和汇总解决方案的实施中引入了重大变化,虽然可能不会引入明显的漏洞,但是新引入的blob交易可能会导致两种内存池问题。第一个是blob交易具有可变的内在GAS成本,这会使内存池受到攻击,因为交易可能有资格被包含在一个区块中,但可能没有资格被包含在下一个区块中。为防止此类攻击,该EIP建议仅广播“gas至少为当前最小值的两倍”的交易,以大大增加合法交易被包含在区块中的机会。第二个是blob交易在内存池层具有较大的数据量,这会使内存池暴露于DoS攻击。该EIP建议将“mempool替换的最小增量从1.1倍增加到2倍”以增加攻击者的成本,从而减少其攻击尝试。就安全性而言,开发人员必须在代码中解决这些问题。此外,报告称,用户应该注意,这两项建议是为了应对对内存池的攻击,如果它们被实施,则意味着如果非恶意用户希望交易得到及时处理,需要支付符合这些建议的Gas费用。此前消息,以太坊V神提出新的分片建议:EIP-4844。[2022/3/29 14:24:34]
小费是用户付给矿工加速交易用的。小费是可选项,可以设置成零。矿工仍然用首价拍卖模式来优先选择有更多小费的交易来打包进下一个区块。
通胀还是通缩?
以太坊每年的通胀率为4%,每个区块会铸造2个ETH作为固定区块奖励。在EIP-1559中,BaseFee里的ETH都会被烧毁,这会对ETH的价格产生通缩压力。
区块奖励分解(来源:IOSGVentures)
伦敦升级和EIP-1559提案已经在区块高度10499401部署在了Ropsten测试网。目前社区正在观察EIP-1559的表现,以及gas费会怎么变化。最近,许多文章和评论都刊登了http://watchtheburn.com/这个网站的截图,这个网站在监测有多少ETH被BaseFee燃烧掉。
以太坊社区提议将EIP-3651纳入上海升级:以太坊社区提议将EIP-3651纳入上海升级。据悉,该EIP由以太坊开发者William Morriss提出,拟将“COINBASE”地址由冷地址变为热地址。“COINBASE”地址在交易执行开始时应为热地址,根据读取该帐户的实际成本。目前,直接“COINBASE”支付正变得越来越流行,因为它们允许有条件支付,这提供了诸如隐式取消交易的好处。但是访问“COINBASE”价格过高;该地址最初在EIP-2929中引入的访问列表框架下是冷地址。这种gas成本不匹配可以激励除ETH之外的替代支付,例如ERC20,但ETH应该是支付以太坊交易的主要方式。[2021/7/19 1:01:14]
Ropsten测试网上烧毁的ETH?(来源:watchtheburn.com)
截至目前,从区块高度10499401到10512250,总共烧掉了88571个ETH。也就是说在12859个区块中燃烧了88571个ETH,同时有2*12859=25698个ETH被铸造。这意味着ETH确实因为EIP-1559变得“通缩”了!
但是EIP-1559在以太坊主网上线后也会是这个结果吗?我们觉得不会。
我们认为在Ropsten上之所以燃烧了这么多的ETH,是因为网络有许多不寻常的连续的拥挤的区块,这些拥挤的区块将BaseGasPrice推到很高,并且持续了很长一段时间。一个很好的证明是区块高度10503157到10504352,BaseGasPrice从98.45Gwei增加到了82851Gwei,在1195个区块中增长了841倍。
Rospten测试网中区块高度为10499401到10506825的基础费用价格(来源:IOSGVentures)
豆瓣音乐合伙人张宇宸:区块链技术在确权领域并不是万能的:近日,豆瓣音乐产品合伙人兼音乐版权管理平台V.Fine执行副总裁张宇宸表示,区块链技术并不能完全解决确权领域的所有问题。例如,在帮助音乐版权方监控流媒体平台时,可能会发现流媒体上有很多未经版权方授权的音乐。音乐版权确权痛点还需要更多技术手段来合力解决。[2018/5/3]
这种情况很特殊,更像是开发者在测试网上做的极端测试。
主网上线后不会出现相同的情况,因为逐步提高的BaseFee会迫使需求不那么强烈的用户不进行转账,进而把区块大小恢复到目标大小,从而降低BaseFee。
以太坊社区的@barnabemonnot做的模拟展示了BaseFee到达一个峰值之后可能的走势??
BaseFee模拟(来源:@barnabemonnot)?
我们预测当主网高度拥堵的时候,一个常见的规律会是几个大型区块后紧接着几个小型区块。高度拥堵的情况不会超过5分钟,以太坊还是会通胀但是通胀率相对较低。
交易费会下降吗?
EIP-1559主网上线之后,交易费会下降吗?是的,我们认为虽然降低交易费并不是EIP-1559提案的最终目的,但是它确实会降低以太坊网络的交易手续费。
首先,因为交易费被分为了BaseFee和小费两部分。过去人们增加gas单价来加快交易被打包确认,整个交易费被增大。而现在改成通过增加小费来加速交易被打包,这并不会影响到BaseFee,BaseFee仍然只是反映着网络的拥堵情况,小费则反映着用户对交易能否成功的紧急程度,这两个部分不会再混在一起了。因此用户更清楚自己至少需要出多少交易费,用户变得更加理性后会减少过度竞价,这样就能让gas费降下来。
GasFee分解(来源:IOSGVentures)
第二,可变的区块大小可以在交易量大的时候作为缓冲,把gas费的波动转化为区块大小的波动。所以当交易量激增时,gas费会比以前上涨得缓慢。
最后,EIP-1559上线之初BaseGasPrice会被设置为1Gwei,相较于最近20+Gwei的gas价格,这会在刚上线的时候把gas费短暂地拉低。
另一方面降低gas费并不是EIP-1559的目的。它的目的更多的是想要让gas费的变化变得更加平稳,减少用户过度竞价,并且让gas费有更高的可预测性。
钱包和用户会怎么样呢?
钱包对gas费不再是估算而是精准计算,因为现在可以准确计算出下一个区块的BaseGasPrice了,用户对交易费用的数额有更清楚的认知。钱包会显示下个区块的BaseGasPrice,并且允许用户设置小费来加快打包。
钱包开始设计新的UI模板,以下是Metamask和Status的模板。
钱包页面模拟(来源:@tvaneppsfromHackMD)
对用户来说,最大的不同就是他们不再需要猜测交易费用的高低,他们不用去猜测自己付的交易费够不够高,能不能被打包进区块;或者自己付的交易费用够不够低,有没有白白多支付费用。现在BaseFee就像一个定价销售,用户只需要决定是否能够接受这个定价。
用户可以根据下一个区块的BaseGasPrice来设置一个BaseGasPriceCap,即用户愿意支付的最大BaseGasPrice。这么做的原因是当用户进行支付时,可能已经有新的区块生成因此BaseGasPrice发生了改变,而如果用户设置一个稍微高一点的BaseGasPriceCap就可以让他的交易在接下来的几个区块里被顺利打包。BaseGasPriceCap和交易被打包区块的BaseGasPrice的差额是会被退回给用户的。
这就是说,即使用户高估了下一个区块的BaseFee,然后设置了一个过高的BaseFeeCap,他也不会过度支付BaseFee。例如下个区块的BaseGasPrice是200Gwei,而用户设置的最大gas价格是300Gwei,如果交易是被下一个区块打包的,那用户还是只需要按照200Gwei的gas价格来付费!这是一个对用户友好度的大改进!
矿工会怎么样呢?
毫无疑问,一些矿工会认为EIP-1559是一个坏消息。原本所有交易费都归矿工所有,而现在只剩下小费会给到矿工,而BaseFee的部分会被烧毁掉,因此矿工们将会失去部分收入。
区块奖励流出方向对比?(来源:IOSGVentures)?
毫无疑问,一些矿工会认为EIP-1559是一个坏消息。原本所有交易费都归矿工所有,而现在只剩下小费会给到矿工,而BaseFee的部分会被烧毁掉,因此矿工们将会失去部分收入。对于MEV而言,矿工在EIP-1559后仍然有调整交易在区块中的顺序的能力,所以MEV的基本面保持不变。
下图是Flashbots基于MEV占比的矿工收入明细。我们假设对于一个非MEV交易,BaseFee通常会比小费多很多,所以下图中大部分的橙色区域会被烧毁,小部分因为小费的存在而留下;而对于矿工MEV收益的部分,大部分MEV收益是来自于Flashbots里的searcher支付的打包费,和矿工通过往区块里混入自己的交易得到的收益。被烧毁的BaseFee和前两个部分相比十分小。所以下图中大部分的绿色区域会保留,大部分的MEV收益仍会被捕获到。
矿工利润分解?(来源:Flashbots)
从长期前景来看,EIP-1559给ETH带来通缩压力;ETH的价格升值最终会让矿工受益。如果矿工在ETH数量上损失了25%,但ETH价格上涨了35%,矿工的美元收入仍然是不变的。
也有提案是说,与其烧掉所有的BaseFee,不如将其中的一小部分与矿工分享。总而言之,所有这些都可以根据EIP-1559的表现进行协商和调整。
EIP-1559会对Flashbots的使用有影响吗?
Flashbots的用户是通过EIP-1559引入的新费用机制竞拍还是继续使用Flashbots呢?新费用机制的小费部分似乎可以用于竞拍。
Flashbots提供的一个重要的功能叫做pre-tradingprivacy,交易只有在被打包进区块之后才会被公开。Flashbots使用首价密封投标拍卖的方式,所有用户同时提交密封的交易包以及竞价,没有竞拍者会提前知道其他人的交易包的内容和所出的竞价。所以用户不用担心被抢先交易,因为他的交易是全程被密封着的。
因为无法提供pre-tradingprivacy,所以EIP-1559不能代替Flashbots。假设套利者提交了一个能够盈利$100的交易进入内存池,并附上有90$的小费。这个交易在进入池子的时候就会被公开,其他套利者可以复制他的交易,并且提交一个新的有更高小费的交易,比如带有$95的小费的新交易。于是新的交易会被打包进区块,原来的套利者就因为被抢跑而失去了套利机会。EIP-1559没办法改变这种情况,无法给用户提供抢跑保护。
没错,即使在EIP-1559上线之后,以太坊用户还是会大量使用Flashbots,来寻找进入区块无风险入口以及抢跑保护。
结论
EIP-1559引入了新的gas费机制,用BaseFee+小费的模式代替了单一的费用机制。以太坊区块大小具有了弹性,由此将gas费的变化转嫁为区块大小的变化。在EIP-1559上线后,以太坊网络的交易费会变的更低并且有更大的可预测性;ETH仍会是通胀的状态但是通胀率会降低;以太坊网络拥堵的情况会得到缓解;用户体验度会得到提升。这些改变会大大提升以太坊的可用性,并让更多的用户最终向以太坊倾斜。
虽然矿工短期会损失一些收益,但是长远来看最终会享受到以太坊价格上涨带来的更多收益。矿工依然拥有调整区块中交易顺序的自由,所以MEV的基本面并没有被改变,但由于BaseFee的燃烧,矿工在MEV方面的收益会相应减少;EIP-1559不能代替Flashbots提供pre-tradingprivacy的功能,所以需要防止交易被抢跑的用户仍然需要使用Flashbots。
EIP-1559已经在Ropsten测试网上线,之后会陆续登陆Goerli、Rinkeby和Kovan等测试网。在测试完备后,EIP-1559预计会在7月底进行主网上线。?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。