深度調査レポート:Resolvプロトコルハッキング事件、最終的な負担者は誰か?
- 核心的な見解:ResolvプロトコルのUSRステーブルコインが攻撃を受け、攻撃者はその鋳造関数の重要な脆弱性を利用し、極めて低いコストで巨額のUSRを鋳造し現金化した。これは、デルタニュートラル・ステーブルコインのアーキテクチャが究極の資本効率を追求する際に、担保バッファーの欠如とオフチェーンコンポーネントへの依存により存在するシステミックなセキュリティリスクを露呈した。
- 重要な要素:
- 攻撃者は約10万ドルのUSDCを投入しただけで、鋳造の脆弱性(オフチェーン署名者の鍵漏洩または金額検証の欠如の可能性)を利用し、約8000万ドルの価値を持つ8000万枚のUSRを無から鋳造した。
- 攻撃者はCurveなどの流動性プールでUSRを売り抜け、約2500万ドルを現金化し、USR価格は17分間で最低2.5セントまで下落し、流動性プールの崩壊を引き起こした。
- プロトコル設計によれば、損失はまずRLP(劣後層)保険プールが負担するが、USR価格のペッグ喪失により、Morphoなどのレンディングプロトコル上の高レバレッジ循環ポジションが清算され、二次的な損失が発生した。
- この事件は、デルタニュートラル・ステーブルコインの根本的な弱点を明らかにした:オフチェーン署名者が中央集権的な攻撃対象となり、「1:1資本効率」設計にはセキュリティバッファーが欠如しており、鋳造ロジックの脆弱性がシステムを直接貫通してしまう。
- 今回の攻撃はCurve、Morpho、Fluid、Eulerなど複数のDeFiプロトコルに波及し、危機的状況においてDeFiのコンポーザビリティがリスクを増幅させる特性を示した。
原文著者:菠菜菠菜(X:@bocaibocai_)
核心要約
攻撃手法: 攻撃者は約10万ドルのUSDCのみを使用し、USR鋳造関数における重要な脆弱性——オラクルの操作、オフチェーン署名者の鍵漏洩、または鋳造リクエストと実行間の金額検証の欠如——を悪用して、8,000万USR(約8,000万ドル相当)を無から鋳造し、その後迅速に実資産に交換した。
裁定取引経路: 攻撃者は不正鋳造したUSRをCurve Financeなどの流動性プールに分割して売却し、USR価格を最低2.5セントまで下落させ、ペッグ喪失の混乱の中で約2,500万ドルを現金化した後、裁定利益をETHに変換して資金を流出させた。
損失分担: Resolvの二層リスク構造の設計ロジックに基づき、今回の攻撃による担保不足分はまずRLP保険プール保有者が負担する(RLP価格はプロトコル資産純価値の下落に伴い下落)。一方、USR保有者はプロトコルが償還を停止する前には理論上保護される。しかし、Morphoなどのレンディングプロトコル上のUSRレバレッジ循環ポジション(Looping)はペッグ喪失により強制清算され、二次的損失が発生した。
関連プロトコル: 主に影響を受けたDeFiプロトコルは以下の通り:Curve Finance(USR/USDC流動性プールが瞬時に崩壊)、Morpho(USRを担保とするレバレッジポジションが清算をトリガー)、FluidおよびEuler(同様にUSR/RLP循環ポジションが存在)。
業界への警告: 本件はデルタ中立ステーブルコインの根本的な弱点を明らかにした——鋳造ロジックとオフチェーン署名/オラクルの結合点がシステムで最も脆弱な攻撃面であり、「1ドルで1ドルを鋳造する」資本効率設計は、極めて厳格なコントラクトセキュリティ監査を前提としなければならない。
一、RESOLV と USR:このシステムを理解して初めて、今回の攻撃を理解できる
攻撃について議論する前に、まずUSRがどのように機能するかを明確にする必要がある——攻撃者はまさにその設計の中で最も巧妙で最も脆弱な部分を悪用したからだ。
USRのコアメカニズム:デルタ中立ステーブルコイン
USRは、USDTのような銀行預金で裏付けられたステーブルコインでも、DAIのような過剰担保型ステーブルコインでもない。それはデルタ中立ステーブルコイン——「ETH現物を保有しながら、同時にETHパーペチュアル契約で空売りを行う」ことで純リスク中立を実現するアーキテクチャである[注1]。
ロジックは以下の通り:
1ドルのETHを預け入れて1USRを鋳造する時、Resolvプロトコルは同時にパーペチュアル契約市場で同量のETH空売りポジションを開く。ETHが上昇すれば、現物で利益が出て契約で損失が出る。ETHが下落すれば、契約で利益が出て現物で損失が出る——両者が相殺され、純資産は常に約1ドルに保たれる。これにより、USRはETH価格から切り離されながら、1:1のドルペッグを維持する[注2]。
このアーキテクチャの利点は、資本効率が極めて高いことだ:1ドルのETHだけで1USRを鋳造でき、過剰担保は不要である。収益源は、ヘッジポジションの資金調達レート(ロングがショートに支払う手数料)およびETHステーキング収益であり、USR保有者は約5-6%の年率収益を得られる。ステーキング版のstUSRの金利はさらに高い[注3]。

