主页 > imtoken苹果地址 > Science:为什么以太坊 Gasdfss 费用突然暴跌?

Science:为什么以太坊 Gasdfss 费用突然暴跌?

imtoken苹果地址 2024-01-12 05:12:03

前言:4月25日数据显示,以太坊Gas费下降约50gwei,创2021年以来新低。此前,由于Gas费持续上涨,链上手续费一度逼近1500gwei。近期,以太坊的gas费暴跌,可能与以太坊区块Gas Limit的增加有关。 4 月 22 日,以太坊将区块 Gas Limit 从约 1250 万 Gwei 提高到 1500 万 Gwei,增幅约为 20%。那么哪些因素会影响以太坊的gas费用呢?这篇文章会给你答案。

注:本文首发于2020年9月23日,部分数据为当前数据。阅读时请注意,截至今天发布的数据可能已发生重大变化。

作者:0x88,节奏 BlockBeats

当 Uniswap 向超过 200,000 个用户地址分发资金时,也许很多人高兴地认为,“这也是 gas 费也太高了。”

那一天是以太坊历史上值得纪念的一天,gas提案最高达到1000 GWEI,是当时的历史最高点。

在见证历史和全民空投的上午,很多人都遇到了gas费的问题。汽油费不是问题。问题是建议的最高gas费也支付给了钱包。无法在计划时间内出售。大家的Metamask都显示挂了,转身很烦。

为什么你使用默认的gas费用金额,但还是不能即时交易?本文将详细讲解以太坊的交易费率机制以及在以太坊上发起交易时遇到的问题。

气体的逻辑

这应该从以太坊帐户开始。

以太坊网络中有两种类型的账户,外部拥有账户和合约账户。

外部帐户是用户使用并由私钥持有者控制的帐户。合约账户是指具有应用逻辑的智能合约,由合约代码控制(通常为项目方所有)。用户在使用 DeFi 应用时,是在使用自己的账户与 DeFi 项目的智能合约进行交互。

各类账户可以自由交互,钱包之间可以转账,合约也可以互相调用。每个链上交互都需要一定的计算量。消耗的计算量由计算的难度决定,Gas 是计算的计量单位。比如加法比较简单,需要3个Gas,除法比较复杂,需要5个Gas。

每个单位的Gas都有对应的价格,即Gas Price? (Gas 价格),Gas 价格以 Wei 为单位。用户需要购买 ETH 来支付 gas。 1 ETH=1e18 Wei,而我们平时看到的单位 GWei 是 1e9Wei。通常,钱包软件会通过历史gas价格来估算用户发起交易的成本。

为了避免所有节点的集中,追求去中心化的区块链会严格限制每个单个区块的容量。例如,比特币的区块大小限制和以太坊的区块气体限制。在撰写 BlockBeats 时,以太坊每个单个区块的 Block Gas Limit 约为 12,000,000 Gas,这是每个区块总计算量的上限。平均而言,每 15 秒产生一个块。当交易需求超过区块容量时,用户需要在每个区块中争夺资源,以使他们的交易尽快在链上得到确认。此时用户会对gas进行竞价,矿工会优先将gas价格高的交易纳入区块。

通常用户还会看到钱包在进行转账时会增加调整 Gas Limit 的选项。与 Block Gas Limit 不同,Gas Limit 是指用户在一笔交易中可以接受的 Gas 使用上限。由于有时合约可能存在漏洞,因此一笔交易将被无限循环计算。如果没有 Gas Limit,交易将消耗用户钱包中的所有 ETH。通常矿工收取的费用是根据交易实际执行时消耗的计算量(Gas Used by Transaction)结算的,Gas Limit中剩余的ETH会退回到用户账户。

所以我们可以得出结论,消耗的ETH数量(Ether Cost)=交易费用(Gas Fee/Transaction Fee)=每笔交易消耗的Gas数量(Gas Used By Transaction)* Gas​​价格(Gas Price )。

