2025年6月26日、EthereumメインネットにデプロイされたResupplyステーブルコインプロトコルが攻撃を受け、約1,000万ドルの資産損失が発生しました。関連コントラクトの価格オラクルの実装に問題があったため、新たに作成された低流動性のMarketにおいて、攻撃者はドネーション攻撃を通じて借入資産(Resupplyが発行するreUSD)の相対価格(すなわち借入資産と担保資産の間の交換レート)を操作し、それを0にすることができました。これにより攻撃者は資産の健全性チェックを回避し、大量のreUSDを借り入れて利益を得ることができました。
BlockSecがネットワーク上で最初に公に早期警告を発し、初期分析を提供した後(Tweet1、Tweet2)、Resupplyもその後公式発表を行いましたが、多くの技術的詳細については詳しく説明していませんでした。本記事ではより詳細な分析を提供します。一方、攻撃後にはプロジェクト側とそのステークホルダーの間で激しいコミュニティ論争も発生しました。本記事では、プロトコルの背後にある複雑な生態的関係についても掘り下げて議論し、読者の参考としていただきます。
1. 背景
1.1 Resupplyプロトコルについて
Resupplyは、Curveエコシステムに属する分散型ステーブルコインプロトコルです。Resupplyが発行するステーブルコインはreUSDと呼ばれます。これは担保付き債務ポジション(CDP)によって裏付けられた分散型ステーブルコインであり、外部プラットフォームのレンディングマーケットで利息を得る他のステーブルコイン(crvUSDやfrxUSDを含む)によって支えられています。ユーザーはcrvUSDやfrxUSDを提供してreUSDを借り入れることで、ステーブルコイン資産のリファイナンスを実現できます。

具体的には、ユーザーはオンチェーンにデプロイされたResupplyのMarketでレンディング関連の操作を行うことができます。Marketの作成と挙動はDAOを通じて管理されます。各Marketは担保資産(collateral)としてERC-4626 Vaultを指定し、そのVaultに対応する資産をunderlyingとして使用します。ユーザーはMarketに担保(Vaultまたはそのassetを)デポジットしてreUSDを借り入れます。
今回の攻撃に関与したMarket 0x6e90 とVault 0x0114 を例にとると、関連する資産(トークン)は以下の通りです:
-
Market
0x6e90- underlying: crvUSD
- collateral: cvcrvUSD (すなわちVault
0x0114) - borrowed: reUSD
-
Vault
0x0114- asset: crvUSD (実際にはCurve LlamaLend Controllerに保管されており、これもMarketです)
- collateral: wstUSR
- borrowed: crvUSD
- share: cvcrvUSD (Vaultが発行するERC-4626トークン)
つまり、ユーザーはこのMarketに一定量のcvcrvUSD(またはcrvUSDを、これは実際にはVaultを通じてcvcrvUSDに変換されます)を担保として提供し、reUSDを借り入れることができます。

1.2 システムはユーザーが資産を借り入れる資格があるかどうかをどのように判断するか?
一般的なレンディングプロトコルと同様に、ResupplyのMarketもユーザーのポジションに対して資産の健全性チェック(modifier isSolvent を通じて)を実行します。

isSolvent は最終的に _isSolvent 関数を呼び出し、LTV(Loan-to-Value ratio)をチェックします。これは、借入資産と担保資産の比率がシステムが設定した最大値を超えてはならないことを要求します(_ltv <= maxLTV)。
LTVの計算は交換レート(_exchangeRate)、つまり借入資産の担保資産に対する価格(交換比率)に依存していることがわかります。
2. 攻撃分析
2.1 根本原因分析
コントラクトのコードの観点から見ると、攻撃の主な原因はResupplyのMarketの価格オラクルの実装に問題があったことです。新たに作成された低流動性のMarketにおいて、攻撃者はドネーション攻撃を通じて交換レートを操作することができ、それによって健全性チェックを回避し、大量のreUSDを借り入れて利益を得ることができました。
交換レートはどのように計算されるか?

計算式は以下の通りです:

明らかに、getPrices が 1e36 より大きい価格を返した場合、整数除算の切り捨てにより _exchangeRate = 0 となります。
価格をどのように操作するか?

コードによると、価格は以下のように計算できます:


コードは precision = 1、DEAD_SHARES = 1000、shares = 1e18 と設定しているため、

最終的に、変数を代入すると、価格の計算式は以下の通りになります:

