0x00000000a03396F6F864B496713f2623b6756Be2。这个地址是以0?x?00000000开头,抱着探索未知的心理对该地址进行了简单的搜索,发现该地址并不简单,它不仅构造独特同时,还能节省?Gas费。
什么是Gas
在讲这个地址之前,我们首先需要理解什么是Gas。
Gas是用于测量在以太坊区块链上执行特定操作所需的计算工作量的单位,即以太坊网络上的计算单位。我们可以简单的把Gas理解为汽油,其保证了以太坊网络的正常运行。在以太坊区块链上,执行写入操作都需要支付一定的Gas费用。
在以太坊中,货币是以太币(ether),?1ether=1?x?10?18?Wei。在以太坊区块链上进行操作,如发送代币、调用合约等都要支付相应Gas,且以Wei作为单位来计算。Wei是ETH原生最小的单位,ETH消耗的Gas单位是Gwei,?1Gwei=1?x?10?9?Wei。
2022年Coinbase资产有42%是比特币,24%是以太坊:7月12日消息,TradingPlatforms近期通过研究Coinbase的2022年财务业绩,强调加密货币在其资产中所占的比例,得出的结论为,2022年Coinbase资产的42%是比特币,相比2021年第四季度的40%略有增加。而以太坊占Coinbase资产的24%,其他加密货币占31%。
在此期间,Coinbase的总资产达到了2560亿美元。这一数字比2021年第四季度的2780亿美元下降了220亿美元。该公司将这一下降归因于加密资产价格的下跌。[2022/7/12 2:06:29]
钱包里都会有调整Gas费的高级选项,GasPrice越高,打包的优先级就越高。2.2GasLimit
GasLimit是消耗Gas的限制单位,即交易发送方在完成每笔交易时最多能使用的用于执行交易的Gas量。如果没有GasLimit做限制,可能会导致交易发送方的账户余额因错误操作而消耗完,GasLimit是安全机制,防止把账户中所有ETH消耗掉。
报告:2022年更多游戏公司将采用区块链和P2E模式:2月24日消息,游戏研究公司Newzoo在一份报告中表示,该公司预测,随着游戏公司尝试采用区块链,P2E模式将在2022年变得更加可行:“发行商可能会使用区块链技术在一个中心化的游戏环境中促进更安全、更合法的玩家对玩家(player-to-player)交易。”
同时,盈利流多样化的需求可能会导致电子竞技组织通过使用NFT转向基于区块链的盈利机制。正因为如此,涉及区块链的新电竞商业模式开始出现,并将在2022年有更多的发展。
除此之外,该报告还显示,随着年轻玩家继续频繁参与《Roblox》、《堡垒之夜》和《我的世界》等现有的“原型元宇宙”游戏,与元宇宙相关的游戏也可能变得更加流行。(Cointelegraph)[2022/2/24 10:13:43]
2.3固有成本Gas
美国CFTC:比特币期货净空头持仓降至2020年3月以来的最低水平:美国商品期货交易委员会(CFTC):比特币期货净空头持仓降至2020年3月以来的最低水平。[2021/8/21 22:27:38]
发送一笔交易的成本包括两部分:
1、固有成本
2、执行成本
执行成本顾名思义和执行有关,执行一笔交易的操作越多,它所需要的使用的EVM资源就越多,执行成本就越高。
而固有成本由交易的负载决定:
1、创建智能合约的负载是创建智能合约的EVM代码
2、调用智能合约函数的负载是执行消息时输入的数据
3、两个账户之间转账的负载为空
我们从以太坊黄皮书附录G中可得知创建合约和执行交易的相关成本Gas。
Bakkt:2025年加密资产总市值将达到3万亿美元:金色财经报道,在新的投资者演讲中,洲际交易所旗下加密平台Bakkt表示,预计到2025年全球加密资产总市值将增长到3万亿美元。Coingecko数据显示,当前全球加密货币总市值达9652.46亿美元。[2021/1/13 16:01:01]
我们假设$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。在以太坊中,地址是由0?x开头的40个随机字符的16进制字符串,当以16进制形式查看字节串时,由于每对数字构成一个字节,所以单个16进制的0?,或相邻的0分布在两个不同的字节中,不会减少字节串的汉明重量,所以只有连续2个16进制的0才会减少汉明重量。0字节的排序对所产生的Gas优化也没有影响。
在ERC?20的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字节时,又容易被短地址进行攻击,所以以0?x?00开头的具有多个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字节的机会。
参考文章
以太坊黄皮书2022-10-24?
深入理解以太坊Gas机制:从概念起源和21个EIP开始
OnEfficientEthereumAddresses
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。