EthereumのHoodiテストネットで予定されていたGlamsterdamハードフォークが延期されました。ChainCatcherによると、スマートコントラクトのセキュリティ企業ChainSecurityは10月22日、研究者が既存のコントラクトにセキュリティ上の影響を及ぼす問題を発見し、実際の事例を13件特定したと発表しました。現在、影響を受けるプロジェクトに対して責任ある情報開示を進めています。

この発表では、各チームにコントラクトを見直すよう促す一方、Ethereum Foundationは影響の範囲を評価しています。関係するプロジェクトの名称やコントラクトアドレスは明らかにされず、代替となるフォークの日程も示されませんでした。問題となっているのは、外部呼び出しの失敗を捕捉した後も実行を続けるコントラクトです。検討中のガス変更のもとでは、これまでならガス切れで実行が停止し、処理が取り消されていた失敗処理が、完了してしまう可能性があります。呼び出し元が、意図した処理の完了には足りないものの、外側のコントラクトに失敗を恒久的に記録させるには十分な量のガスを渡すと、本来なら再試行できた処理の復旧手段が失われるおそれがあります。

技術開示では、10月13日版の仕様におけるEIP-8037およびEIP-8038を検討しており、ガスに関する例では提案されている実行時の挙動を説明しています。ステートガスのリザーバーは呼び出しを通じて全量が引き継がれ、転送上限が適用されるのは実行ガスであり、gasleft()が返すのも残りの実行ガスのみです。検討対象のルールでは、トランザクション開始時点でゼロだったストレージスロットをクリアすると、最大97,920の実行ガスが返還される可能性があります。また、中間コントラクトはREVERT時に、以前に計上されたステート作成コストを差し戻して呼び出し元に返すこともできます。