对于以太坊用户来说,真正的灵魂三问莫过于:我在做什么交易?我该给多少的Gas?应该把GasPrice设成多少才经济实惠?
简单来说,Gas是用来度量以太坊上一笔交易所需花用的计算量的单位。一笔交易的复杂度越高,所需花用的Gas也就越多,所以,越是复杂的交易,在发起交易时越要设定较多的Gas额度,如果发起者预留的Gas数量不够多,交易会因为计算资源耗尽而失败。
但是好就好在,这事用不着操心,可以设一个自己的账户支付得起又充分大的数值,因为,没有用掉的Gas是不会计算手续费的,换言之,虽然你设置了这笔交易可以用掉100Gas,但实际上只用掉了20Gas,那打包你的交易的出块者就只能得到20Gas的手续费,不能白收你的。此外,现在的Gas使用量估算技术已经很普遍了,用户使用Metamask钱包插件跟应用交互的时候,会发现自己根本不需要手动设置GasLimit,插件已经帮你估算好了。
安全团队:JIM2.0代币存在后门功能,请尽快移除WETH/JIM2.0交易对中资产:7月17日消息,据Beosin Alert监测,以太坊上的JIM2.0代币存在后门功能,允许其合约所有者无限铸币。建议用户尽快移除WETH/JIM2.0交易对中的资产。[2023/7/17 10:59:24]
但是讲到GasPrice,就头疼了。大家都知道,这个参数表达的是交易发起者自己愿意为每一单位的Gas支付的价格,而这部分价格最终会被打包该笔交易的出块者得到;有鉴于此,出块者当然青睐那些GasPrice高的交易。但是,谁不想让手续费便宜一些呢?谁不想经济实惠地达成交易呢?
因此,几乎所有的以太坊用户在日常使用中都会接触到一种工具:Gas价格指示器,它的作用是告诉你,你设置多少的GasPrice,就能让自己的交易在自己想要的时间内被打包。比如下图展示的就是生态里可能是最常用的Gas价格指示器:GasStation。
Osmosis已通过关于Thridening的两项提案:7月11日消息,基于Cosmos的去中心化交易所Osmosis已通过关于Thridening的两项提案,其中551提案提议燃烧6月20日Thirdening事件延迟期间产生的约54万枚多余的OSMO,将最大发行量恢复至10亿枚;552提案提议将Thirdening效果恢复为1/3缩减、将间隔时间延长至两年。[2023/7/11 10:47:26]
它的大意是说:如果你想要自己的交易在2分钟之内被打包,那就要设置95Gwei乃至更高的Gas价格;如果你只需要它在5分钟之内被打包,那设置成79Gwei以上就好
大多数像你我一样的用户,在使用GasStation时都不会发觉有什么问题。但是,假如你要做高频的交易呢?或者假如你要写一个交易机器人呢?GasStation真的可以依赖吗?
Lookonchain:某巨鲸地址从Binance提币60万枚APE后全部质押:3月20日消息,据Lookonchain数据显示,某巨鲸地址于6小时前将195万枚USDT转入Binance,并于1小时前从Binance处提币60万枚APE后将其全部质押,约合250万美元。[2023/3/21 13:15:37]
这可不是在找茬,也不是装神弄鬼。这篇文章就提到了2020年3月14日时候许多用户的艰难遭遇:在以太坊协议中,一个账户发起的交易是有顺序的,由一个只增不减的流水号nonce来标记顺序;当你的前序交易因为GasPrice太低而被出块节点丢弃的时候,不论你给后序交易设置再高的GasPrice,都于事无补,因为节点不能越过前序交易直接打包后序交易,但是前序交易已经丢弃了,这就等于使你的账户锁死了。唯一的解救办法就是找回你最早一笔还未上链的交易,使用这笔交易的流水号重发一笔交易,并且GasPrice要足够高。同样地,许多交易机器人也因为同样的原因被卡,原因就是因为它们依赖的Gas价格报告器对网络Gas价格的预估有误,发出几笔交易之后,机器人就卡死了。
TON验证者将投票“冻结不活跃矿工的10亿枚Toncoin”以实现权力下放:金色财经报道,TON验证者正准备对一项改变该项目代币经济学和供应的提案进行投票。如果该投票通过,将通过“冻结48个月然后解冻”的方式减少Toncoin20%左右的供应量,这些冻结的Toncoin大约10亿枚,来自不活跃TON矿工账户。TON团队表示,该提案可能会影响Toncoin的市值,目的是通过减少鲸鱼钱包的控制来增加网络的去中心化。
据悉,TON是由Telegram设计的完全去中心化的Layer1区块链,TON代币总供应量为50亿枚,目前有14.7亿枚TON在流通。TON网络验证者需要持有超过300,000TON(价值约700,000美元)。(beincrypto.com)[2023/2/21 12:19:26]
这些血淋淋的教训充分说明了,为每一笔交易安排合适的Gas价格,有多么重要。因为当链上应用活跃的时候,一笔交易的成功不仅会影响这笔交易,还会影响后序交易。
但是,是什么阻碍了我们获得准确的Gas价格估计呢?我们能克服吗?
在最根本上来说,阻碍我们的是区块链网络的点对点网络架构:所有节点都是分散的,当某一笔交易被发送到一个节点时,该节点做一定的校验之后会把交易数据广播给其它节点;这种网络结构决定了,没有任何一个节点能实时获得整个网络的未处理交易的全局状态,交易的传播需要时间,也需要偶然。对于这一点,我们只能改善,不可能从根本上克服,因为我们不想要一个中心化的网络结构。
但另一方面,至关重要的是我们预估Gas价格的方法。目前为止,绝大部分Gas价格指示器所用的方法,都是根据过去一段时间里被打包到区块里的交易的Gas价格加以统计方法处理,得出对未来Gas价格的估计。仔细想想这其实很不合理,在你发交易的这一刻,决定你的交易多快能上链的是现有未处理交易中比你交易的Gas价格更高的交易有多少,以及在你的交易还未打包的这段时间里有多少人发出了比你的Gas价格更高的交易。拿已经上链的交易,也就是历史数据,去做这样的预估,貌似合理,实则荒谬。当网络活动快速增加、Gas价格快速攀升的时候,按历史数据估计的方法大概率只能给出低估的Gas价格。更准确的估计应该基于现有未处理交易的Gas价格分布,哪怕还需要统计方法处理,也会比拿历史数据来估计要更简单。
这就是GasNow厉害的地方。它不再基于历史数据来预测未来,它基于星火矿池节点的交易池中交易的Gas价格分布。为了收益的最大化,矿池一方面要尽可能地收集交易,另一方面,要从高到低打包交易池中待打包的交易。所以,GasNow给出的数据,是真正具有参考意义的。
如图,网页直接告诉了你矿池交易队列中由高到低排序的第50笔、第200笔、第400笔交易的Gas价格。这就有的放矢了
理论上来说,所有的Gas价格指示器,都应该转变成GasNow这样的模式,不再根据历史数据,而是根据实时数据,来帮助用户做决策。但饶是如此,GasNow也是有竞争力的。因为矿池的交易池会比普通的、没有优化的节点的交易池更全面,更有参考意义。
GasStation在自述中说,“希望能提高Gas价格的透明度”,这当然是个很有意义的目标;而且,Gas价格的不清晰,其实根值于网络的点对点特性,值得更多人作出更多的尝试,用服务本身的分散性来降低点对点网络带来的不确定性、使我们获得更全局的视野。
但至少,GasNow应该是离这个理想更近一步了。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。