在Uniswap给20多万个用户地址撒钱的时候,也许不少人在开心之余心里想的都是,「这gas费也太高了。」
当天是以太坊历史上值得纪念的一天,gas建议最高达到了1000GWEI,这是历史最高点。
在见证历史、全民领空投的当天上午,不少人都遇到了关于gas费的问题,gas费贵已经不是问题了,问题是gas费交到钱包建议的最大值也不能在计划时间内成交。大家Metamask上显示都是pending,一圈一圈转得让人心烦。
为什么你使用了默认的gas费金额,却依然不能即时交易?。此文将详细讲解以太坊交易费率机制以及在以太坊上发起交易会遇到的问题。
Gas的逻辑
这个事要先从以太坊账户讲起。
以太坊网络中有两类账户,外部账户以及合约账户(ContractAccount)。
Polygon zkEVM已修复阻碍L1资产桥接至L2的漏洞,没有资金面临风险:5月29日消息,Scroll 区块链安全研究员 iczc 发推称,在 Polygon zkEVM 中发现一个漏洞,并获得来自 Web3 漏洞赏金平台 Immunefi L2 漏洞赏金。该漏洞导致从 L1 桥接至 Polygon zkEVM(L2)的资产无法在 L2 中正确认领,从而阻碍了 L1 至 L2 的资产迁移。
iczc 在处理认领交易(claim tx)预执行结果的代码逻辑中发现,恶意攻击者可以通过将 Gas 费设置为非零来绕过对认领交易的「isReverted」预执行检查,使其可以通过发送大量低成本的 claim 对定序器和验证器进行 DoS 攻击,从而增加计算开销。此外,交易不会在执行后立即从池中删除。状态从「待定」更新为「选定」,并继续存在于 PostgreSQL 数据库中。目前,只有一个可信的定序器能够从交易池中获取交易并执行它们。因此,另一个漏洞是通过发送一个失败的交易来恶意标记任何存款数。这将导致正确使用存款数的 认领交易被拒绝,因为存款数已经被使用。这使得新用户无法使用 L2 网络。Polygon zkEVM 团队通过删除认领交易的特定 gas 逻辑,修复了这一漏洞,没有资金面临风险。[2023/5/29 9:48:40]
外部账户是指用户们所使用的账户,由私钥持有者所控制。合约账户是指带有应用逻辑的智能合约,由合约代码所控制。用户们在使用DeFi应用时,就是在用自己的账户与DeFi项目的智能合约进行交互。
Yuga Labs CTO:Otherside不会设置围墙花园:金色财经报道,Yuga Labs首席技术官Mike Seavers在社交媒体发布了旗下元宇宙项目Otherside的长期目标并强调了Otherside向前发展的重要性,主要内容包括:实现更持久的@OthersideMeta是透明度和执行力,Yuga Labs将始终把我们的社区放在首位,技术是一个推动因素,但不应该成为焦点,重点是体验。为实现这一目标,Yuga Labs需要平台与技术开放,Otherside将不局限于单一供应商或技术,以避免围墙花园,继而更好地满足全球社区的需求,这意味着更有效地建设真正的全球规模。[2023/5/28 9:46:59]
各类账户之间可以随意进行交互,钱包间可以进行转账,合约间也可以相互调用。每一次链上交互都需要消耗一定的计算量,计算量消耗的大小由计算难度所决定,而Gas就是计算量的计量单位。例如加法运算较简单,需要消耗3个Gas,除法运算相对复杂,需要5个Gas。
检察日报发文探讨《数字经济背景下“NFT”的法律属性与风险治理》:5月16日消息,最高检旗下检察日报在5月15日“观点·专题”整版页面下讨论《数字经济背景下“NFT”的法律属性与风险治理》,该专题分为三个观点板块:《强化风险研判精准惩治违法犯罪》、《数字作品NFT交易平台负有著作权保护责任》、《NFT数字资产的权利属性》。
浙江省人民检察院第四检察部主任王霞芳认为,对于信息技术发展带来的新业态,检察机关要善于准确把握创新发展与违法犯罪的界限,既要依法保护“真创新”,又要能够及时发现、精准惩治以创新之名行犯罪之实的“伪创新”,避免出现“劣币驱逐良币”的现象。[2023/5/16 15:05:24]
每一单位的Gas都有其对应的价格,也就是Gas价格?(GasPrice),而Gas价格以Wei为单位。用户需要购买ETH来支付Gas费用。1ETH=1e18Wei,而我们通常看到的单位GWei为1e9Wei。通常,钱包软件会通过历史GasPrice对用户将要发起的这笔交易的费用进行预估。
DappRader:9月全网NFT交易量达878万笔,OpenSea“统治地位”减弱:10月4日消息,区块链分析平台DappRader发布数据显示,9月全网NFT市场交易额达到9.47亿美元(不含可疑洗售交易),相比之下8月该指标为9.27亿美元,7月为9.16亿美元,6 月为10.3亿美元。
此外,9月NFT市场交易额与1月(53.6亿美元)相比减少了82%。在交易量方面,9月NFT交易量约为878万笔,高于8月的768万笔和7月的589万笔。当前年底最高月销售量记录发生在1月,当月交易量达到1216万笔。
值得一提的是,Solana链上NFT销售额在最近几周猛增,9月产生了价值近1.33亿美元的销售额,几乎是8月份6850万美元销售额的两倍。此外,OpenSea的市场“统治地位”正在减弱,9月OpenSea产生了3.5亿美元的NFT的交易额,而X2Y2交易额接近2.97亿美元,Magic Eden达到了1.27亿美元。[2022/10/4 18:39:03]
为了避免全节点趋于集中,追求架构去中心化的区块链会严格限制每单个区块的容量。例如比特币的BlockSizeLimit以及以太坊的BlockGasLimit。在律动BlockBeats撰文时,以太坊每单个区块的BlockGasLimit约为12,000,000个Gas,这也就是每一区块总计算量的上限。平均每15秒出一区块。当交易需求超过区块容量时,用户为了将自己的交易尽快被上链确认,就需要竞争每一区块内的资源。此时用户会对Gas进行竞价,矿工会优先将GasPrice高的交易纳入区块。
NFTGo宣布将于7月正式上线聚合交易功能:6月22日消息,NFT数据平台NFTGo宣布将于7月正式上线聚合交易功能,可实现从数据分析到完成购买的无缝衔接、一次性购买多个NFT节省gas费、一键找到所选ERC-721标准NFT的最低价选项、自动检测并删除可疑NFT等功能。[2022/6/22 1:24:17]
通常用户在进行转账时还会看到钱包会提高可以调节GasLimit的选项。与BlockGasLimit不同,GasLimit是指对于一笔交易,用户所能接受的Gas使用量上限。由于有时合约内可能存在漏洞,一笔交易会不停死循环地进行计算。如果没有GasLimit,这笔交易会消耗尽用户钱包内所有的ETH。而矿工通常所收取的费用是按实际执行该交易时消耗的计算量(GasUsedbyTransaction)进行结算的,而GasLimit内剩余的ETH就会回到用户账户中。
所以我们可以得出,所消耗的ETH数量(EtherCost)=交易费用(GasFee/TransactionFee)=每笔交易所消耗的Gas数量(GasUsedByTransaction)*Gas价格(GasPrice)。
了解了以太坊的手续费机制以及账户类型,我们来看看用户在交易时时常会碰到的问题。
待确认交易(Pending)/加速交易?
每当用户发起一笔交易时,交易会被放入一个交易池(Mempool)中。如上文提到,矿工会优先打包池子中GasPrice最高的交易。所以用户设定的GasPrice决定了交易被打包执行的速度。在网络拥挤的时候,由于GasPrice飙升,用户的交易可能长时间处于待确认状态。为了尽快将待定交易发出,用户可以选择支付更多的GasPrice来加速交易。
加速交易又是怎么操作的呢?为了更加详细地理解加速交易的逻辑,我们需要明白另一个参数:Nonce。每一个账户发出的交易都会有一个按顺序排列的交易编号--Nonce,从0开始,每次发起一笔转账,该账户的Nonce值会增加1。
当用户想要加速交易时,在以太坊钱包中,用户可以选择加速交易选项,这时会被要求支付更高的Gas费用,用户同意之后相当于发起了一笔新的交易,而新的交易与待确认交易的Nonce值相同。
由于以太坊网络规定,Nonce值是连续不可跳跃的,且同一个地址每笔交易的Nonce值不可重复,所以矿工会打包新生成的交易,在新交易被打包确认之后,之前较低GasPrice的交易会废弃掉。
若用户不想加速交易,只要此交易还在交易池中未被打包,用户可以随时选择取消交易。取消交易的逻辑与加速交易相同,用户发起一笔GasPrice更高,但与待确认交易Nonce相同的交易,但交易金额变为0,所以本质上,取消交易的成本与加速交易的成本一样需要成本。
需要注意的是,在待定交易确认完成之前,后面的交易都需要排队等候,所以用户不要由于等候时间过长重复发起多笔交易。
交易失败(Fail)
律动BlockBeats发现,目前最常见的交易失败原因是交易Gas已用尽(OutofGas)。也就是说,这笔交易的计算量超过了用户所设定的GasLimit。一般在这种情况下,交易状态将会显示为失败,并提示Gas已用尽,并且所支付的Gas不会被退还。
有些用户可能会认为这并不公平,但本质上矿工已经在做功计算,只是算到一半Gas不够了,所以矿工只能放弃继续作业,但之前的工作需要被支付「工资」,因此之前交的Gas费不退大概也可以理解了。遇到这种情况,用户只能重新再发起一次交易,并将此交易的GasLimit上调。
另一种交易失败的情况是,当用户向智能合约发起交易转账,但某些错误导致无法执行合约时,交易会返回BadInstruction。
比如,当用户参与类似于众筹活动时,可能会发生下面这些情况:
额度已满;
或用户未被列入白名单;
或用户超额认购代币等情况。
此时,用户所设置的GasLimit将会被全部用尽,最终导致交易失败。
不过以太坊拜占庭硬分叉后,增添了新的操作符Reverted(EIP-140)。当合约中出现错误导致交易失败时,交易将不会耗尽GasLimit所设定的所有Gas,合约将停止执行并退回剩余Gas费用,同时告知用户错误原因。
当然,如果用户钱包中ETH的数量不足以支付Gas费用时,交易也会被判定为失败。
在没有热点的时候,以太坊网络一片祥和,所有的转账成本,包括时间和金额都还可控,但当风口到来,大家在网络中就会遇到各种问题,gas费的逻辑是新人使用钱包时最大障碍。
基本上,在gas费会遇到的所有问题,这篇文章都覆盖到了,链上交易并不复杂,说简单点,一切操作有问题,加钱就可以搞定。
这场运动目前看来,以太坊上流动性挖矿的热潮暂时告一段落,这场运动除了创造出一片泡沫之外,也让更多用户开始习惯钱包的使用,钱包终于成了一个高频使用工具。
而链上交易发生的问题其实也在为钱包的优化提供空间,为新人提供「一键加速」、「一键取消」这样的服务或许将可以在越来越多的钱包中看到。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。