スマートコントラクトをアップグレードすると、監査人が承認済みのストレージをなぜサイレントに破壊できてしまうのか?
機会
アップグレード可能なプロキシパターン(UUPS、Transparent Proxy、Diamond)はプロダクション環境のDeFiで標準的だが、厳格な制約を伴う。新しい実装のストレージレイアウトは、以前の実装が割り当てたすべてのスロットと互換性がなければならない。誤った位置に新しい状態変数を挿入すると、その後のすべてのスロットがオンチェーンエラーなしにサイレントで破損する。OpenZeppelinのアップグレードプラグインのような自動チェッカーは単純なケースは検出できるが、カスタムパッキングを使用したERC-7201名前空間ストレージ、アセンブリレベルのスロット割り当て、2つのファセットが同じストレージ領域を主張するDiamondファセットのクロスコリジョンは見逃す。2026年1月の査読付き研究(ProxyLens)は、既存ツールが検出できないファセット間コリジョン脆弱性の重大なクラスを発見した。監査人は実装コントラクトを単独でレビューするため、複数の委任ファセットを持つプロキシの完全なストレージマップを再構築することができない。
重要な理由
すべてのプロキシおよび実装コントラクトにわたって完全なバージョン差分付きストレージマップを構築するツールは、サイレントなデータ破損のクラスをデプロイメントのブロックへと変えるだろう。
機会をどう評価するか
Opportunity Scoreは測定値ではなく、私自身の見解です。どれほど痛みを伴うか、どれほど頻繁に影響を与えるか、そして今日時点で解決策がいかに少ないか。スコアが高いほど、構築する価値が高いと私は考えています。
それが現れたときにどれほどの痛みをもたらすか。
実際にどれほど頻繁に人々がそれに直面するか。
今日時点で、それに対する優れたツールがいかに少ないか。