使用“扫一扫”即可将网页分享至朋友圈。
为什么我钱包里还有ETH 但交易就是确认不了?
在 Uniswap 给 20 多万个用户地址撒钱的时候,也许不少人在开心之余心里想的都是,「这 gas 费也太高了。」
当天是以太坊历史上值得纪念的一天,gas 建议最高达到了 1000 GWEI,这是历史最高点。
在见证历史、全民领空投的当天上午,不少人都遇到了关于 gas 费的问题,gas 费贵已经不是问题了,问题是 gas 费交到钱包建议的最大值也不能在计划时间内成交。大家 Metamask 上显示都是 pending,一圈一圈转得让人心烦。
为什么你使用了默认的 gas 费金额,却依然不能即时交易?。此文将详细讲解以太坊交易费率机制以及在以太坊上发起交易会遇到的问题。
Gas 的逻辑
这个事要先从以太坊账户讲起。
以太坊网络中有两类账户,外部账户(Externally Owned Account)以及合约账户 (Contract Account)。
外部账户是指用户们所使用的账户,由私钥持有者所控制。合约账户是指带有应用逻辑的智能合约,由合约代码所控制(往往是项目方所有)。用户们在使用 DeFi 应用时,就是在用自己的账户与 DeFi 项目的智能合约进行交互。
各类账户之间可以随意进行交互,钱包间可以进行转账,合约间也可以相互调用。每一次链上交互都需要消耗一定的计算量,计算量消耗的大小由计算难度所决定,而 Gas 就是计算量的计量单位。例如加法运算较简单,需要消耗 3 个 Gas,除法运算相对复杂,需要 5 个 Gas。
每一单位的 Gas 都有其对应的价格,也就是 Gas 价格 (Gas Price),而 Gas 价格以 Wei 为单位。用户需要购买 ETH 来支付 Gas 费用。1 ETH=1e18 Wei,而我们通常看到的单位 GWei 为 1e9Wei。通常,钱包软件会通过历史 Gas Price 对用户将要发起的这笔交易的费用进行预估。
为了避免全节点趋于集中,追求架构去中心化的区块链会严格限制每单个区块的容量。例如比特币的 Block Size Limit 以及以太坊的 Block Gas Limit。在律动 BlockBeats 撰文时,以太坊每单个区块的 Block Gas Limit 约为 12,000,000 个 Gas,这也就是每一区块总计算量的上限。平均每 15 秒出一区块。当交易需求超过区块容量时,用户为了将自己的交易尽快被上链确认,就需要竞争每一区块内的资源。此时用户会对 Gas 进行竞价,矿工会优先将 Gas Price 高的交易纳入区块。
通常用户在进行转账时还会看到钱包会提高可以调节 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)。
了解了以太坊的手续费机制以及账户类型,我们来看看用户在交易时时常会碰到的问题。
待确认交易 (Pending)/加速交易?
每当用户发起一笔交易时,交易会被放入一个交易池 (Mempool) 中。如上文提到,矿工会优先打包池子中 Gas Price 最高的交易(矿工的趋利性)。所以用户设定的 Gas Price 决定了交易被打包执行的速度。在网络拥挤的时候,由于 Gas Price 飙升,用户的交易可能长时间处于待确认状态。为了尽快将待定交易发出,用户可以选择支付更多的 Gas Price 来加速交易(律动注:理解为给矿工更多的酬劳以达到一个插队的目的)。
加速交易又是怎么操作的呢?为了更加详细地理解加速交易的逻辑,我们需要明白另一个参数:Nonce。每一个账户发出的交易都会有一个按顺序排列的交易编号--Nonce,从 0 开始,每次发起一笔转账,该账户的 Nonce 值会增加 1。
当用户想要加速交易时,在以太坊钱包中,用户可以选择加速交易选项,这时会被要求支付更高的 Gas 费用,用户同意之后相当于发起了一笔新的交易,而新的交易与待确认交易的 Nonce 值相同。
由于以太坊网络规定,Nonce 值是连续不可跳跃的,且同一个地址每笔交易的 Nonce 值不可重复,所以矿工会打包新生成的交易,在新交易被打包确认之后,之前较低 Gas Price 的交易会废弃掉。
若用户不想加速交易,只要此交易还在交易池中未被打包,用户可以随时选择取消交易。取消交易的逻辑与加速交易相同,用户发起一笔 Gas Price 更高,但与待确认交易 Nonce 相同的交易,但交易金额变为 0,所以本质上,取消交易的成本与加速交易的成本一样需要成本。
需要注意的是,在待定交易确认完成之前,后面的交易都需要排队等候,所以用户不要由于等候时间过长重复发起多笔交易。
交易失败 (Fail)
律动 BlockBeats 发现,目前最常见的交易失败原因是交易 Gas 已用尽 (Out of Gas)。也就是说,这笔交易的计算量超过了用户所设定的 Gas Limit。一般在这种情况下,交易状态将会显示为失败,并提示 Gas 已用尽,并且所支付的 Gas 不会被退还。
有些用户可能会认为这并不公平,但本质上矿工已经在做功计算,只是算到一半 Gas 不够了,所以矿工只能放弃继续作业,但之前的工作需要被支付「工资」,因此之前交的 Gas 费不退大概也可以理解了。遇到这种情况,用户只能重新再发起一次交易,并将此交易的 Gas Limit 上调。
另一种交易失败的情况是,当用户向智能合约发起交易转账,但某些错误导致无法执行合约时,交易会返回 Bad Instruction。
比如,当用户参与类似于众筹活动时,可能会发生下面这些情况:
额度已满;
或用户未被列入白名单;
或用户超额认购代币等情况。
此时,用户所设置的 Gas Limit 将会被全部用尽,最终导致交易失败。
不过以太坊拜占庭硬分叉后,增添了新的操作符 Reverted (EIP-140)。当合约中出现错误导致交易失败时,交易将不会耗尽 Gas Limit 所设定的所有 Gas,合约将停止执行并退回剩余 Gas 费用,同时告知用户错误原因。
当然,如果用户钱包中 ETH 的数量不足以支付 Gas 费用时,交易也会被判定为失败。
在没有热点的时候,以太坊网络一片祥和,所有的转账成本,包括时间和金额都还可控,但当风口到来,大家在网络中就会遇到各种问题,gas 费的逻辑是新人使用钱包时最大障碍。
基本上,在 gas 费会遇到的所有问题,这篇文章都覆盖到了,链上交易并不复杂,说简单点,一切操作有问题,加钱就可以搞定。
这场运动目前看来,以太坊上流动性挖矿的热潮暂时告一段落,这场运动除了创造出一片泡沫之外,也让更多用户开始习惯钱包的使用,钱包终于成了一个高频使用工具。
而链上交易发生的问题其实也在为钱包的优化提供空间,为新人提供「一键加速」、「一键取消」这样的服务或许将可以在越来越多的钱包中看到。
“广东财经网”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服邮箱1098101642@qq.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
- 声音提醒
- 60秒后自动更新
【民政部回应何时恢复婚姻登记】民政部社会事务司二级巡视员杨宗涛表示,婚姻登记场所是人群聚集场所,部分地区暂停婚姻登记工作是对人民群众安全负责。未停止登记的地方推广用电话、网络、qq群预约登记,控制登记人数,分批分段登记,减少人员聚集和在登记机关停留时间。已停止婚姻登记地方将根据当地疫情控制情况逐渐恢复。
15:54欧洲央行副行长金多斯:欧洲央行还没有达到逆转利率。宽松政策的副作用更明显了。
15:54财经网站Forexlive分析师Justin Low评瑞士1月CPI月率:尽管通胀年率保持稳定,但核心通胀率有所下降,这一点令人更加担忧。这只是进一步巩固了瑞士央行维持现有货币政策不变,并可能在未来寻求更多宽松措施的观点。
15:54【武汉两大批发市场商户开业率超过80%】商务部市场建设司司长朱小良10日称,目前武汉生活必需品供应基本正常,除冷鲜肉、鲜叶菜等少数品种存在结构性短缺外,大部分重要生活物资供应充足,未发生明显抢购或脱销断档情况。当地白沙洲和四季美两大批发市场正常营业,商户开业率超过80%,日交易量上升至3000吨以上。(国是直通车)
15:53【日本2019年经常项目顺差增长4.4%】日本财务省10日发布的国际收支初步统计报告显示,主要受外国人入境游消费扩大影响,2019年日本经常项目顺差增长4.4%。报告显示,2019年日本经常项目顺差为20.06万亿日元(1美元约合109.8日元)。其中,商品贸易方面,由于液化天然气价格下跌等因素,进口下降5.6%至75.56万亿日元;由于汽车部件及钢铁等产品出口减少,出口下降6.3%至76.12万亿日元。货物贸易顺差减少53.8%,为5536亿日元。(新华社)
15:53欧元兑美元EUR/USD短线波动不大,现报1.0952。
15:53瑞士1月CPI年率:0.2%,前值:0.2%,预期:0.1%;瑞士1月CPI月率:-0.2%,前值:0%,预期:-0.2%。
15:52英镑兑美元GBP/USD短线走低13点,现报1.2890。
15:52【宁德时代“供电”国产特斯拉 有望拉低售价20%】全国乘联会秘书长崔东树分析认为,“随着特斯拉国产化率提升和产能爬坡,未来特斯拉国产车型的价格下探空间还是很大的。”他预计今年下半年,国产Model 3车型的售价就有望降至25万元,降幅接近20%。(新京报)
15:51【内蒙古:对不裁员或少裁员企业返还上年度50%失业保险费】据内蒙古新型冠状病毒肺炎疫情防控工作指挥部消息,疫情期间,内蒙古对不裁员或少裁员的企业返还上年度实际缴纳失业保险费的50%,对面临暂时性经营困难的中小企业,返还标准提高到上年度6个月企业及其职工缴纳社会保险费的50%。
15:51【商务部:2019年服务进出口总额54152.9亿元 同比增长2.8%】商务部新闻发言人表示,2019年,在服务贸易创新发展试点等政策的激励下,我国服务贸易总体保持平稳向上态势,逆差明显下降,结构显著优化,高质量发展成效初步显现。全年服务进出口总额54152.9亿元(人民币,下同),同比增长2.8%。其中,出口总额19564.0亿元,同比增长8.9%;进口总额34588.9亿元,同比减少0.4%。(第一财经)
15:51【振华股份:疫情导致下游客户开工推迟 产品库存上升】振华化学公告,公司目前生产经营稳定,所有产能均正常开工,原材料采购能基本满足生产需要,由于疫情导致下游客户开工推迟,公司出货量减少,产品库存有所上升。公司将根据客户需求、疫情及市场变化,适度调整生产经营策略,尽可能保持生产经营的稳定。
15:50环旭电子2月10日晚间公告,公司2020年1月合并营业收入为23.27亿元,较去年同期的合并营业收入减少27.83%,较2019年12月合并营业收入环比减少37.23%。
15:49精测电子:与京东方集团签订了多份销售合同,合同累计金额达到6.96亿元。
17:12华夏银行:银保监会同意本公司在全国银行间债券市场发行不超过100亿元人民币的金融债券,募集资金全部用于绿色信贷。
17:03