宇宙链 宇宙链
Ctrl+D收藏宇宙链

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

作者:

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

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

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

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

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

Etherscan将于3月1日在以太坊主网上执行预定服务器维护和升级:金色财经报道,区块链浏览器Etherscan发推表示,将于3月1日13:30在主网上执行预定服务器维护和升级,预计维护时间为 2 至 4 小时,在维护期间新区块不会更新,合约验证也不可用。[2023/2/28 12:34:28]

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

dYdX将属于投资者的1.56亿美元代币解锁时间从2月推迟到12月:金色财经报道,根据获得的一份文件,去中心化交易所 dYdX 将属于投资者的 1.56 亿美元代币解锁时间从 2 月 3 日推迟到 12 月 1 日,这将显著减少原定于 2 月 3 日进入流通的代币数量。报告称,根据新的时间表,8300 万个代币(占面向投资者的 2.77 亿个代币总数的 30%)将于 12 月 1 日解锁。在那之后,总代币的 40% 将在接下来的六个月内每月解锁,然后在下一年解锁 20%,再后一年解锁 10%。[2023/1/26 11:30:12]

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

欧洲央行执委:需要做更多工作来监管加密市场:金色财经报道,欧洲央行执委帕内塔表示,需要做更多工作来监管加密市场。[2023/1/4 9:51:48]

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

现在我们开始遍历地址列表,看第三行的“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希望携手更多的开发者打造更好的区块链世界。

标签:ETHTHEETHERHERETHVAULTWEATHER币togetherbnb能推倒几个togetherbnb全部剧情攻略

币安app下载热门资讯
报告:MicroStrategy公布2021年第一季度财务业绩

MicroStrategy今天公布了其2021年第一季度财务报告。报告显示,2021年第一季度该公司总共以10.86亿美元的总购买价格购买了约20,857枚比特币,平均购买价格为每枚52,087美元.

1900/1/1 0:00:00
数据不会说谎:Uniswap V3 表现到底如何?

为了回答这个问题,我分别按照总交易量和总美元交易额,对比分析了 Uniswap V2 和 Uniswap V3 的交易情况.

1900/1/1 0:00:00
传统机构加速布局加密产业 未来明确可期

狂人本着负责,专注,诚恳的态度用心写每一篇分析文章,特点鲜明,不做作,不浮夸!本内容中的信息及数据来源于公开可获得资料,力求准确可靠,但对信息的准确性及完整性不做任何保证,本内容不构成投资建议,据此投资,责任自负.

1900/1/1 0:00:00
金色早报 | 加密货币市场总市值突破2.5万亿美元

头条 ▌加密货币市场总市值突破2.5万亿美元金色财经报道,数据显示,加密货币市场总市值已突破2.5万亿美元,再创历史新高,目前约为2.523万亿美元。其中,BTC市值占比43.3%,ETH市值占比16.3%.

1900/1/1 0:00:00
金色观察 | 以太坊续创新高 或将引领山寨季走向高潮

以太坊续创新高。 在以太坊创下2,760美元的历史新高之后,世界第二高价值的加密货币达到了3200亿美元的市值。PayPal Holdings的总市值当时约为3180亿美元,这意味着以太坊已经超过PayPal的总市值。目前已有所回落.

1900/1/1 0:00:00
金色趋势丨知史鉴今 BTC酝酿新一轮行情

先看下BTC2013年的牛市,可以发现BTC月线在突破前一轮2011年牛市顶点2.618压制线,后面伴随而来的就是连续数月的上下大幅波动,不过月线收线始终未破2.618趋势线,后面的走势如图所示,行情整理后牛市继续,直至13年牛顶.

1900/1/1 0:00:00