因 “0x10” 地址的 Gas 消耗分歧产生的柏林硬分叉 Bug

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

先看触发了这个事故的交易:

https://eth.tokenview.com/cn/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247

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

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

FILH三轮抢购完成,将于2月5日14:00上线币赢交易所:据官方消息,Filecoin标准满存算力通证FILH在币赢交易所的三轮抢购完成,超过5000人进行参与,售出超过2000T filecoin 标准满存算力。FILH将于2月5日14:00在币赢交易所存储版块上线,并开放filh/usdt交易对。

FILH为Filecoin的标准满存算力,严格按照自有矿场所拥有的Filecoin标准满存算力数量来发行,1:1的比例进行执行。

FILH对Filecoin挖矿进行颠覆型创新,矿工只需要持有FILH,就能进行无差别的Filecoin挖矿。由于FILH价格锚定真实有效的Filcoin标准算力,因此FILH代表着潜在的挖矿能力和未来收益,所以在二级市场中,FILH是没有清算风险,并且可以随时交易。[2021/2/4 18:53:57]

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

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

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

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

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

那么在柏林硬分叉中给“0x10”发送 0 ETH 会造成什么呢?会造成 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希望携手更多的开发者打造更好的区块链世界。

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

金智博客

比特币山寨币能让你变富吗?

原标题:垃圾币能让你变富吗? 您想快速致富还是坚守原则? 自FOMO开始以来,已经过去了至少三个月,而垃圾币还没有停止的迹象。 无数的人获得了n倍的收益,但我们却仍然继续嘲笑这一切。在我们的眼中,这些都是局,甚至和抢劫无疑。我们始终认为,我们的项目比他们的项目要好,并且坚信泡沫肯定会破灭。

欧易okex官网白宫表示 高达39.6%的资本利得税将涉及美国0.3%的纳税人

摘要:白宫经济顾问Brian Deese确认拜登总统将提议对年收入在100万美元或以上的人增加资本利得税,即将宣布的加税提案仅适用于年收入超过100万美元的个人(约50万个家庭),只会影响到0.3%的美国纳税人群。 据路透社报道,美国白宫经济顾问Brian Deese周一表示,美国总统拜登即将提出的资本利得税上调计划只会影响到0.3%的美国纳税人。

TRX千亿美元DeFi市场 DEX和借贷成红海

毫无意外地,DeFi市场的总锁仓价值(TVL)突破了1000亿美元,去年年底行业机构的预测变为现实。 DeBank 4月29日数据显示,包含以太坊、BSC、xDai、Polygon链上的各类DeFi应用,已经锁住了价值1038.6亿美元的加密资产。

USDC金色观察|MetaMask有哪些用途?

MetaMask是每一个Defi用户使用最多的钱包工具。4月28日,MetaMask的月活跃用户已达到500万之多。2020年10月,MetaMask的活跃用户超过100万,据分析显示,有趣的是,MetaMask在亚洲、非洲和南美新兴经济体中的使用量激增。

[0:0ms0-8:101ms