ニュース暗号資産セキュリティ研究者が既存コントラクトへのリスクを指摘、イーサリアムがGlamsterdamのHoodiテストネット稼働を延期

セキュリティ研究者が既存コントラクトへのリスクを指摘、イーサリアムがGlamsterdamのHoodiテストネット稼働を延期

著者: Coindesk·

重要ポイント

  • •ChainSecurityの分析が提案中のガスルールへの懸念を浮き彫りにしたことを受け、イーサリアムの開発者は10月26日に予定されていたGlamsterdamのHoodiテストネット稼働を取りやめました。
  • •EIP-8037およびEIP-8038の下では、取り消されたステート変更に対するガス返還により、コラクトが失敗処理ルーチンを完了するのに十分なガスを持ち、一時的なものと意図されたエラーが永続的なオンチェーン記録になる可能性があります。
  • •ChainSecurityは、提案の下では新しいストレージスロットの作成に現在の22,100から110,020ガスかかる可能性があると推定しており、本来有効な処理が既存のガス予算を超過する恐れがあります。
  • •Hoodiテスト、ガス上限を2億に引き上げる計画、メインネットでの稼働について、今後のAll Core Devsミーティングで対応される調査を待つ間、代替日程は設定されていません。
  • •Glamsterdamは10月6日に既にSepoliaテストネットでの稼働を完了しており、ブロックビルダーを選択する新しいシステムや、より大きなブロックを支援することを目的とした変更が含まれています。
セキュリティ研究者が既存コントラクトへのリスクを指摘、イーサリアムがGlamsterdamのHoodiテストネット稼働を延期

セキュリティ研究者が既存コントラクトへのリスクを指摘、イーサリアムがGlamsterdamのHoodiテストネット稼働を延期

ChainSecurityが、提案中のガスルールによりスマートコントラクトが失敗した処理を永続的に記録できる可能性を示したことを受け、開発者は月曜日の稼働を取りやめました。

イーサリアムの開発者は、セキュリティ研究者らが、提案中のガス会計の変更が既存のスマートコントラクトによる失敗トランザクションの処理方法を変え、場合によってはエラーがオンチェーンに永続的に記録される可能性があることを発見したため、HoodiテストネットでのGlamsterdamアップグレードの稼働を延期しました。

アップグレードは当初、10月26日(月)17:42:48 UTCに稼働する予定でした。延期は木曜日のAll Core Devs Executionミーティングで決定され、開発者はまず、提案された変更がイーサリアムのメインネットワークで既に稼働しているコントラクトとどう相互作用するかを調査することで合意しました。Hoodiテストおよびガス上限を2億に引き上げる計画についても代替日程は発表されておらず、メインネットでのアップグレードの時期は未確定のままです。

Hoodiはイーサリアムの公開テストネットワークの一つです。これは、実際の資金がリスクにさらされる前に、今後のアップグレードをメインネットと同じクライアントソフトウェア上で実行する環境です。今回のような意図しない相互作用を表面化させることは、変更がメインネットに到達する前に検出するためにこのリハーサル段階が存在する目的そのものです。

研究者が発見した内容

懸念の中心はEIP-8037です。これは、イーサリアムがステートデータベースに新しいレコードを作成する際の課金方法を変更するものです。この提案は、ネットワークが処理できるトランザクション数を増やす中で、データベースの成長を抑えることを目的としています。

セキュリティ企業ChainSecurityは10月13日にこれらの提案の分析を公開し、EIP-8038と組み合わせることで、呼び出し先のコントラクトがガス(ネットワークのオペレーターに計算の対価として支払われるリソース)を使い切った際のコントラクトの応答方法が変わり得ることを示しました。

一部のスマートコントラクトは、失敗した処理を捕捉して処理を継続するように設計されています。試行の失敗を記録したり、以降の試行を無効化したり、別のステップ進んだりする場合があります。開発者は、残りガスがそれらの処理を完了するには少なすぎるため、代わりにトランザクション全体が取り消される、という挙動に依存していることがあります。

Glamsterdamはこの計算を変えます。提案されたルールでは、特定のレコードの作成に使用されたガスは、それらの変更が取り消されると返還され得ます。これにより、以前であればガス切れで取り消されていたはずの失敗処理ルーチンを完了するのに十分なガスがコントラクトに残る可能性があります。つまり、開発者が一時的なものと意図したエラーが、代わりに永続的なものになり得るのです。デプロイ済みのコントラクトは一般的に後から書き換えることができないため、このような挙動の変更はアプリケーションコードではなくプロトコル自体で解決する必要があります。

ChainSecurityは、逆方向のリスクも特定しました。同社の計算によれば、別の許容量を使い切った場合、新しいストレージスロット(コントラクトのオンチェーンデータの基本単位)の作成には、現在のルールの22,100に対して110,020ガスが必要になる可能性があります。そのため、既存のガス予算内で動作するコントラクトが、本来有効な処理を実行中に失敗する可能性があります。

これらの発見は、提案されたルールの下で既存のソフトウェアがどのように動作するかに関するものです。ChainSecurityはメカニズムを実証しましたが、主要な本番プロトコルが悪用可能であることを公に立証したわけではありません。イーサリアムのメインネットにはGlamsterdamの稼働日は確定しておらず、この発見は、既存のコントラクトが提案された変更を通じて現時点で悪用されていることを示すものでもありません。

Glamsterdamの現状

Glamsterdamは、ブロックビルダーを選択する新しいシステムや、ネットワークがより大きなブロックを処理できるようにすることを目的とした改善など、イーサリアムに複数の変更をもたらします。このアップグレードは10月6日にSepoliaテストネットでの稼働を完了しました。Hoodiは次の公開リハーサルとなる予定であり、テストネットのガス上限を2億に引き上げる計画もありましたが、このステップも現在同様に延期されています。

代替日程が設定されていない現時点で、スケジュールは、提案がデプロイ済みコントラクトとどう相互作用するかに関する合意済み調査の結果次第です。改訂されたHoodiの稼働時期やメインネットのタイミングは、今後のAll Core Devsミーティング、すなわち今週の延期が決定されたのと同じ場で決定されることになります。

本記事は、CoinDeskが最初に公開した報道に基づいています:Ethereum delays Glamsterdam test after security devs flag risk to existing contracts。ChainSecurityの完全な分析はこちらで入手できます。