火星链 火星链
Ctrl+D收藏火星链

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

作者:

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

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

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

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

数据:321万枚BLUR已从多个地址转移至Upbit存款钱包:金色财经报道,据Spot On Chain监测,由于2小时前Upbit发布BLUR上市公告,BLUR价格飙升27%。321万枚BLUR已从多个地址转移至Upbit存款钱包0x04b。[2023/6/27 22:02:54]

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

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

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

Eigen Layer已在以太坊主网部署Stage-1 Eigen Layer:金色财经报道,以太坊再质押协议Eigen Layer已在主网部署Stage-1 EigenLayer,正式上线以太坊主网。其中在该阶段功能与4月6日以来Goerli测试网上可访问的功能相一致,以太坊质押者可通过利用Eigen Layer合约或创建一个Eigen Pod并将信标链提取凭据配置到其Eigen Pod地址,来管理其流动质押Token并参与Eigen Laye,此外Eigen Layer最初将重新质押的上限设置为9600枚流动性质押Token,价值约170万美元。Eigen Layer的下阶段将引入Operators,负责为基于Eigen Layer协议构建的AVS(主动验证服务)执行验证任务。在第三阶段,将利用Eigen Layer促进多个AVS的启动。[2023/6/15 21:38:28]

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

以太坊基金会启动账户抽象相关项目资助活动,截止日期为3月31日:2月28日消息,以太坊基金会宣布在2023年2月27日至3月31日启动新一轮资助,以鼓励围绕账户抽象和支持它的必要基础设施进行开发、研究和教育,包括webauthn交易验证、账户抽象区块浏览器、捆绑器、p2p消息传递、定序器RPC等。

据悉,本轮赠款的目的是促进和启动多个与账户抽象相关的新项目。单个提案的预算上限为50,000美元,项目可以申请标准赠款计划以获得额外资金。[2023/2/28 12:33:27]

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

按照图上顺序,当数到第11个地址的时候,发现值是“10”。这个值会被认为是地址列表中的第11个地址,然而事实上是表示转移数额的列表长度。那么按照第三行的指示,应该向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希望携手更多的开发者打造更好的区块链世界。

标签:GENETHLAYER以太坊GENAIstETH价格LAYERX价格比特币以太坊是什么意思

以太坊交易热门资讯
BTC:?ChaiNext:大盘反弹,主流币联动

北京时间4月27日8点,反映加密货币市场整体走势的?ChaiNext?100?指数报?5656.60?点,过去?24?小时上涨?8.27%,成交额?1530.09?亿美元.

1900/1/1 0:00:00
AMP:中币关于上线UMA及RSR的公告

尊敬的中币用户:????中币于香港时间2021年4月27日上线UMA以及RSR。具体安排如下:????一、UMA????1、2021年4月27日16:00开放UMA充值;????2、2021年4.

1900/1/1 0:00:00
DFL:中币上线DFL(DeFIL)

尊敬的中币用户:??????中币将于香港时间2021年4月28日上线DFL。具体安排如下:??????1、2021年4月28日10:00开放DFL充值;??????2、2021年4月28日16:.

1900/1/1 0:00:00
ITF:Bitfly20210428快讯

Bitfly官方渠道:Bitfly官网:https://www.bitfly.bizBitfly微博:https://weibo.

1900/1/1 0:00:00
DEFI:DeFi周报 | DeFi一周重要数据&热门项目,看这篇就够了(4.19-4.26)

Defi周报是Odaily星球日报联合全球Defi孵化工场DeFictory、区块链营销咨询公司WXY、数据提供方OKLink、内容合作方BlockArk推出的一档栏目.

1900/1/1 0:00:00
SDT:BKEX Global 关于延迟上线SMTY(Smoothy)的公告

尊敬的用户:?BKEXGlobal现决定将SMTY/USDT交易对交易时间延迟到2021年4月27日21:30.

1900/1/1 0:00:00