织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

研究 | 解析降低以太坊 Gas 费的实践及优劣势(2)

时间:2021-04-09 16:09来源:未知 作者:admin 点击:
降低操作的 Gas 消耗 虽然以太坊区块的 Gas Limit 在增加,区块的承载量远超过去,但数据显示目前的转账数量刚刚与 2018 年初的转账数量持平,说明了以太

降低操作的 Gas 消耗

虽然以太坊区块的 Gas Limit 在增加,区块的承载量远超过去,但数据显示目前的转账数量刚刚与 2018 年初的转账数量持平,说明了以太坊网络中大部分资源被分配给了更复杂的合约交易。如果在合约编写上能够降低复杂度,减少合约执行所需要的 Gas,或者直接降低操作的 Gas 定价,就可以实现节约 Gas 费的目标,并且节约网络资源。

图 4:以太坊的每日转账数

以太坊的黄皮书规定了 Gas 的消耗规则,智能合约的编写过程中,同一功能的不同实现方式消耗的 Gas 会有所不同,为了节约 Gas 费就需要执行最节约 Gas 的代码实现方法。例如储存新数据和修改数据都要消耗 Gas,所以最好避免重复修改,一次性尽可能多地写入。在下图中,两者在结果上相同,但右边的代码实现消耗 Gas 会更少。

图 5:同一结果的两种代码实现,右边更节约 Gas除此之外,压缩智能合约的数据输入,避免创建智能合约时将其用作数据存储等方式也可以节约 Gas。有人提出操作消耗 Gas 的原始定价没有经过充分分析,存在定价不当的问题。以太坊中的 EIP 1380、EIP 2046 等提案就涉及降低某个操作的 Gas。但以太坊 Gas 定价的改变要慎重考虑,因为降低有些操作的 Gas 定价会降低重入攻击的难度。

EIP 1559EIP 1559 已经被纳入在以太坊的伦敦硬分叉升级中,它改变了以太坊网络 Gas 费的定价和分配规则。目前以太坊 Gas 费定价规则为市场竞价的方式,用户自行设置愿意支付的 Gas Price,矿工挑选支付最高 Gas Price 的交易打包。每个人都希望能尽快完成交易,因此在网络拥堵时 Gas 费会居高不下。EIP 1559 提出了一种新的 Gas 费收取方案,用户支付的 Gas 费分为基础费和小费,其中基础费直接销毁,小费归矿工收入。EIP 1559 方案引入了 Gas Target 的概念,区块 Gas 上限是 Gas Target 的两倍,基础费根据网络使用情况进行动态调节,也就是区块实际包含的 Gas 与 Gas Target 的比较。如果区块的 Gas 超过 Gas Target,那么下个区块收取的基础费就会上涨,反之如果低于 Gas Target 就会下降。上涨和下降的幅度不会超过 12.5%,避免了 Gas 费突然暴涨暴跌。由于基础费一直是动态调节的,如果连续多个区块包含的 Gas 一直超过 Gas Target,基础费就会指数上涨到夸张的价格,让用户不得不暂停交易,等待 Gas 降低到 Gas Target 以下,基础费才会下降。基础费是用户必须支付的,矿工的小费可选择支付,在网络使用率不高的情况下,基础费就可以让用户及时完成交易,没有必要支付矿工小费。如果网络拥堵,则需要支付小费优先交易。目前 Gas 费收取需要用户设定支付的 Gas Price,如果太低需要等待很久,太高则造成浪费。EIP 1559 的实施会提高用户使用体验,因为基础费是已经被计算好的,理论上支付基础费就能保证完成交易,用户只需要选择给矿工支付的小费,而且在不拥堵的情况下不需要给矿工小费。对于降低 Gas 费来说,EIP 1559 中没有很直接的体现,在不拥堵时用户只缴纳基础费于是避免了 Gas 费浪费。在网络拥堵时持续调高基础费没有让用户花费更少,而是通过不断涨价让人们面对高昂收费时不得不暂缓交易。因此很多人对 EIP 1559 的实施对降低 Gas 费的有效程度存疑,尤其是短期受到很大损失的矿工群体。但从长远看,销毁本来应该交给矿工的 Gas 费,能够将交易带来的价值引入到以太坊系统中,提升整个系统的价值也会提高矿工的收入。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容