了解以太坊的收费机制和账户类型,我们来看看用户在交易时经常遇到的问题。

待处理/加速交易?

每当用户发起一笔交易时,该笔交易都会被放入一个交易池(Mempool)中。如上所述,矿工将优先考虑矿池中gas价格最高的交易(矿工逐利)。因此,用户设定的 Gas Price 决定了交易打包执行的速度。当网络拥塞时,由于gas价格飙升,用户的交易可能会长时间等待确认。为了尽快发送待处理的交易,用户可以选择支付更多的 Gas Price 以加快交易速度(节奏注:理解为给矿工更多的报酬,以达到切队的目的)。

加速交易如何运作?为了更详细地理解加速交易的逻辑,我们需要了解另一个参数:Nonce。账户发送的每笔交易都会有一个连续的交易编号——Nonce,从0开始。每次发起转账,账户的Nonce值都会增加1。

当用户想要加速交易时,在以太坊钱包中,用户可以选择加速交易选项,则需要支付更高的Gas Fee,用户同意后,相当于发起了一个新交易,新交易与待确认交易具有相同的Nonce值。

由于以太坊网络的规定,Nonce 值是连续的,不可跳跃的,同一地址的每笔交易的 Nonce 值不能重复,所以矿工会打包新生成的交易,交易打包确认后,之前的 Gas Price 较低的交易将被丢弃。

如果用户不想加速交易,只要交易没有被打包到交易池中,用户可以随时选择取消交易。取消交易的逻辑与加速交易相同。用户发起一笔 Gas Price 较高的交易,但与待确认的 Nonce 相同,但交易金额变为 0,所以本质上取消交易的成本与加速交易的成本相同。成本。

需要注意的是,在待处理的交易被确认之前,后续的交易需要排队等待,所以用户不要因为等待时间长而重复发起多笔交易。

交易失败(失败)

Rhythm BlockBeats 发现,交易失败最常见的原因是交易 Gas 已经耗尽(Out of Gas)。也就是说,这笔交易的计算量超过了用户设置的 Gas Limit。一般这种情况下,交易状态会显示为失败,表示gas已用完,支付的gas不予退还。

有些用户可能会认为这不公平,但本质上矿工已经在做功计算了,但是一半的gas还不够,所以矿工只能放弃继续工作,但之前的工作需要被支付“薪水”,所以之前支付的gas费没有退还大概是可以理解的。在这种情况下,用户只能再次发起交易,并提高该交易的 Gas Limit。

另一种交易失败的情况是,当用户向智能合约发起交易转账,但由于一些错误导致合约无法执行,交易会返回Bad Instruction。

例如,当用户参与众筹活动时,可能会出现以下情况:

配额已满;

或用户未列入白名单;

或用户超额认购代币等

此时用户设置的Gas Limit将被用完,导致交易失败。

但是,在以太坊的拜占庭硬分叉之后,新增了一个算子Reverted(EIP-140)。当合约出错导致交易失败时,交易不会耗尽gas for所有由Limit设置的Gas,合约将停止执行并退还剩余的Gas费用,并告知用户错误原因。

当然,如果用户钱包里的ETH数量不足以支付Gas费,交易也会被判定为失败。

没有热点的时候,以太坊网络是安宁的,所有的转账成本,包括时间和金额,都是可控的,但是风来的时候,大家都会遇到网络上的问题。说到各种问题以太坊价格行情,gas费的逻辑是新手使用钱包的最大障碍。

这篇文章基本上涵盖了gas费用会遇到的所有问题,而且链上交易并不复杂,简单来说,如果操作有问题,可以通过加钱来解决。

目前看来以太坊价格行情,以太坊上流动性挖矿的热潮暂时告一段落。除了泡沫之外,更多的用户已经习惯了使用钱包,钱包也终于成为了一种高频工具。

其实,链上交易的问题也为钱包的优化提供了空间。提供“一键加速”、“一键取消”等服务的新人,可能会在越来越多的钱包中看到。