NFT:因「0x10」地址的Gas消耗分歧产生的柏林硬分叉Bug_PNFT币

以太坊OpenEthereum单客户端在区块#12244294?处发生的Bug导致当时的以太坊网络停机,并在问题区块产生后无法与网络保持同步。那么造成这个事故的原因究竟是什么呢?

使用?Tokenview以太坊浏览器查看触发了这个事故的交易:https://eth.tokenview.com/cn/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247

Coinbase将Sperax(SPA)列入上币路线图:4月19日消息,Coinbase Assets发推表示,已将Sperax(SPA)列入上币路线图。

Sperax (SPA) 的Arbitrum网络(ERC-20代币)合约地址是 0x5575552988a3a80504bbaeb1311674fcfd40ad4b。[2023/4/19 14:12:31]

这是一笔合约调用交易,是从KuCoin交易所向其他地址分发ETH。

摩根士丹利:2月份81%的交易所内比特币交易来自Binance:金色财经报道,摩根士丹利3月24日发布报告指出,2月份于交易所进行的大部分比特币交易集中于一家交易所Binance。分析师表示,2月份81%于交易所进行的比特币交易是在Binance上完成的,因此摩根士丹利认为,币安上的交易员决定了比特币的价格。

摩根士丹利称,虽然其大部分客户向摩根士丹利所了解的是Coinbase的情况,但分析师认为要了解市场情况,更应该密切地监测Binance上的流量情况。在1月份,比特币上升40%之后,币安上BTC/USDT的交易量达到了Coinbase上的38倍,而在2022年初只有4倍。关于比特币最近的反弹,分析师指出叙事已经快速转为:传统银行业疲软=比特币价格上涨。他们还写道,这只是一种被价格行为自我强化的叙述。

事实上,如我们过去一年所强调的,比特币作为一种投机性资产,是由法币的前景和可得性以及由此产生的加密货币流动性所驱动的……[2023/3/27 13:29:07]

我们仔细分析一下合约调用过程:

Haun Ventures创始人Katie Haun:NFT将在更多用例推动下反弹:金色财经报道,Haun Ventures 创始人 Katie Haun 在接受 Bloomberg Crypto 采访时表示,NFT 将在更多用例推动下反弹,价值回归也将受到必要基础设施可用性增加的推动。 Katie Haun 解释说:“我们将越来越多地生活在数字世界中,我认为如果你生活在一个数字世界中,就会想要在那个世界中拥有数字商品,你不会满足于租用它们,这就是我们现在所做的,我认为 NFT 和数字稀缺商品从根本上改变了这一点。当基础设施存在时,将会有很多新的用例被解锁,NFT 也会变得更加高效和用户友好。”(finbold)[2022/10/5 18:39:45]

1.在浏览器的“数据输入”栏展示的是合约调用的参数,第一行表示地址列表从“40”(16进制)字节,也就是64字节开始,图中第4行,第二行表示转移数额的列表从“1a0”(16进制)字节,也就是416字节开始,数据输入栏第15行。

2.转账是按照地址列表的顺序进行的,往每个地址转入的数额和转移数据的列表一一对应的。

3.现在我们开始遍历地址列表,看第三行的“10”(16进制),表示的是即将为接下来的16个地址转入ETH。

按照图上顺序,当数到第10个的时候,发现值变成了“10”。这个值事实上是表示转移数额的列表长度。但是按照第三行的指示,应该向16个地址转入,那么合约会把“0x10”当成地址继续执行转账操作,向地址“0x10”转入0个ETH。

事实上,“0x10”是EVM“特殊地址”之一,它完全处在EVM的预编译合约列表内。它是一个由EIP-2537断言的预编译合约,是为BLS配对密码学程序而设的,但这个EIP还未部署到主网上。

那么在柏林硬分叉中给“0x10”发送0ETH会造成什么呢?会造成Gas消耗产生分歧。

“0x10”地址的Gas消耗分歧

柏林硬分叉改变了EVM中Gas消耗量的计量方法。在EIP-2929实施后,如果在一笔交易中对同一个存储槽多次执行状态存储操作,第一次执行会消耗更多Gas,后续执行的消耗会更少。

这就是?OpenEthereum在区块#12244294处发生Bug的根源:OpenEthereum包含了EVM已实现的预编译列表。所以OpenEthereum会对该笔交易中访问了“0x10”的交易给gas折扣。但网络的绝大部分活跃客户端都不是这样实现EIP-2929的,它们只会给访问了已激活预编译合约的交易提供gas折扣。

由此,OpenEthereum客户端对该交易消耗了多少Gas的计算与网络中其他客户端发生了分歧。

这场由Gas消耗分歧引起的OpenEthereum单客户端停机,虽没有严重到导致重大的链分叉,但也提醒我们利用多客户端实现来提升抗性。

不可否认,区块链技术仍然处于不断尝试不断前进的过程中,2021年爆发的Defi和NFT也以前所未有的速度普及给更多的受众,Tokenview希望携手更多的开发者打造更好的区块链世界。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-3:715ms