二層構造:USRとRLPのリスク隔離
Resolvは「誰がプロトコル運営リスクを負担するか」という問題を解決するため、二層トークン構造を設計した:
USR層(優先順位高い):保有者は安定したペッグ保護を享受し、損失を負担しない。
RLP層(劣後層):RLP保有者はプロトコルの「保険プール」として機能し、市場リスク、取引相手リスク(例:資金調達レートが継続的にマイナス)、および潜在的なコントラクトリスクを負担する。その代償としてより高い収益(20-40%年率)を得る[注4]。
ルールは明確だ:いかなる損失も、まずRLPから差し引き、その後USRから差し引かれる。 USRの担保比率が110%を下回ると、RLPの償還は自動的に凍結され、USR保有者が優先的に保護される[注5]。
これは、今回の攻撃による損失分担を理解するための重要な前提である。
攻撃の核心:鋳造関数は一体何が問題だったのか?
これは現在最も重要であり、かつ情報が最も不完全な部分である。オンチェーンデータはすでに一つの事実を確認している:攻撃者は10万ドルのUSDCで5,000万ドル相当のUSRを「購入」した[1]。この1:500の鋳造比率は、コントラクトの鋳造金額検証が完全に機能しなかったことを意味する。
暗号ファンドD2 Financeは、三つの可能な攻撃経路の仮説を示している[注9]:
仮説A:オラクル操作(Oracle Manipulation)。USRの鋳造価格は価格オラクルに依存している。もし攻撃者が一つのトランザクション内で一時的にオラクル価格を押し下げることができれば(例:フラッシュローンで売り浴びせる)、コントラクトはユーザーが預け入れた資産価値がより高いと誤認し、過剰なUSRを鋳造できる[注6]。
仮説B:オフチェーン署名者鍵漏洩(Off-Chain Signer Compromise)。Resolvの鋳造プロセスにはオフチェーン署名検証の段階が含まれる——ユーザーの鋳造リクエストは、プロトコルのバックエンドサービスによる署名を経て初めて実行される。もしこの署名鍵が盗まれた場合、攻撃者は任意の金額の正当な鋳造指示を偽造し、すべてのオンチェーン制限を回避できる[2]。
仮説C:リクエストと実行間の金額検証の欠如(Validation Gap)。鋳造プロセスは「リクエスト開始」と「鋳造実行」の二段階に分かれている。もしコントラクトが実行時に最終実行金額がリクエスト金額と厳密に一致するかを検証しなければ、攻撃者はリクエスト発行後、実行前にパラメータを改ざんし、過剰鋳造を実現する可能性がある。
本レポート執筆時点で、Resolv公式は完全な脆弱性根本原因分析(RCA)を公表しておらず、したがって上記三つの仮説の優先順位は最終的に確認されていない。
攻撃効果から判断すると、仮説B(署名者鍵漏洩)または仮説C(検証ロジック欠如)の可能性が高い——オラクル操作は通常多額の資金を必要とし、これほど極端な価格偏差を実現するのは困難であるためだ。一方、8,000万USRが鋳造された際、攻撃者の実際の投入資金は極めて限定的であり、「コントラクト検証の回避」という特徴により合致する。
攻撃者はどのように現金化したか:教科書的なDeFi資金流出シナリオ
攻撃者が8,000万USRを入手した後、直面した課題は:偽造鋳造されたステーブルコインをどのように実質的価値に変換するか?
D2 Financeはこれを「教科書的なDeFiハッカー現金化経路」と呼んでいる:攻撃者はUSRを複数の流動性プロトコルに分割して送信し、優先的にCurve FinanceのUSR/USDCプール(USR最大の流動性プール、日次取引量360万ドル)で大量売却した[注10]。
Curveの流動性は有限であるため、8,000万USRが突然流入すると、プールは完全に崩壊した——USR価格は17分間で1ドルから2.5セントまで下落した。攻撃者は1ドルで全てを売却することを期待していたわけではなく、0.25ドル~0.5ドルの範囲で段階的にUSDC/USDTに交換し、最終的に裁定資金をETHに変換して資金を流出させた。
PeckShieldの推定によると、最終的な現金化金額は約2,500万ドルである[注11]——大量のUSRが極めて低い価格帯で売却されたことによるスリッページ損失を考慮すると、この数字は攻撃者の実際の引き出し比率が約30%(2,500万/8,000万)であったことを意味する。残り7割の「価値」は、流動性枯渇による巨大なスリッページの中で消滅した。