price の値を増幅させるためには、total_assets と totalSupply の差を広げ、total_assets を極端に大きくしつつ totalSupply を非常に小さく保つことが鍵であることがわかります。Resupplyプロトコルの実際の実装では、計算式の total_assets はunderlying(crvUSD)に依存し、totalSupply はMarket全体の流動性に対応するshares(cvcrvUSD)に依存します。これはまさに典型的なドネーション攻撃のシナリオです。
2.2 攻撃トランザクション分析
攻撃トランザクション [4] によると、攻撃者は以下のコアステップを実行したことが分析できます:
-
フラッシュローンで4,000 USDCを借り入れ、それを3,999 crvUSDに交換した。
-
Controller
0x8970に2,000 crvUSDを寄付した。寄付前、Controller0x8970は0 crvUSDを保有していた。寄付後、記録されたcrvUSDの金額は2000000000000000000000(18桁の小数)となった。 -
Vault
0x0114に約2 crvUSDをデポジットし、1シェア(cvcrvUSD)を受け取った。この時点で、記録されたcrvUSDの金額は2002000000000000000001(18桁の小数)であった。 -
Market
0x6e90に1単位(すなわちVault0x0114の1シェア)の担保を追加した。 -
Market
0x6e90から10,000,000 reUSDを借り入れた。この時点で、_exchangeRate = 0となり、_ltv = 0となったため、_isSolventチェックを通過した。

なぜ _exchangeRate が0に等しかったのか?それは、前述のステップを通じて、攻撃者がコントラクトを操作して以下の状態に至らせたためです:

交換レートの計算方法を思い出すと:

price > 1e36 であるため、_exchangeRate = 0 となります。
- 借り入れたreUSDを交換して利益を得た。
3. 得られた教訓
Resupplyで攻撃を受けたMarketは、Curveのテンプレートコントラクトに似た価格オラクルの実装を使用していました。

しかし、Curveの公式ドキュメントはすでにこの実装の適用範囲を示していました——残念ながら、Resupplyはデプロイ時にこの適用可能性に関する警告を考慮していなかったようです。
4. 関係性とコミュニティの論争
4.1 Curveエコシステムにおける5大プロジェクトの複雑な関係網
Resupplyの事件がもたらすより深い影響を理解するためには、まずCurveエコシステム内の5つのコアプロトコル間の複雑な関係を見る必要があります。

Curve Financeはエコシステム全体の中核であり、流動性プール、crvUSD、およびLlamaLendプロトコルを提供し、Resupply、Prisma、Convex、Yearnの運用を支えています。Convexはステーキングとガバナンスを通じてCurveの利回りを最適化し、PrismaとResupplyに追加の報酬メカニズムを提供します。PrismaはCurveのLPトークンとConvexの利回り強化機能に依存しており、一方ResupplyはCurveのLlamaLendを直接基盤としてreUSDを発行し、ConvexとYearnによって共同開発されました。Yearnは、Curveプールの利回りを最適化するだけでなく、Convexとの連携によってResupplyの開発も推進しました。
Curve Finance: コアプラットフォームとして、Curveの流動性プール(crvUSDプールなど)とLlamaLendプロトコルは、Resupplyによるreu SD発行、PrismaによるLPトークンのステーキング、Yearnによる利回り最適化、Convexによるガバナンス投票などに直接使用されています。
Convex: Convexは、Curveの利回り強化プロトコルです。ユーザーはCurveのLPトークンをステーキングすることで、より高いCRV報酬とConvexのCVXトークンを獲得できます。ConvexはCurveのガバナンス投票権のほぼ50%を管理しており、PrismaとResupplyに利回り強化メカニズムを提供しています。
Prisma : PrismaはCurveのLPトークンをステーキングし、ユーザーはConvexを通じて強化された報酬(cvxPRISMA)を得ます。PrismaはCurveの流動性とConvexの利回りメカニズムに依存しています。
Yearn: Yearnは利回りアグリゲーターであり、Curveの(Convexによって強化された)LPトークンの利回りを最適化することで、ユーザーに高いリターンを提供します。YearnはConvexと連携してResupplyを開発し、その利回り戦略でCurveプールを広範に利用しています。
Resupply: ConvexとYearnによって共同開発され、ユーザーはcrvUSDなどのステーブルコインを担保にしてreUSDを借り入れることができ、自動的にConvexにトークンをステーキングしてCRVとCVXの報酬を獲得することで、利回り最適化のループを形成します。
4.2 論争と影響
しかし、Resupplyが攻撃を受けた際、この複雑な関係網は直ちに論争の焦点となりました。Curveの創設者であるMichael Egorov氏は、迅速にResupplyとの関係を否定し、以下のように強調しました:
「そのプロジェクトに取り組んでいるCurveの人間は一人もいない…Curveと一般化しないでください。」

