链资讯 链资讯
Ctrl+D收藏链资讯
首页 > ADA > 正文

GAS:深?理解以太坊Gas机制:零字节地址能节省Gas?_MIT

作者:

时间:

前言

前段时间在Etherscan上查看交易时,发现一个很有趣的地址:0x00000000a03396F6F864B496713f2623b6756Be2。这个地址是以0x00000000开头,抱着探索未知的心理对该地址进行了简单的搜索,发现该地址并不简单,它不仅构造独特同时,还能节省Gas费。

什么是Gas

在讲这个地址之前,我们首先需要理解什么是Gas。Gas是用于测量在以太坊区块链上执行特定操作所需的计算工作量的单位,即以太坊网络上的计算单位。我们可以简单的把Gas理解为汽油,其保证了以太坊网络的正常运行。在以太坊区块链上,执行写入操作都需要支付一定的Gas费用。在以太坊中,货币是以太币(ether),1ether=1x1018Wei。在以太坊区块链上进行操作,如发送代币、调用合约等都要支付相应Gas,且以Wei作为单位来计算。Wei是ETH原生最小的单位,ETH消耗的Gas单位是Gwei,1Gwei=1x109Wei。2.1GasPrice

纽约梅隆银行:尽管市场低迷,仍有约90%的机构投资者正在推进他们的加密计划:金色财经报道,纽约梅隆银行在最近一份“机构投资2.0”的研究报告中表示,接受调查的机构投资者中有70%将如果托管和执行等服务可从公认的、受信任的机构获得,他们将增加他们的数字资产活动。该报告还指出,机构投资者正在寻找以安全和合规的方式进入加密市场的方法,而不是抱着高回报的希望立即投入。此外,这家银行业巨头透露,尽管市场低迷,但仍有约90%的机构投资者正在推进他们的加密计划。几乎所有机构投资者 (91%) 都对投资代币化产品感兴趣。

此外,88%机构对现金或所谓的稳定币的数字表示感到满意,72%的人表示他们希望满足所有数字资产需求的综合提供商。?[2022/10/31 12:01:54]

GasPrice是以太坊内消耗1个Gas对应多少的Gwei,当然交易发送方可以自定义愿意支付的每单位Gas价格。比如交易发送方的一笔交易需要耗费10Gas,交易发送者愿意支付3Wei/Gas,交易的成本总价就是30Wei。在我们使用的钱包里都会有调整Gas费的高级选项,GasPrice越高,打包的优先级就越高。2.2GasLimit

纽约梅隆银行已在埃及和中国之间建立无缝跨境交易:金色财经报道,纽约梅隆银行与提供资金的银行QNB Al Ahli埃及公司和接收资金的中国上海浦发银行合作,完成了从埃及到中国的第一笔支付交易。 交易耗时不到三个小时,而之前在这些国家之间汇款需要两天时间。纽约梅隆银行于去年成为第一家开始使用SWIFT Go的银行。

纽约梅隆银行的高管Isabel Schmidt 表示,由于使用SWIFT Go,交易将变得更快,费用将更容易预测,总体而言,支付的安全性将得到提高。[2022/10/13 10:33:01]

GasLimit是消耗Gas的限制单位,即交易发送方在完成每笔交易时最多能使用的用于执行交易的Gas量。如果没有GasLimit做限制,可能会导致交易发送方的账户余额因错误操作而消耗完,GasLimit是安全机制,防止把账户中所有ETH消耗掉。2.3固有成本Gas

发送一笔交易的成本包括两部分:1、固有成本2、执行成本执行成本顾名思义和执行有关,执行一笔交易的操作越多,它所需要的使用的EVM资源就越多,执行成本就越高。而固有成本由交易的负载决定:1、创建智能合约的负载是创建智能合约的EVM代码2、调用智能合约函数的负载是执行消息时输入的数据3、两个账户之间转账的负载为空我们从以太坊黄皮书附录G中可得知创建合约和执行交易的相关成本Gas。

纽约梅隆银行将代表其客户持有转让比特币及发行其他加密货币:据华尔街日报消息,纽约梅隆银行将代表其资产管理客户持有、转让比特币及发行其他加密货币。(金十)[2021/2/11 19:32:37]

我们假设$N{zeros}$代表的是交易负载中字节为0的字节总数,$N{nonzeros}$代表交易负载中字节不为0的字节总数,根据黄皮书6.2章节关于执行的描述,可以得到固有成本。

以太坊地址中零开头的地址

由于Gas费用现在比较昂贵,所以优化Gas变得很重要,优化Gas费用的方法有很多,这里我们不一一列举,本文只以以太坊地址中0字节降低Gas费来讨论,这是从EVM层面来优化Gas。通过使用比平时更多的0字节的地址,并且在某些情况下,地址开头有更多的0字节,我们可以在许多类型的交易中节省汽油。汉明重量是一串符号中非零符号的个数。全零符号的汉明重量为0,1101的汉明重量为3。在以太坊黄皮书附录G中可以看到,使用0字节时需要4Gas,而使用非0字节时需要16Gas:

每次使用0字节代替非0字节时,就可以节省16个Gas,因此,每次在msg.data中用一个0字节代替一个非0字节,都将给我们节省12个Gas。在以太坊中,地址是由0x开头的40个随机字符的16进制字符串,当以16进制形式查看字节串时,由于每对数字构成一个字节,所以单个16进制的0,或相邻的0分布在两个不同的字节中,不会减少字节串的汉明重量,所以只有连续2个16进制的0才会减少汉明重量。0字节的排序对所产生的Gas优化也没有影响。在ERC20的transfer()函数中,msg.sender的汉明重量没有区别,而作为transfer()函数的一部分传入msg.data的_to地址参数就有区别。使用OpenZeppelin的StandardToken作为参考实例。向一个没有0字节的地址进行标准转账需要花费35039Gas,然而向一个有4个0字节的地址进行转账只需要34991Gas,他们相差了$35039-34991=48\\,Gas$。而我们前面说到每次使用0字节代替非0字节时,可以节省12个Gas,这里的48Gas可以表示成$4\\times12=48\\,Gas$,和我们从黄皮书中得到的期望值一样。

而2个0字节的地址0x00a0009e638D25EFE5a894f6a36F42734477dECa和上面2个差值分别都是24Gas,说明也是符合期望的。

但是如果我们地址尾部存在0字节时,又容易被短地址进行攻击,所以以0x00开头的具有多个0字节的地址就成为了更好的选择。如果地址至少有4个前导0字节,那么每个地址将只需要占用16个字节,这样两个地址就可以装入一个32字节包了。这样的优化不仅在于使用了$G_{txdatazero}$带来的Gas优化,而且由于不用从调用数据中读写更多的字节,我们还能省下更多的Gas,所以向这样的地址转账时,不管该地址是合约地址还是普通账户地址,都能省下5%左右的费用。由去中心化交易所聚合器1inch.exchange开发的CHIGasToken就是采用这样的原理,也有不少的普通账户地址使用前导0作为自己的地址。

如何得到更多前导0开头的地址呢,这里就和大家看到的以太坊靓号生成是一样的,这里就不提供生成方法了。当然了,想要得到的开头0越多,难度就越大,需要的时间也就会越久。

92.47%的机会在地址上找到0个0字节。7.25%的机会找到1个0字节。0.27%的机会找到2个0字节的机会。0.00635%的机会找到3个0字节的机会。0.00000106%的机会找到4个0字节的机会。后记

优化Gas的方法有很多,这里我们就以EVM底层视角研究了节省Gas的方法,通过研究我们可以得到一个结论:以太坊地址里面的00越多,不管这个地址是合约地址还是普通地址,不管是转入地址还是转出地址,都能够节省不少的Gas。参考文章

以太坊黄皮书2022-10-24深入理解以太坊Gas机制:从概念起源和21个EIP开始OnEfficientEthereumAddresses

标签:GASWEIMITTHEGASCWEIRD价格秘银币mith前景怎么样The Lab Finance

ADA热门资讯
TOKEN:庄家操盘往事:做市商与项目方、交易所的「爱恨情仇」_Oscar Token

原文作者:光武,Canoe创始人前FTX的headoftrade,即刻@octopuuus,在播客中提到一个我感兴趣的视角是做市商机构视角,“庄家操盘往事lol”.

TOK:加密矿企大溃败,2023会好起来吗?_Lien Token

2022年底,一场罕见的强劲风暴袭击美国。美国气象局表示,这场风暴是“历史性的”。风暴为能源供应带来了颇为严重的影响,一家总部位于宾州的电力公司表示:由于发电厂在寒冷的天气中难以运营,许多地方不.

GAS:纽约梅隆银行出于成本考虑将裁员3%,但仍坚持数字资产战略_数字资产管理

Odaily星球日报译者|念银思唐纽约梅隆银行计划今年裁员约1500人,这家美国银行表示,成本将是2023年的首要考虑事项.

VEN:Venom Foundation与Iceberg Capital推出10亿美元Web3基金「VVF」_venus币圈

Odaily星球日报译者|念银思唐 摘要: -该基金将重点关注支付、资产管理、DeFi、银行服务和GameFi等领域的Web3协议和DApp.

VEN:Arbitrum创始人:针对Rollup延迟攻击的三种解决方案_VENA价格

Rollup协议设计者面临的一个微妙问题是如何应对延迟攻击。在这篇文章中,我将讨论它们是什么,以及Arbitrum如何防范它们,从而带来一些令人兴奋的新发展.

GENE:Gemini联创致DCG公开信全文:要求偿还9亿美元欠款_GENE币

今日,Gemini联合创始人CameronWinklevoss代表其Earn产品超过34万名用户,向DCG创始人BarrySilbert发送一封公开信,要求他偿还所欠的9亿多美元.