三、ペッグ喪失後:USR、RLP と担保システムに何が起きたか
USR の担保比率が瞬時に崩壊
正常動作時、USRは1:1でETH+ヘッジポジションによって裏付けられている。しかし、8,000万の無担保USRがシステムに鋳造されると、USR供給全体に対応する実資産は1:1償還には遠く及ばず——担保比率は大幅に100%を割り込んだ。
これは直接RLP層の保護メカニズムをトリガーした——プロトコルは理論上RLP償還を凍結し、USR保有者を優先的に保護する。しかし同時に、USR自体がペッグを失ったため(二次市場での取引価格は約0.87ドル)、USR保有者も市場価格での売却損失に直面している。
レンディングプロトコルの連鎖的清算
これは今回の事件で最も過小評価されている連鎖的損害の一つである。
Resolvの成長は、ある戦略に大きく依存していた:ユーザーがUSRを担保としてMorpho、Fluid、Eulerなどのレンディングプロトコルに預け入れ、USDCを借り、さらに多くのUSRを購入し、これを繰り返してレバレッジ循環ポジション(Looping)を形成する。一部のユーザーのレバレッジ倍率は10倍に達していた[3]。
USR価格が1ドルから0.87ドル、あるいはそれ以下に急落すると、これらのレバレッジポジションの担保価値は瞬時に13%以上蒸発した。レンディングプロトコルは担保比率が清算ラインを下回ると自動的に強制清算を実行するため、大量のUSRがボットによって清算され、さらに多くのUSRが二次市場に売り込まれ、価格をさらに押し下げる——典型的なデススパイラル圧力が形成された[注7]。
Morphoには専用の「MEV Capital Resolv USR Vault」があり、攻撃前のTVLは相当な規模に達しており、これらのポジションが連鎖的損害の主要な被災者である[4]。
プロトコル TVL の急激な縮小
Resolvの攻撃前のTVLは数億ドル規模に成長していた(ピーク時には6.5億ドルを超え、主にMorphoとEuler上のレバレッジポジションによって牽引されていた)。プロトコル停止後、ユーザーはUSRを償還できず、TVL数値の計算もUSR価格のペッグ喪失により混乱している[5]。
四、損失は誰が負担する?各関係者のリスクエクスポージャー分析

RLP保有者は設計上の第一損失層である。攻撃による担保不足分(8,000万の無担保USR鋳造)は直接RLPの純資産価値の下落として反映される——RLP価格はプロトコルの過剰担保部分の権利証であり、プロトコル全体にカバーされていない債務が発生すると、RLPがまず価値下落する[6]。
USRレバレッジポジション保有者は、実際の損失が最も重いカテゴリーである。彼らは清算に直面するだけでなく(清算には通常5-10%の罰金が伴う)、USRペッグ喪失期間中にペッグ価格を下回る価格で保有ポジションを売却せざるを得ず、損失が重複して避けられない。
Curve LP流動性提供者は非永続的損失を負担した——攻撃者が大量にUSRを売却した時、LPのプールは「50%USR/50%USDC」から受動的に大量のUSRを吸収し(USDCを売却し、より多くの低価格USRを保有)、裁定取引による損失が発生した[注8]。
一般USR保有者:設計上、プロトコルが正常に停止メカニズムを発動すれば、USR保有者は残存実担保で1:1償還できる。しかし問題は:攻撃発生後、プロトコルはすべての機能を停止し、償還窓口は閉鎖されている。実際の売却者は0.87ドルの市場価格で取引せざるを得ず、13%のペッグ喪失損失を負担する。