この関係否定の発言は、DeFiエコシステム内の複雑な協力関係が危機の際にいかに脆弱であるかを反映しています。
これらの相互に関連するプロジェクトは、高度に結合したエコシステムを共同で形成しています——このようなシステムでは、いずれかの部分に問題が発生すると、連鎖反応を引き起こす可能性があります。したがって、Resupplyの攻撃事件がプロトコルの相互依存性とセキュリティに関する広範なコミュニティの議論を引き起こしたことは驚くべきことではありません。
5. さらなる考察
5.1 タイムライン
-
2025年5月17日: Resupply公式アドレス
0x1f84がCurveのOneWay Lending Factoryを通じて新しいLlamaLend Marketをデプロイした。- このMarketはcrvUSDをレンディング資産として使用し、wstUSRを担保トークンとして使用した。
- ERC-4626 Vaultコントラクトは
0x0114、対応するControllerは0x8970であった。
-
2025年5月31日: Resupplyのガバナンスページに新しい提案wstUSR-long LlamaLend Marketが公開された。この提案は、LlamaLend Marketを通じてユーザーがreUSDをミントできるようにすることを目的としていた。
-
2025年6月11日: 提案がオンチェーンで公開された。
-
2025年6月26日 00:18:47 (UTC): 提案が可決され、Resupply公式アドレス
0x0417が新しいResupplyPairをデプロイした(すなわちResupplyのcrvUSD/wstUSR Market)0x6e90、Vault0x0114とController0x8970を紐付けた。- Vault 0x0114とController 0x8970を紐付けた。
- Vaultの担保付き債務ポジション(すなわちcvcrvUSD、underlyingはcrvUSD)を担保として使用した。
-
2025年6月26日 01:53:59 (UTC): Market
0x6e90のデプロイからおよそ1.5時間後、攻撃者がエクスプロイトを成功させた。同時に、BlockSecは攻撃を検知し、プロジェクトチームへの連絡を試みた。 -
2025年6月26日 02:26 (UTC): チームへの連絡が失敗し、それ以上の損失がないことを確認した後、BlockSecは公に警告を発した。
-
2025年6月26日 02:53:23 (UTC): プロジェクトチームがプロトコルを一時停止した。
5.2 Phalcon Securityがあれば、この悲劇は防げたはずである

BlockSec Phalcon Securityは、DeFiセキュリティ保護における最新のブレイクスルーを表しています。mempoolの段階でトランザクションを監視することで、Phalcon Securityは攻撃トランザクションがmempoolに入った瞬間に異常なパターンを識別することができます。
インテリジェント分析エンジンを搭載したこのシステムは、200種類以上の典型的な攻撃シグネチャを統合しています。過去6ヶ月間、0.0001%未満の超低誤検知率を維持し、真に精密な脅威検出を実現しています。
このシステムは独自のgasビッディング戦略を活用し、防御トランザクションが攻撃トランザクションを追い越すことを保証しつつ、プロトコルの緊急一時停止機能を自動的にトリガーします。
全体の対応プロセスは、EOAやマルチシグウォレットを含む複数の権限管理モードをサポートしており、異なる種類のプロトコルに柔軟なセキュリティソリューションを提供します。
ResupplyがMarketをデプロイする際にPhalcon Securityシステムを統合していれば、この攻撃は完全に回避できたはずです
Market 0x6e90がデプロイされてから1.5時間の間に、Phalcon Securityシステムは新しいMarketのデプロイを自動的に検知し、その設定パラメータをインテリジェントに分析し、ドネーション攻撃の潜在的なリスクを識別していたはずです。
システムは直ちにプロジェクトチームにリスクアラートを送信し、初期流動性保護の追加や関連パラメータの調整を提案していたはずです。
攻撃発生後であっても、Phalcon Securityを導入することはResupplyとCurveエコシステム全体に大きな価値をもたらします
透明でリアルタイムな監視システムは、ユーザーとコミュニティに対して、プロジェクトチームのセキュリティへの確固たるコミットメントを示すものであり、24時間365日の継続的な保護メカニズムは、同様の事件が二度と発生しないことを保証します。公開されたセキュリティ監視データはプロジェクトの透明性を高め、コミュニティの信頼を再構築するための重要な手段となります。被害を受けたプロジェクトにとって、トップクラスのセキュリティソリューションを積極的に採用することは、ユーザー資金の安全に対する責任感を証明するものであり、BlockSecのような業界のリーダーと提携することも、セキュリティ分野におけるプロジェクトの評判に強力な裏付けを提供します。
現在、500億ドル以上の資産がPhalcon Securityの保護を信頼して選択しています。私たちはこれまでに20件以上の実際のハッキング攻撃を成功裏に阻止し、2,000万ドル以上の資産損失を防いできました。過去6ヶ月間、このシステムは完璧な検出精度の記録を維持し、ミリ秒単位の応答速度を実現しており、常に攻撃者より一歩先を行っています。Phalcon Securityは現在、Ethereum、BSC、Arbitrumを含む20以上の主要ブロックチェーンネットワークをサポートしており、DeFiエコシステムに包括的なクロスチェーンセキュリティ保護を提供しています。
Resupplyの1,000万ドルの損失と、その他の数え切れない攻撃事件は、DeFiの世界においてセキュリティは選択肢ではなく——生存のための必須条件であることを私たちに教えています。
次の攻撃を待って後悔する前に。今すぐあなたのプロトコルに最強のセキュリティ保護をデプロイしてください。
BlockSecの専門家チームは、あなたのプロジェクトのために包括的なセキュリティ評価を実施する準備ができています。
🔗 Phalcon Security:
https://blocksec.com/phalcon/security
🔗 デモを予約する:
https://blocksec.com/book-demo



