火星链 火星链
Ctrl+D收藏火星链
首页 > 聚币 > 正文

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

作者:

时间:1900/1/1 0:00:00

前言

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

什么是Gas

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

DoraHacks增持量子计算平台,推动量子开发者社区发展:2月6日消息,全球极客运动DoraHacks关联风险基金Dora Ventures在过去一个月通过关联方持续增持包括Rigetti,IONQ等量子计算基础设施股票。

DoraHacks正在积极建立开源量子开发者社区,并在过去两年资助了多个全球领先的量子计算组织和开源量子黑客马拉松。[2023/2/6 11:49:59]

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

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

数据:2022年全球加密货币持有者增长39%:1月19日消息,根据Crypto.com的一份新报告,与2021年相比,2022年全球加密货币持有者增长了39%。加密货币持有者总数从2021年底的3.06亿增加到2022年底的4.25亿。这对该行业来说是一个积极的发展,因为2022年总体来说是熊市。比特币(BTC)持有者数量从1月份的1.83亿增加到12月的2.19亿,增长了20%。此外,BTC是持有者最多的资产,占全球加密货币持有者的52%。[2023/1/19 11:21:31]

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

BTC非零地址数降至8月以来最低水平,当前约为4294万个:金色财经报道,数据显示,当前非零比特币地址共有4294.789万个,地址数正处于8月以来最低水平。其中,持有至少1BTC的地

址数续创新高,当前为808.674个;持有1000BTC以上的地址数仅2105个,为3月2日以来新低。[2022/9/14 13:29:14]

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

数据:ENS域名创建数量突破220万:金色财经报道,据Dune Analytics数据,ENS域名创建数量已突破220万,截至目前为2,201,567个,独立参与地址总量544,339个,主域名注册量为387,609个。[2022/9/5 13:09:41]

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

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

CoinShares:上周数字资产投资产品净流出2700万美元,交易量是2020年10月以来的最低水平:8月29日消息,据CoinShares周报数据,上周数字资产投资产品净流出 2700 万美元,已连续三周共流出 4600 万美元。上周加密投资产品交易量仅为 9.01 亿美元,是 2020 年 10 月以来的最低水平。比特币流出总额为 2870 万美元,其中空头比特币投资产品流入 100 万美元。从区域来看,全面出现小幅流出,但主要集中在美国、瑞典和德国,流出总额分别为 2,000 万美元、420 万美元和 230 万美元。巴西是唯一的净流入地区,流入总额为 120 万美元。[2022/8/29 12:56:05]

每次使用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

标签:GAS以太坊WEIETHgas币最新消息以太坊币价格今日行情价格WEIRDethm币会归零吗

聚币热门资讯
GAM:IOSG Ventures:Web3游戏背后的资本和人才流向

2022年逐渐走向尾声,阴霾重重,泥沙俱下,裸泳者一览无余。在游戏这个赛道里,寒冬中,无论是资本还是人,都在用脚投票,走向那些需求地基扎实的,能交付产品的子赛道和项目.

1900/1/1 0:00:00
MCC:对话a16z政府事务负责人:a16z将肩负起推进美国加密立法的重要角色

11月初,a16zCrypto宣布CollinMcCune担任政府事务负责人,他曾是美国众议院金融服务委员会委员PatrickMcHenry的副参谋长,在华盛顿拥有广泛的人脉资源.

1900/1/1 0:00:00
MEV:MEV审查困境:SUAVE会是一个好的解决方案吗?

MEV审查现状并非所有验证者都明确且有目的地提议由MEV中继构建的区块。许多验证者提出普通区块,或从mempool中选择区块,而没有考虑排序,它们纯粹基于优先费用和区块限制.

1900/1/1 0:00:00
WBTC:16张图多维度回顾比特币的2022

2022年,受到美联储连续放鹰,全球流通性紧缩的影响,比特币结束了此前两年持续上涨的牛市行情,转而进入了震荡下行的熊市行情.

1900/1/1 0:00:00
UST:Foresight Ventures:“正义”的攻击,复盘常见的DeFi经济模型攻击

在加密行业的黑暗森林里,Defi已成为黑客的提款机,今年迄今损失总金额已超过30亿美元。一是因为Defi平台持有大量资金,攻击成功的回报很高.

1900/1/1 0:00:00
以太坊:探讨L2经济学和商业模式:以太坊将迎来「带宽」时刻?

本周我们将重温以太坊生态系统中的第2层扩展解决方案。涵盖的主题:为什么我们需要L2?Layer2扩展解决方案的功能经济学和商业模式对技术栈的基础层以太坊的影响为什么我们需要L2?任何在2021年.

1900/1/1 0:00:00