Ethereum開発者、Glamsterdamアップグレード前にガス前提の見直しを要請
重要ポイント
- •EIP-8037は、新しいアカウント、ストレージスロット、デプロイ済みバイトコードを含む新規ステートの作成コストを再価格設定する。
- •EIP-8038は、SSTORE、SLOAD、cold account accessなどの既存ステートへのアクセスコストを引き上げる。
- •再実行分析では、大半のスマートコントラクトは同じように動作し、少数のみがより高いガス上限や手動レビューを必要とする可能性が示された。
- •最もリスクが高いのは、固定ガス前提、gasleftベースのロジック、柔軟性のない署名済みトランザクション上限に依存するコントラクトだ。
- •ウォレット、RPCサービス、ノードツールは、キャッシュされた定数が新スケジュール下でガス需要を過小評価する可能性があるため、ガス推定ロジックを更新する必要がある。

Ethereumネットワークは、Glamsterdamアップグレードに向けた準備を進めている。これは、EIP-8037とEIP-8038という2つの予定提案を通じて、ステート関連操作のガス料金を再調整するプロトコル更新である。今回の変更は、取引が実際に消費する計算資源とストレージ資源にガス価格を合わせることを目的としており、2021年のBerlinフォークで行われた前回の調整以降に広がった乖離を是正するものだ。
Ethereum Foundationによると、EIP-8037は、新しいアカウント、ストレージスロット、デプロイ済みバイトコードを含む新規ステートの作成コストを対象とし、これらの शुल्कを引き上げたうえで個別に計測し、整合させる。これにより、ブロックのガス上限が上昇し続けても、ステートの増加を持続可能なものに保つことが狙いだ。
一方、EIP-8038は、SSTORE、SLOAD、cold account access、EXTCODESIZE、EXTCODECOPYなどの操作を含む既存ステートへのアクセスコストを引き上げ、拡大したネットワークのステートサイズにおける現在の性能指標を反映する。組織は、この再価格設定スケジュールがベーススループットのおよそ3倍の増加を支えるよう設計されており、ノード運用者の性能を低下させることなくさらなるスケーリングを行うための前提条件になると述べている。
開発者への影響と推奨対応の評価
新しいスケジュールのもとで再実行された過去のメインネット取引の分析によると、スマートコントラクトの大半は同じように実行される一方、挙動が変わるのはごく一部にとどまる。取引は4つのカテゴリに分かれる。変更なしで動作するもの、ガス使用量は変わるが成功するもの、元のガス上限を使い切るが上限を引き上げれば完了するもの、そして大幅に上限を増やしても失敗するものだ。
最後のカテゴリに属するコントラクトは通常、ガスコストに関する脆弱な前提に依存している。たとえば、Solidityのtransferおよびsend関数に固定されている2,300 gasのようなハードコードされたstipend、外部呼び出しでの明示的なgas値、gasleft()に基づく条件分岐、あるいは柔軟性のない上限を持つ署名済みトランザクションなどである。Ethereum Foundationは、最も影響を受ける開発チームへの直接連絡をすでに開始しており、最も影響が大きい組織の報告書もまとめている。
開発者とインフラ運用者は、公式検索ツールでコントラクトの状態を確認し、現在新しいスケジュールが稼働しているPlatåbergetテストネットでテストを行うよう案内されている。ガス上限の引き上げで修正可能なコントラクトは、フロントエンドまたはインフラの更新が必要になる。一方、破損の可能性があるコントラクトは、フラグが付いた呼び出し箇所を手動でレビューする必要がある。
ウォレット提供者、RPCサービス、ノード関連ツールも、キャッシュされた定数が新ルールのもとで過小見積もりを招くため、ガス推定ロジックを更新しなければならない。一般ユーザーは対応不要であり、更新済みのウォレットとサービスが移行を自動的に処理する想定だ。再価格設定はすでに開発ネットワークで有効になっており、メインネットでの有効化前にパブリックテストネットへ展開される。