Post

EthStorage
EthStorage@EthStorage·
#EthStorage Tech Lead wrote a summary on Pectra Upgrade issue and the experience: Ethereum’s recent price performance has been a concern for many ETH holders, with some looking forward to the upcoming Pectra upgrade as a potential turning point for the ecosystem. However, this upgrade has faced challenges in its activation on public testnets. The first activation attempt on Holesky remains incomplete, and the second activation on Sepolia last week also encountered issues. Fortunately, the core development team quickly released new client versions to restore network stability. As node operators on Sepolia, we were monitoring the network closely, especially after the Holesky issues. Shortly after the upgrade activation, we noticed a surge in empty blocks, indicating that transactions were not being processed. Confirmation came from @TimBeiko’s tweet that the upgrade had encountered problems. Within a few hours, Geth and other execution clients released updates, restoring normal operations. The root cause of the issue was related to Ethereum’s staking deposit contract, which had been customized for testnet use with a “token gated” mechanism—allowing only specific token holders to interact with it. However, this mechanism clashed with the deposit contract’s processing logic, which assumed no ERC-20 event emissions during transactions. When such an event occurred, the contract rejected the block as invalid, causing network instability. After diagnosing the problem, the client teams prepared and coordinated a fix, set for release in 3.5 hours. To keep the network running in the meantime, testers reverted the problematic transaction, temporarily stabilizing the network. However, attackers quickly exploited the same vulnerability, prompting the team to privately discuss and deploy a fix on controlled nodes to mitigate further disruptions. Finally, when the full upgrade rolled out, the attack was neutralized. This incident highlights the complex coordination challenges and security risks of decentralized networks, even on testnets. Given Ethereum’s significant impact on the broader community, even testnet upgrade issues can cause concerns among ETH holders. Hopefully, the core team will take an even more cautious approach to future upgrade testing. Wishing the Ethereum mainnet Pectra upgrade a smooth deployment! 🚀
qzhodl@qzhodl

这个周期以太坊的价格表现被很多的 ETH 持有者抱怨,有些人会寄希望于即将到来的 Pectra 升级,期待这次从去年延续到今年的重要升级,能为以太坊生态带来新的气象。但是这次升级在两个公开测试网的激活都不顺利,第一次 Holesky 至今无法获得最终性确认,而第二次,也就是上周在 Sepolia 上的激活,也发生了一个插曲,好在核心开发团队及时发布了新的客户端版本,从而使整个网络最终恢复了正常。 我们自己在跑 Sepolia 的全节点,由于之前在 Holesky 发生了问题,所以我们这次在升级前就在关注网络状态,发现在升级激活后,网络中很快出现了大量空块,也就意味着网络无法打包交易,随后查看了 @TimBeiko 的 tweet 后得到确认,升级发生了问题。随后的几个小时后,Geth 以及其他的几个执行客户端都发布了新的版本,整个网络随后恢复了正常。我们也比较好奇,究竟事情的来龙去脉是什么。 @vdWijden 是 Geth 团队的核心开发者,也亲历了整个处理过程,他写了一篇文章回顾了经过,让我们也更加了解了整个过程。 问题发生的主要地方在以太坊质押的存款合约,这次 Pectra 升级的一个功能是可以在执行层触发从这个存款合约里取款,所以在升级激活后,测试人员发了一个取款交易进行测试,正是这个交易,导致了整个网络出现了问题。 而出问题的原因是因为这个存款合约和主网的合约不太一样,以太坊开发团队做了特殊的定制,叫做 "token gated deposit contract",也就意味着只有拥有这个特殊的 token 的人才能直接和该合约交互,类似一种白名单的机制。不过他们没有想到的是,这个 "token gated" 机制和 deposit contract 的处理发生了冲突,具体是 ERC20 token 在转账的时候会 emit 事件,而deposit contract 的处理逻辑的假设是没有这类的事件发出的,如果有的话,就会认为是非法区块,从而拒绝承认该区块。 在分析完 root cause 之后,各个客户端都紧急出了 fix 的版本,计划在三个半小时后统一发布更新。而为了让网络在等待的这段时间也能正常出块,测试人员撤销了之前引发问题的那笔交易,从而让整个网络恢复正常。 但是意外发生了,在网络暂时恢复后,马上又出现了之前的问题,他们调研后发现,有攻击者利用相同的漏洞攻击他们,此外他们还怀疑之前的一些公开的技术讨论被攻击者看到。所以他们决定私下讨论,并秘密在团队控制的节点发布更新来缓解问题,好在三个半小时之后整个网络都进行了升级,这个攻击也就不再奏效了。 后面的这个插曲很有意思,感兴趣的话,可以读读原文。不过我们可以看到,去中心化网络面临的协调难度以及攻击强度都是巨大的,即使在测试网,都会出现这些难处理的事情。 另外一方面,以太坊牵动着非常广泛社区的利益,即使是测试网升级的风吹草动,也牵动着很多持币者的心,希望之后核心团队还是能更加谨慎的对待升级测试。 最后还是希望以太坊主网的 Pectra 升级一切顺利!

English
0
0
1
716
Paylaş