目次
- はじめに
- ゲーム理論的評価とは?
- DEXの設計とインセンティブにおけるゲーム理論
- Uniswapとその先のインセンティブ構造
- ケーススタディ:ゲーム理論的レンズを通したDEXエクスプロイト
- 戦略的インタラクション図
- DEX開発者とセキュリティへの示唆
- 結論
- 参考文献
はじめに
分散型取引所(DEX)は、従来のオーダーブックを自動マーケットメーカー(AMM)スマートコントラクトに置き換えることで、暗号資産取引に変革をもたらしました。これらのプロトコル(例:Uniswap、SushiSwap、Cetus、KyberSwap)では、一連のルールと数式が取引の実行方法や流動性の提供方法を規定しています。しかし、DEXの成功とセキュリティは、単なるコードの正しさ以上に、参加者のインセンティブと戦略にかかっています。ゲーム理論的評価とは、プロトコルを合理的なプレイヤー(トレーダー、流動性提供者、アービトラージャー、攻撃者など)間のゲームとしてモデル化し、彼らの戦略的相互作用を分析するアプローチです。ゲーム理論のレンズを通してDEXプロトコルを検証することにより、開発者や研究者は、コード監査だけでは明らかにならない可能性のある設計上の弱点や攻撃ベクトルを発見することができます。
DeFiの近年の歴史における注目度の高いインシデントは、この視点の必要性を浮き彫りにしています。SushiSwap、Cetus、KyberSwap(その他多数)でのエクスプロイトは、それぞれ攻撃者がプロトコルのルール内で「勝利」戦略を発見したことに関わっていました。それは、正直な参加者を犠牲にして攻撃者に利益をもたらす戦略でした。後から考えると、これらのエクスプロイトの多くはゲームデザインの失敗として捉えることができます。つまり、プロトコルのルールが、意図せずして過大なリターンをもたらす悪意のある戦略を許容してしまったのです。本稿では、ゲーム理論的評価の概念を紹介し、それがDEXの設計とセキュリティにどのように適用されるかを解説します。Uniswapエコシステムの実際のケーススタディや、SushiSwap、Cetus、KyberSwapでの最近のエクスプロイトを用いながら、AMMベースの取引所におけるプレイヤー、戦略、利得のモデリングが脆弱性の特定にどのように役立つかを議論します。また、戦略的インタラクション図や、ゲーム理論を活用してDEXコントラクトを構築・保護するための開発者向けの技術的洞察も提供します。
ゲーム理論的評価とは?
ゲーム理論とは、意思決定者間の戦略的相互作用の研究です。ブロックチェーンの文脈におけるゲーム理論的評価とは、主要なプレイヤー、彼らの可能な戦略、そしてそれらの戦略の利得(結果)を特定することによってプロトコルを評価することを意味します。目標は、システムのルールが正直な行動に対するインセンティブを生み出し、不正または悪意のある行動が報われないようにすることです。ブロックチェーン設計において、ゲーム理論は参加者のインセンティブを調整するために使用され、それによって均衡(合理的な結果)が安全で効率的なネットワーク状態となるようにします1。言い換えれば、全員がゲームのルールに従って自己の利益のために行動している場合でも、その結果はプロトコルの完全性を維持すべきであるということです(この考え方は、正直な行動に対するナッシュ均衡の概念によってしばしば捉えられます2)。
スマートコントラクトのゲーム理論モデルでは、次の要素を定義します:プレイヤー、戦略、および利得。プレイヤーとは、プロトコルにおける参加者または役割です(DEXの場合、これには流動性提供者、トレーダー/アービトラージャー、および潜在的な攻撃者が含まれる可能性があります)3。各プレイヤーは一連の戦略、つまり様々な状況で取ることができる行動や決定を持っています(例:LPは流動性を追加または引き出すことを選択でき、アービトラージャーは価格の不一致がある場合に取引でき、攻撃者は利用可能なエクスプロイトがあれば試みることができます)3。戦略の各組み合わせに対して、プレイヤーは利得、つまりそれらの選択から生じる報酬またはペナルティを受け取ります(例えば、LPの利得は獲得した取引手数料からインパーマネントロスを差し引いたもの、攻撃者の利得は盗まれた資金と攻撃実行コストの比較になるかもしれません)4。これらの構成要素を体系的に分析することにより、プレイヤーが意図された「正直な」行動から逸脱してプロトコルに害を及ぼすインセンティブを持つ可能性のあるシナリオを発見できます。
ゲーム理論を理解することは、敵対的行動に耐え、ネットワークの完全性を確保できる堅牢なブロックチェーンプロトコルを作成するために不可欠です5。従来のスマートコントラクト監査はコードロジックのバグ発見に焦点を当てていますが、ゲーム理論監査(または経済的監査)は経済的または戦略的な欠陥、つまり設計が参加者に不正行為によって利益を得させる状況を発見することに焦点を当てています。この種の分析では、「合理的な攻撃者がXを行うことで利益を得られる場合、プロトコルはXを許可するか?もしそうなら、何がそれを阻止するのか?」といった問いを投げかけます。理想的には、安全な設計には収益性の高い悪意のある戦略が存在しないか、攻撃者にとって利益を上回るコストを課します。次のセクションでは、これらの原則が、複数のエージェントが金融環境で相互作用するDEXプロトコルに具体的にどのように適用されるかを見ていきます。
DEXの設計とインセンティブにおけるゲーム理論
分散型取引所は、アルゴリズムによって価格を設定し、プールされた流動性を使用して取引を促進するスマートコントラクトを介して運営されます。このシステムの参加者はそれぞれ異なるインセンティブと役割を持っており、これらはゲームとして分析することができます。主要なプレイヤーを分解し、ゲーム理論的思考がDEXの行動と設計にどのように光を当てるかを見てみましょう。
DEXにおけるプレイヤー、戦略、および利得
典型的なAMMベースのDEXにおける主なプレイヤーは以下の通りです。
- 流動性提供者(LP) – トークンペアを流動性プールに供給し、見返りとして取引手数料を得ます。LPの戦略には、どのプールに流動性を提供するか、どれだけの流動性を提供するか、いつプールに参加または退出するかを選択することが含まれます。彼らの利得は、得られた手数料収入から損失(例:トークン価格が変動した場合のインパーマネントロス)を差し引いたものです。LPはリターンを最大化しようと努める点で合理的であり、もはや利益が出ない場合は流動性を引き出す可能性があります。
- トレーダー/アービトラージャー – トレーダーはDEXを使用してトークンをスワップし、アービトラージャーは特にDEXと他の市場との間の価格差を探します。アービトラージャーは重要な役割を果たします。DEXの価格が広範な市場価格から乖離した場合、アービトラージャーはプールに対して取引を行い利益を得ることができ、そうすることでDEXの価格を元に戻します。この裁定取引メカニズムが、AMMの価格を外部市場とほぼ一致させるものです。アービトラージャーの戦略は単純です。価格の不均衡があるときはいつでも、その利益を得るために取引を実行します。不均衡がない場合(裁定機会がない場合)は何もしません。利得はこれらの取引からの利益です。均衡状態では、アービトラージャーが行動した後、DEXの価格は裁定利益が残らない点に達し、価格均衡の状態となります。(実際、Uniswapの定数積の公式は、公正価格からの逸脱があれば即座に裁定インセンティブを生み出し、理論的には合理的なトレーダーによって修正されるように設計されています。)
- 攻撃者(敵対的プレイヤー) – スマートコントラクトのロジックや経済設計における抜け穴や脆弱性を意図的に探し、不正に価値を引き出そうとする参加者です。攻撃者の「戦略」は本質的にシステムを悪用することです。これは、スマートコントラクトのバグをトリガーすることから経済パラメータを操作することまで、プロトコルが意図せず許可するものに応じて何でもあり得ます。利得は、盗まれた資金やエクスプロイトからの不当な利益であり、それを実行するためのコスト(取引手数料、フラッシュローンのような資本の必要性などを含む)と比較考量されます。安全な設計では、そのような悪意のある戦略が存在しないか、または不採算であることを意図しています。なぜなら、それが存在し、かつ収益性がある場合、合理的な攻撃者はそれを試みる可能性が高いからです。
ゲーム理論は、これらのプレイヤーについて構造化された方法で考察する手段を提供します。例えば、LPとトレーダー間の相互作用をゲームとしてモデル化することができます。トレーダーは低いスリッページ(高い流動性を必要とする)を好み、LPは高い手数料(取引量から生じる)を望みますが、価格変動リスクにも直面します。実際に研究者たちは、これらのダイナミクスを分析するためにゲーム理論モデルを使用してきました。例えば、青柳(2021)は、AMM DEXにおけるLPのリターンを推定するために、流動性提供者とトレーダー間のゲーム理論的分析を行いました6。このようなモデルは、LPとトレーダーの相互作用を戦略的ゲームとして扱い、特定の料金体系や市場条件下で流動性を提供することが価値があるかどうかを予測するのに役立ちます。モデルが一方の側が一貫して他方を出し抜くことができる(例:トレーダーが手数料で補填される以上に常にLPを犠牲にして利益を得る)ことを示した場合、それは設計の不均衡を示唆する可能性があります。
Uniswapとその先のインセンティブ構造
Uniswap(およびSushiSwapのような多くのクローンや後継者)の成功は、暗黙のうちにゲーム理論的に非常に健全であった、うまく調整されたインセンティブ構造に一部起因すると考えられます。Uniswap V2のAMMは単純なルールを設定しています:取引に少額の手数料がかかる定数積マーケットメイキング $(x * y = k)$ です。このメカニズムは、プール内の価格が外部市場と同期していない場合に、アービトラージャーがプールの価格がグローバル価格と一致するまで取引するインセンティブを持つシナリオを作り出します。裁定利益が残らなくなると均衡に達し、その時点で価格は「正しい」ものとなり、トレーダーは逸脱するインセンティブを持たなくなります。一方、流動性提供者はこのすべての取引活動から手数料を得ており、これがプールに資金を保持するインセンティブとなります。ゲーム理論の観点から見ると、Uniswapの設計は一種の協調的競争を奨励しています。つまり、裁定トレーダーは競争的に価格設定エラーを除去し(プロトコルの価格完全性に貢献)、LPは集合的に取引手数料の分け前と引き換えに公共財(流動性)を提供します。
しかし、これらのインセンティブ構造は完璧ではありません。トレードオフが存在します。例えば、インパーマネントロスは、価格が大幅に変動した場合、LPが単にトークンを保有している場合と比較して価値を失う可能性があることを意味します。手数料がこれを相殺するのに十分高くない場合、LPは価格変動を利用するアービトラージャーに対して負け戦をしている可能性があります。これはゲーム理論モデリングが役立つ分野です。「流動性提供はトークン保有者にとって支配戦略か、それともプレイしない(つまり、単に保有する)方が良いのか?」と問うことができます。モデルがLPが平均して損失を被ることを示唆する場合、彼らは最終的に撤退し、流動性を減少させ、取引所に損害を与える可能性があります。実際には、多くのDEXで、LPが流動性マイニングインセンティブ(Uniswapに対する初期の「ヴァンパイア攻撃」におけるSushiSwapのSUSHI報酬など)を通じて高い利回りを追い求めるのを見ました。これはゲーム理論の別の層であり、プロトコルがトークンインセンティブを提供することでLPを奪い合っているのです。
新しいDEX設計は、より複雑なゲームダイナミクスを導入しています。例えば、Uniswap V3や同様の「集中流動性」モデル(Sui上のCetusやKyberSwapなど)では、LPが流動性を提供する価格範囲を選択できます。これにより、流動性提供はより戦略的なゲームになります。LPは、より高い手数料収入を得るために流動性を集中させる価格範囲を予測しなければならず、本質的に他のLPと最も有利な範囲をめぐって競争します。アービトラージャーや通常のトレーダーは、これらの集中化されたポジションと相互作用します。この設計は、「すべてのLPが同じ狭い範囲に集まった場合、価格が動くとどうなるか?(答え:LPが調整するまで流動性が急激に低下し、スリッページが高くなる可能性がある)」といった疑問を提起します。ゲーム理論的分析は、ここでの均衡行動(例:LPは分散するかクラスター化するか、それがトレーダーにどう影響するか)を予測するのに役立ちます。また、KyberSwapのエクスプロイト(流動性範囲の更新方法に関連していた)で見るように、攻撃ベクトルを明らかにすることもできます。
要約すると、DEX設計にゲーム理論を適用するということは、各参加者の合理的な選択がプロトコルにどのように影響するかを精査することを意味します。理想的には、プロトコルは次のように設計されるべきです:
- 正直な参加(流動性の提供、通常の取引)が、典型的な条件下で各プレイヤーの最良応答戦略であること(プロトコルが安定かつ効率的であることを意味する)。
- 逸脱した、または悪意のある戦略(エクスプロイトなど)が不可能であるか、攻撃者に純利益をもたらさないこと(プロトコルが合理的な攻撃に対して安全であることを意味する)。
これらの条件が満たされない場合、問題が発生する可能性があります。次に、設計における適切なゲーム理論的均衡の欠如が深刻なエクスプロイトに対応した具体的な例に目を向けます。
ケーススタディ:ゲーム理論的レンズを通したDEXエクスプロイト
このセクションでは、SushiSwap、Cetus、およびKyberSwapにおける3つの注目すべきDEX関連のエクスプロイトを検証し、ゲーム理論モデリングがこれらのインシデントを予測または説明するのにどのように役立った可能性があるかについて議論します。これらの各ケースには、攻撃者に収益性の高い戦略を効果的に与えたスマートコントラクトの脆弱性または設計上の見落としが含まれていました。シナリオをゲームとして捉えることで、攻撃者の行動が、プロトコルが意図せず提示していた「ゲーム」に対する合理的な最良応答であった理由が明らかになります。
SushiSwapのRouteProcessor2エクスプロイト(2023年)
元々Uniswapからフォークされた人気のDEXであるSushiSwapは、2023年4月にRouteProcessor2と呼ばれる新しく導入されたルーターコントラクトの欠陥により、大規模なエクスプロイト被害に遭いました。このコントラクトは、異なるプール間、さらには他のDEX間の流動性を集約することを目的としていましたが、入力検証バグが含まれていました。この脆弱性により、ユーザーが指定したパラメータが、実質的に取引を攻撃者自身のコントラクトに再ルーティングすることを可能にしました。言い換えれば、ルーターはユーザーから渡されたプールアドレスを適切に検証せず、攻撃者がスワップを乗っ取る悪意のあるプールを指定することを可能にしました7。攻撃者はこれを利用し、ルーターを承認していたユーザーのトークンを攻撃者が管理するアドレスに送るトランザクションを作成し、約330万ドルの損失が発生しました。
ゲーム理論の観点から見ると、ここで起こったことは、SushiSwapプロトコルが悪意のある行為者に対して知らず知らずのうちに支配戦略を提供したということです。このシナリオのプレイヤーは、攻撃者と、コントラクトを承認した時点で受動的な犠牲者となるユーザー/LPです。攻撃者の戦略空間には、ルーターへの入力として「正当なプールアドレスを提供する」または「悪意のあるプールアドレスを提供する」という選択肢が含まれていました。コントラクトがアドレスのチェックを怠ったため、悪意のあるアドレス戦略は最小限のコストで即座に莫大な利得(数百万ドルを盗む)をもたらし、これが動機付けられた攻撃者にとって明白な合理的選択となりました。ここでは複雑な多段階ゲームは必要なく、単一トランザクションのエクスプロイトで十分でした。しかし、これを一手ゲームとしてモデル化すると問題点が浮き彫りになります。プロトコルはセキュリティの観点からナッシュ均衡になかったのです。なぜなら、プレイヤー(攻撃者)が一方的に「戦略」(ルーターの正直な使用から搾取的な使用へ)を変更し、抵抗なしに利得を劇的に向上させることができたからです。適切な均衡設計では、このような収益性の高い逸脱はルールによって排除されるか、対抗されるはずです。
ゲーム理論的監査は、「ユーザーが正直でなく、ルートパラメータを改ざんしようとしたらどうなるか?」と問うことで、これを捉えたかもしれません。理想的には、コントラクトは有効なプールのみをターゲットにできるように強制し、その戦略をゲームから排除するでしょう。実際、SushiSwapのエクスプロイトからの教訓は、単純かつ極めて重要なものです:すべてのユーザー入力を検証し、悪用の機会があれば誰かが最終的にそれを悪用すると想定することです。エクスプロイト後、SushiSwapのチームはユーザーに承認の取り消しを促し、修正を実施しなければなりませんでしたが、設計と監査の際に悪意のある行為者の経済的/ゲーム的インセンティブが考慮されていれば、このインシデントは未然に防げたかもしれません(この場合、「経済的インセンティブ」は単にコードの見落としによる資金窃盗能力でした)。
KyberSwapの精度バグエクスプロイト(2023年)
KyberSwap Elasticは、Uniswap v3に類似した集中流動性モデルを提供するDEXです。2023年11月、コントラクトの流動性計算における微小な算術精度エラーを悪用した巧妙な攻撃の被害に遭い、約4800万ドルが盗まれました8。このエクスプロイトは非常に技術的でした。攻撃者はフラッシュローンと一連の慎重に画策されたスワップを使用してプールの価格を他の流動性のない範囲に操作し、その後自身の流動性を挿入し、コードの精度不一致のためにプロトコルにその流動性を二重計上させるスワップを実行しました9。本質的に、攻撃者はシステムに実際よりも多くの流動性が存在すると誤認させ、それによって交換レートを自身に有利に歪め、本来よりもはるかに多くのトークンを引き出すことを可能にしました。これはすべて、非常に大きな数値における1単位の差(価格「ティック」付近の境界条件)を悪用することによって行われました。この攻撃はAMMの内部数学に対する深い理解を必要とし、軽微な設計/数学的欠陥でさえ重大な結果をもたらす可能性があることを改めて示すものでした。
これをゲーム理論を念頭に置いて分析すると、プレイヤーは攻撃者とプロトコルです(LPは再び損失を被る側です)。攻撃者の戦略は多段階かつ条件的でした。それは、攻撃者が価格を空の範囲に移動させ、次に流動性を注入し、その後2回連続でスワップを行うことに成功しなければならないミニサブゲームのようなものです。注目すべきは、この戦略が通常のユーザーにとっては全く直感に反するものだったことです。通常のトレーダーやLPがこのような一連の行動をとることはありません。なぜなら、それは取引自体から利益を得るためではなく、コントラクトの内部ロジックを悪用するためにのみ役立つからです。しかし、攻撃者の視点から見れば、このシーケンスが特定されると、KyberSwapのコードによって定義された「ゲーム盤」を考えると、それが最良応答戦略となりました。利得は莫大(数千万ドルを盗む)であり、コストはガス代と初期のフラッシュローンスワップにおける若干のスリッページ/損失(報酬と比較して無視できる程度)だけでした。
KyberSwapの設計がゲームとして評価されていたならば、「流動性提供者やトレーダーが不当な利得を得られるような一連の行動は存在するか?」と問うでしょう。ここでは、答えはイエスでした。非常に複雑なシーケンスであり、偶然見つかる可能性は低いものの、熟練した敵対者や徹底的なシミュレーションによって確実に発見可能です。厳密なゲーム理論的または経済的分析は、AMMをシステムとして扱い、価格変動を(フラッシュローンを介して)制御し、自由に流動性を挿入できる「攻撃者」をモデル化しようとしたかもしれません。この分析では、算術精度が問題となるエッジケース(本質的にスマートコントラクトをゲームのルールセットのように扱い、プレイヤーが悪用できるルールの矛盾をチェックする)を考慮した可能性があります。0.00000000001%の差がチェックを回避することを可能にしたという事実10は、合理的な行為者が数値的なエッジケースをどのように悪用するかを考慮に入れなかった可能性を示唆しています。言い換えれば、設計者は特定の不変条件(「価格変動が十分に小さければ、ティック境界を越えない」など)を想定していましたが、敵対的なプレイの下ではそれらが成り立ちませんでした。攻撃者はそれらの仮定に違反する戦略を見つけました。
KyberSwapハッキングの事後分析では、根本原因は、わずかな違いのある2つの関連計算を実行し、それらが同じ結果をもたらすと想定したが、実際にはそうではなかったことであると指摘されました11。ゲームの観点から言えば、これはゲームのルールに脆弱な箇所を作り出しました。つまり、賢いプレイヤーがゲーム設計者が不可能だと考えていた動きをすることができたのです。今後、KyberSwapチームや他の人々は、このような条件に対するより厳格なテストを実装しましたが、このインシデントは、「ゲームを壊そうとするプレイヤー」という観点で考えることが必要であることを強調しています。
Cetus流動性プールエクスプロイト(2025年)
CetusはSuiネットワーク上のDEXおよび集中流動性プロトコルであり、2025年5月、これまでで最大級のDeFiエクスプロイトの標的となりました。攻撃者は、プロトコルが価格曲線と準備金計算を処理する方法を悪用し、Cetusの流動性プールから約2億2000万ドル以上の資産を流出させることに成功しました。初期の分析によると、攻撃者は偽造トークンを使用して価格曲線を操作し、内部状態を歪めるためにほぼゼロの流動性を追加し、その後、同等の価値を預けることなく実物資産(SUIやUSDCなど)を繰り返し引き出しました12。要するに、攻撃者はAMMを騙し、価値のない、またはほぼ価値のない「偽造」トークンと引き換えに実物トークンを実質的に払い出させたのです。Cetusはコントラクトを停止しなければならず、盗まれた資金の大部分は凍結されたか追跡中であると報告されましたが、プロトコルのトークン価格と信頼への損害は甚大でした。
これをゲーム理論のレンズを通して検証してみましょう。このエクスプロイトは手順の点でSushiSwapのものより複雑でしたが、核心はCetusの設計空間が意図せず攻撃者にとって超高収益な戦略を含んでいたということです。ここでのプレイヤーには、攻撃者と、被害者としてのプロトコル(LP)(LPの資金が流出したため)が含まれます。攻撃者の戦略には一連の行動が含まれていました。実質的に価値のない偽トークンを作成または入手し、そのトークンを実物トークンと取引することでプールの価格を操作し(誤計算された曲線数学を利用)、その後ごく少量の流動性を提供してプールの状態を特定の方法で設定し、最終的にプールから貴重なトークンを抽出する除去/スワップを実行するというものです。これが可能だったのは、プロトコルがおそらく「誰も重要でない量の流動性を追加したり、価値のないトークンをプールで使用したりしないだろう」といった仮定をしていたか、あるいは流動性が極端に不均衡な場合に準備金を計算する方法を見落としていたためです。攻撃者の戦略の利得は莫大(9桁の価値)であったのに対し、コストは最小限でした(偽造トークンは設計上安価であり、取引コストは報酬に比べて無視できる程度でした)。
ゲーム理論の用語で言えば、プロトコルが支配される戦略を排除するための適切な制約を課すことに失敗したと言えるでしょう。合理的な攻撃者にとって、ルールが「偽トークンを印刷して実トークンを流出させる」戦略を許容する場合、それは通常の取引のような正直な行動を支配します。技術的な手段があれば、合理的な行為者が数百万ドルを放置することはありません。したがって、エクスプロイト前のゲーム理論的評価は、極端なケースを探ったかもしれません:「誰かがプールに微量の資産を提供したらどうなるか?他の場所で基本的に流動性がゼロのトークンで価格設定式を操作しようとしたらどうなるか?」これらの質問はコーナーケースではありますが、敵対者がまさに探求するものです。「攻撃者」を任意の新しいトークンや微量の流動性を導入できるプレイヤーとしてモデル化することにより、設計者はプロトコルがそのような動きを適切に考慮していなかったことを特定できたかもしれません。修正は、AMMの数学を調整してエッジケースを処理することです(例:最小限の流動性提供を要求する、価格比率の健全性チェック、または準備金がおかしくなった場合の他のサーキットブレーカー)。
Cetusのエクスプロイトは、経済設計の脆弱性を考慮する必要性を強調しています。それは単純なコーディングバグ(Sushiの場合のcheck
の欠落など)ではなく、AMM自体のゲームデザインの欠陥でした。攻撃者はプールの経済ルールを悪用しました。これは、ゲーム理論モデリングが価値がある理由の純粋な例です。それは、プロトコルがその数学やロジックのために報いる可能性のある異常な戦略を探す攻撃者のように考えることを強制します。報酬が現実的でリスクが低い場合、誰かがその戦略を取るでしょう。
戦略的インタラクション図
DEXでさまざまな参加者がどのように相互作用し、攻撃者がどこに適合するかを視覚化するために、以下の簡略化されたシーケンス図を考えてみましょう。これは、AMMベースのDEXの通常の操作の概要を示し、それを攻撃者の介入と対比させます。
sequenceDiagram participant LP as Liquidity Provider (LP) participant Arb as Arbitrageur participant Attacker participant DEX LP ->> DEX: Add Liquidity (Token A & Token B) Arb ->> DEX: Swap to correct price disparity (Arbitrage trade) DEX ->> LP: Collect trading fees (reward to LP) Attacker -->> DEX: Craft malicious transaction (attempt exploit) DEX -->> Attacker: Unexpected payout (drained funds) Note over Attacker,LP: Malicious strategy yields attacker profit<br/>while LPs suffer losses
図:DEXにおける簡略化されたインタラクションフロー。LPは取引を可能にするために流動性を提供し、トレーダーやアービトラージャーはトークンをスワップします(アービトラージャーはAMM価格を市場価格に合わせるのを助け、LPに手数料を支払います)。攻撃者が欠陥を発見した場合、DEXスマートコントラクトに対してエクスプロイトトランザクションを実行し、攻撃者に多額の支払いが生じ、LPのプールに損失が発生します。
通常の操作(図の左側)では、LPとトレーダー/アービトラージャーは相互に有益な(または少なくとも日常的な)戦略に従事します。LPは手数料を獲得し、トレーダーはスワップを行い、アービトラージャーは価格の一貫性を維持します(そしてそのために少額の利益を得ます)。システムのルールは、これらの行動がDEXを効率的に運営し続けるように設計されています。これは、全員が「正直な」戦略に従うことで安定した結果につながる意図されたゲームです。
右側には、攻撃者の相互作用が見られます。攻撃者の行動は意図された設計の一部ではなく、欠陥によって可能になります。攻撃者の動き(「悪意のあるトランザクションを作成」)は、DEXコントラクト設計者が正当な行動として予期していなかった異常な入力またはシーケンスと考えることができます。DEXがこの行動を処理すると、結果は予期せぬ支払いとなり、実質的に流動性プール(LP)から攻撃者に価値が移転します。ゲーム理論の用語では、攻撃者は通常の均衡経路の外で優れた利得をもたらす戦略を見つけました。図中のその矢印(DEX -> 攻撃者:資金流出)の存在は、壊れたインセンティブ調整の視覚的な手がかりです。つまり、起こるべきではなかった方法で価値が抽出されています。注記は結果を強調しています。攻撃者は利益を得、LPは損失を被り、システムの意図された均衡(LPが手数料を獲得し安全である状態)が崩壊したことを意味します。
このような図は、開発者や監査人が行動の流れについて考察し、どこに安全策を挿入すべきかを特定するのに役立ちます。例えば、「DEXは本当に攻撃者の矢印が発生することを許可すべきか?もしそうでなければ、その可能性をどのように排除するか?」と問うかもしれません。解決策は、入力チェックの追加、特定のアクションへの制限の賦課、または攻撃者が行ったことを試みても失敗するか利益が出ないようにメカニズムを設計することなどが考えられます。
DEX開発者とセキュリティへの示唆
上記の議論と例は、ゲーム理論モデリングが単なる学術的な演習ではなく、DEXプロトコルの構築と保護に実用的な意味を持つことを明確にしています。以下に、DeFiスマートコントラクトの開発者およびセキュリティ監査人向けのいくつかの主要なポイントと推奨事項を示します。
- 設計段階にゲーム理論を組み込む:DEX(または任意のDeFiプロトコル)を設計する際には、プレイヤーとインセンティブの観点から明確に考えます。「行為者は誰で、彼らの目標は何か?行為者がプロトコルの意図された使用法から逸脱した場合、何が起こるか?」といった質問をします。利益を求めるアービトラージャーや悪意のある攻撃者の動きを予測することで、望ましくない戦略を無力化するルールを設計できます。例えば、ほぼゼロの流動性を提供することが利点をもたらす場合(Cetusのケースのように)、それを無効にするルール(最小流動性要件やトークン比率の健全性チェックなど)を導入します。
- 支配的なエクスプロイト戦略を特定し排除する:安全なプロトコルでは、意図されたルールを「破る」ことで参加者に大きな利得をもたらす戦略は存在すべきではありません。分析の結果、特定の条件下で攻撃者がXを行って金銭を盗んだり不当な利益を得たりできることが判明した場合は、それをコーディングバグと同様に深刻に扱います。これらの戦略は、極端な条件やエッジケース(精度限界、参加者が少ないシナリオなど)を考慮した場合にのみ見えることがあります。攻撃者がシステムをそれらの極限状態に追い込む方法を徹底的に想像してください。役立つ考え方は、少なくとも1人の参加者が敵対的に行動すると仮定し、それが他の参加者の利得を損なう可能性があるかどうかを確認することです。
- 形式的モデリングとシミュレーションを使用する:複雑なプロトコルでは、形式的手法やシミュレーションを使用して相互作用をモデル化することが役立ちます。メカニズムデザインやエージェントベースモデリングのツールは、合理的なエージェント(敵対者を含む)がシステム内でどのように行動するかをシミュレートできます。例えば、Gauntletなどの企業は、エージェントを使用してDeFiプロトコルをシミュレートし、経済的脆弱性を見つけることを専門としています。簡略化されたモデル(重要な相互作用に関する利得行列や決定木など)でさえ、明白でない問題を明らかにすることができます。KyberSwap Elasticのようなプロトコルが境界での流動性提供と価格変動をシミュレートしていれば、二重計上バグは結果の異常として際立っていたかもしれません。同様に、ほぼゼロ価値のトークンをAMMに導入するシミュレーションは、Cetusで見られたような不均衡を明らかにしたかもしれません。
- コード監査と経済的監査を組み合わせる:従来の監査は、再入可能性、算術オーバーフロー、アクセス制御の問題など、不可欠なものを探します。しかし、多くのエクスプロイト(特にDeFiにおいて)は本質的に経済的なものです。コードは書かれたとおりに実行されても、意図しない経済的結果を生み出す可能性があります。したがって、「経済的監査」またはゲーム理論監査を、専門チームまたは内部レビューの一環として実施する必要があります。これは、資金がコントラクトをどのように流れるか、そして参加者がルールに基づいて不当に価値を吸い上げることができないかを精査することを意味します。一部のセキュリティ企業や研究グループがスマートコントラクトにおける経済/ゲーム理論監査を明確に強調していることは注目に値し113、これがどれほど重要になっているかを反映しています。
- 過去のインシデントから学ぶ:DeFi分野には、エクスプロイトやハッキングのリストが増え続けており、それらは集合的に「やってはいけないこと」の知識ベースを形成しています。これらのインシデントの多くは、インセンティブの失敗に集約できます。例えば、2020年のSushiSwapによるUniswapへの「ヴァンパイア攻撃」(エクスプロイトではなく戦略的行動)は、流動性提供者に十分な報酬を与えなければ、競合他社がより良いインセンティブで彼らを引き抜くことができることを示しました。これは本質的に競争のゲーム理論の問題です。より直接的には、私たちが議論したエクスプロイトはパターンを示しています:入力の未検証、極端なプレイヤー行動の未考慮、プレイヤーが「通常」の範囲内にとどまるとの仮定などです。開発者として、新しいメカニズムを設計する際には、それを既知の攻撃ベクトルにマッピングしてみてください。あなたのメカニズムは、いずれかの時点で正直な行動の仮定に依存していますか?もしそうなら、それは危険信号です。その仮定を排除できるか、少なくとも逸脱を検出して罰することができるかを確認してください。
- 仮定するのではなく、軽減する:最後に、常にコード内で考えられるエクスプロイトを軽減することを、人々が悪用しないと仮定するよりも優先してください。DeFiにおける人間(およびボット)は、悪用可能なものは何でも悪用します。これは、ブロックチェーンのオープンな性質と賭けられている高い報酬によって事実上保証されています。どこかに0.00001%の不均衡があれば、裁定ボットがそれに飛びつきます。誰か他の人が支払うコストのかかる操作があれば、MEVサーチャーがそれを並べ替えるかもしれません。そして、論理的な抜け穴があれば、攻撃者が最終的にそれをスクリプト化するでしょう。ゲーム理論は、戦略が利得をもたらすなら、誰かがそれを取ることを教えてくれます。したがって、悪意のある戦略が実行できないか、攻撃者にとって得るものよりもコストがかかるようにコントラクトを設計してください。例えば、レート制限を課し、不変条件(入出力の総価値など)をチェックし、十分に監査された数学ライブラリを使用するなどです。そして、意図的に経済的余裕を許容する分野(例えば、裁定を可能にするため)では、それがプロトコルに利益をもたらす(裁定が価格を均衡に導き、手数料を通じてLPに報酬を与えるなど)ことを確認し、害を及ぼさないようにしてください。
ゲーム理論的思考を開発ライフサイクルに織り込むことで、DEX構築者はプロトコルのセキュリティと堅牢性を大幅に向上させることができます。それは攻撃者の一歩先を考えること、つまり彼らがプレイしているのと同じ「ゲーム」を、実際にオンチェーンで稼働する前に、紙の上やシミュレーションで行うことなのです。
結論
分散型取引所は本質的に多様な参加者を持つマルチエージェントシステムであり、そのためゲーム理論的分析の格好の対象となります。UniswapやSushiSwapのようなDEXは、真空状態で実行される単なるコードではありません。それは、実際の経済主体が反応する一連のルールであり、時には予測不可能または敵対的な方法で反応します。ゲーム理論的評価は、インセンティブと戦略を分析することによってこれらの反応を予測するためのフレームワークを提供します。これまで見てきたように、最悪のスマートコントラクトエクスプロイトの多くは、システムを悪用する合理的なプレイヤーを考慮に入れなかった失敗として理解できます。SushiSwapのルーターバグはそれに気づいた誰にでも無償の勝利を提供し、Cetusの設計は攻撃者が無から価値を生み出すことを可能にし、KyberSwapの数学的欠陥は狡猾なプレイヤーに流動性を二重取りさせました。
これらのプロトコルがゲームとして徹底的にモデル化され、すべてのプレイヤーの潜在的な動きと利得が特定されていたならば、チームは攻撃者よりも先にそれらの脆弱性を発見できたかもしれません。もちろん、後から言うのは簡単であり、攻撃者が考案するすべての巧妙なトリックを予測することは不可能です。しかし、ゲーム理論的な考え方を採用することで、従来の思考では見逃す可能性のある設計上の問題を捉える確率が大幅に向上します。それは開発者に攻撃者のように考え、「もし私が利益のためにこのプロトコルを破りたいなら、どうすればよいか?」と自問することを促し、そしてプロトコルがその計画を阻止するか、少なくともそれを容易にしないようにすることを保証します。
DeFi分野の開発者やセキュリティエンジニアにとって重要なメッセージは、プロトコル設計をメカニズムデザインとして扱うことです。すべてのパラメータ(手数料、流動性数学など)とすべての権限(ユーザーが何を入力できるか、コントラクトがどのように使用できるか)が、ユーザーがプレイする「ゲーム」を形成します。そのゲームを厳密に分析することで、均衡がセキュリティと一致すること、つまり正直な行動が報われ、不正な行動が報われないことを保証できます。最終結果は、効率的でユーザーフレンドリーであるだけでなく、ブロックチェーンの敵対的な環境が必然的に招く無数の戦略的エクスプロイトに対しても回復力のあるDEXプラットフォームとなるでしょう。
数百万ドルがかかっており、敵対者が絶えず弱点を探っている業界において、ツールキットにゲーム理論を活用することは、安全なプロトコルと次の見出しを飾るハッキングとの違いを生む可能性があります。分散型取引所が進化し続けるにつれて、従来の監査やテストと並行してゲーム理論的評価を統合することが、分散型金融の未来を守る上で極めて重要になるでしょう。
参考文献
このブログ記事の議論に参加してください:
この記事は AI 搭載の翻訳ツールによって翻訳されました。翻訳に誤りがある場合はご容赦ください。すぐに校正し、考えられる誤りを修正します。誤りを見つけた場合は、GitHub で問題を作成してください。