Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin CryptoTax DeFAI Chain SAFU AGI Claude Me Claude Skill Claude Design Claude Cowork
独立メディア
いかなるプロジェクトとも無提携
DeFiプロトコルの底層を徹底解説:AMM・レンディング・収益・リスク
defi-bible.com
最新
6,540万ドルのフラッシュローンで600万ドルの利益を得る:Summer.fi Lazy Summerボールト被害事件の完全な振り返り  ·  プロトコルが自らの流動性の9割を自分で保有していると主張する場合、それをどう検証するか、公式見解を鵜呑みにしてはいけない  ·  ポイントがゼロになったその日、後悔しますか?ポイントプログラムに参加する前に自分に問うべきこと  ·  あなたの手にあるWBTCは、実は3分の2の鍵に支えられている:ラップドビットコインの完全な信頼構造を分解する  ·  自分とはまったく無関係なプロトコルがハッキングされたのに、なぜ自分の預金まで目減りするのか:KelpからAaveへの不良債権連鎖の分解  ·  買う前に5分かけて一つ確認すること:このトークンはアンロック・クリフにぶつかろうとしていないか
用語解説 · セキュリティとリスク

Share Price Manipulation Attack

持分価格操作攻撃
セキュリティとリスク intermediate

30秒バージョン · 忙しい方へ
攻撃者がボールトが「各持分がどれだけの原資産に対応するか」を計算する内部の会計ロジックの設計上の欠陥を利用し、総資産と総持分の比率を操作することで、ボールトに持分の本当の価値を誤って計算させる。これにより極めて低いコストで他の預金者の資産を盗む、あるいは別のプロトコルで過剰な借入限度額を取得する。
詳しく読む +
01 · これは何?

持分価格操作攻撃とは何ですか?以前の記事で紹介したオラクル操作攻撃とどう違いますか?

以前の記事で紹介したオラクル操作攻撃は外部の価格ソースを狙う——攻撃者はある資産の市場でのリアルタイムの相場を操作し、この相場に依存するプロトコルに誤った判断をさせる。持分価格操作攻撃はまったく異なる層を狙う:ほとんどのボールト型商品(ERC-4626という標準化されたインターフェースを採用したトークン化されたボールトなど)は内部で会計のロジックを維持しており、「ボールトが現在合計でどれだけの原資産を管理しているか」と「現在合計でどれだけの持分が発行されているか」を継続的に計算し、この2つの数字の比率を使って「1持分が現在いくらの価値があるか」を計算する。持分価格操作攻撃はこの内部の会計ロジック自体を直接操作するものであり、いかなる外部の価格ソースにも触れる必要がない。

オラクル操作攻撃との最大の違いは「誰の台帳を標的にしているか」にある:オラクル操作攻撃はプロトコルが外部に依存する市場データを侵害する;持分価格操作攻撃はプロトコル自身の内部の資産会計ロジックを侵害する——ある程度プロトコルの「自分の家の台帳」を直接改ざんすることに近く、プロトコルを騙して誤った外部情報源を信頼させることではない。この2つの攻撃は防御戦略においても完全に異なる——以前の記事で紹介した複数のノードを集約する分散型オラクルネットワークは最初の攻撃を効果的に防げるが、2番目の攻撃にはまったく役に立たない。問題がそもそも外部データソースにないためだ。

02 · なぜ存在する?

持分価格操作攻撃はなぜ存在するのですか?この脆弱性の技術的な根本原因は何ですか?

ほとんどのボールトコントラクトが持分の価値を計算する数式は、本質的には比例配分の数学演算である——ボールトが現在実際に保有する総資産を、現在流通している総持分数で割り、各持分がどれだけの資産に対応するかを算出する。この仕組みは通常の状況では正常に機能するが、重要な前提がある:ボールトの総資産の数字が実際の状況を完全に正確に反映していなければならないということだ。この前提が破られうる理由は、一部のボールトの設計が「正常な預け入れプロセスを通じてボールトに入る資産」と「他のチャネル(直接送金など)を通じてボールトに入る資産」を厳密に区別しておらず、両方とも総資産にカウントされるが、前者だけが対応する持分数を同時に増加させることだ。

攻撃者が利用するのはまさにこのギャップだ:もしボールトがちょうど総持分規模が非常に小さい状態にあれば(ボールトが有効化されたばかりで、まだ本物のユーザーの預金がないなど)、攻撃者はまず極めて少額の資金を預けてわずかな持分を取得し、次に直接大金の資産をボールトに送金する(正常な預け入れプロセスを経ず、いかなる持分とも交換しない)。この一方的に注入された資産は総資産にカウントされるが、対応する持分数の増加はなく、瞬時に「各持分が対応する資産価値」を極端な数字まで押し上げる。次に、別の何も知らないユーザーが正常なプロセスで資金を預ければ、計算上ゼロ持分しか配分されない可能性が非常に高く(除算演算で切り捨てられるため)、この預金は何もないところに消え去り、すべて攻撃者が保有する持分に帰属することになる。この技術的な根本原因は、ある程度「極端な比率の下で除算演算が生み出す境界のケースの脆弱性」であり、コードのロジックが明らかに間違って書かれているのではなく、設計時にこの極端なシナリオが考慮されていなかったことにある。

03 · 意思決定にどう影響する?

持分価格操作攻撃は具体的にどう機能しますか?完全な1つの攻撃の流れはどのようなものですか?

典型的な持分価格操作攻撃の最も古典的な派生形(しばしば「初回預金者攻撃」と呼ばれる)にはいくつかの段階がある:

  1. 攻撃のタイミングを狙う:攻撃者はターゲットのボールトを継続的に監視し、ボールトの総持分規模が非常に小さい瞬間(最も理想的な状況はボールトがデプロイされたばかりで、まだ本物のユーザーの預金がないこと)を狙う——このタイミングは一連の攻撃が成立するために必要な前提条件だ
  2. 初期ポジションを構築する:攻撃者は極めて少額の資金を預け入れ(技術文書でよく見られる実演金額は最小の計算単位1個まで小さい)、対応する同様に最小単位の持分を取得する——このステップの目的は単純に攻撃者自身にボールト内に唯一存在する持分を保有させることだ
  3. 直接寄付で持分の価値を吊り上げる:攻撃者は続いて大金の資産を、ボールトの正常な預け入れ関数を経ずに、直接ボールトのコントラクトアドレスに送金する。この資産はボールトの総資産にカウントされるが、いかなる新しい持分も鋳造されず、瞬時に「各持分が対応する資産価値」を急騰させる
  4. 被害者の預金を待つ:他のユーザーが正常なプロセスに従ってこのボールトに預け入れ操作を実行すると、ボールトは歪められた比率に従ってこの新しい預金にどれだけの持分を配分すべきかを計算する。新しい預金額が十分大きくなければ、計算結果は直接ゼロ持分に切り捨てられる可能性がある——被害者の資産はボールトに入ったが、対応する持分証書はまったく得られない
  5. 償還による利益確定:攻撃者が手にする持分は(数量は極めて少ないが、総資産が人為的に吊り上げられたため、各持分が対応する価値は極めて高い)、この時点で償還すると、本来自分が寄付した資産に加えて、被害者が預け入れたが持分が配分されなかった資産も取り戻し、裁定取引を完了する

この「初回預金者」の派生形以外に、以前の記事で紹介したSummer.fi Lazy Summer Protocolが遭遇した攻撃は別の派生形だった——空のボールトを狙うのではなく、稼働中のボールトの持分価格決定の会計ロジック自体を狙い、フラッシュローンの巨額の資金と組み合わせて、単一の取引内で操作と利益確定を完了した。技術的な詳細は完全には同じではないが、核心的な原理はどちらもボールトが持分の価値を計算する内部ロジックを攻撃することにある。

04 · どうすればいい?

持分価格操作攻撃は一般ユーザーにとって実際どのような影響がありますか?自分が使用しているボールトがこの種の攻撃に対する防御があるかをどう評価すればよいですか?

一般ユーザーにとって、この種の攻撃の最も直接的なリスクは——正常なプロセスに従って資産をボールトに預けたのに、ボールト自体の内部会計の欠陥のためにいかなる対応する持分証書も得られない可能性があり、あなたの預金はある程度何もないところに消え去り、すべて攻撃者の手に落ちることだ。このリスクは「ボールトが起動されたばかりで、規模がまだ小さい」段階で特に顕著であり、新しいボールトの早期預金者になることを検討しているなら、この層のリスクに特に注目する価値がある。

自分が使用しているボールトがこの種の攻撃に対する防御を持っているかを評価する際、検証する価値のあるいくつかの具体的な側面:このボールトが業界で認められた防御メカニズムを採用しているかを検証する——一般的な方法には、開発チーム自身がデプロイ時にまず「デッドシェア」(永久にロックされ、決して償還されない初期持分)を預け入れることが含まれ、後で誰かが低い総持分規模を利用して攻撃を仕掛けようとしても、このデッドシェアの存在により攻撃が経済的に割に合わなくなることを確保する;ボールトコントラクトが「正常な預け入れ関数を経ずに直接ボールトに送金する」という種類の資産を検出または制限しているかを検証し、この種の一方的に注入された資産が持分の価値を計算するために使用される総資産の数字に直接カウントされないようにする;そしてもしあなたがあるボールトの早期預金者になることを検討しているなら、このボールトにあなたが預け入れる前にすでに他の本物のユーザーの預金があり、一定の総持分規模を蓄積していたかを検証する——規模が大きいほど、空のボールトや極めて小規模なボールトを狙う初回預金者攻撃のようなタイプの攻撃の実現可能性は理論上低くなる。

具体例 +

OpenZeppelinが発表した技術分析によると、wUSDM(トークン化されたボールト商品)を狙った攻撃事例の一つでは、攻撃者はわずか約32万ドルをボールトに寄付しただけで、当時のボールトの流動性が比較的低かったため、この寄付が各持分が対応する資産価値を人為的に50%急騰させた。攻撃者がもともと借り出していたポジションの帳簿価値は、その結果約288万ドルから約432万ドルまで瞬時に膨れ上がり、攻撃者に約32万ドルの即時裁定取引の余地をもたらすと同時に、このボールトの価格設定に依存する融資プロトコルに対応する不良債権の穴を負担させた。この種の攻撃はDeFi業界において孤立した事例ではなく、「Resupply」と呼ばれるプロトコルも類似のシナリオの下でかつて攻撃を受けたことがある。これらの事例はその後、OpenZeppelinのような主流のスマートコントラクトライブラリに、この種の脆弱性に対する防御メカニズム(仮想持分の設計など)をERC-4626ボールトを監査する際の最初のチェック項目として挙げさせることを促した。

よくある誤解 +
✕ 誤解 1
× 誤解:持分価格操作攻撃は起動されたばかりでまだユーザーの預金がない空のボールトでのみ発生する、実際は:以前の記事で紹介したSummer.fi事件が証明したように、この種の攻撃はすでに正常に稼働し本物のユーザーの預金があるボールトも狙える。攻撃手法は初回預金者の派生形に限らず、フラッシュローンを組み合わせて稼働中のボールトの価格決定ロジックを直接操作することも含まれる
✕ 誤解 2
× 誤解:ボールトが業界標準のERC-4626インターフェースを使用していれば、自動的にこのボールトがこの種の攻撃に対する防御をすでに整えていることを意味する、実際は:ERC-4626は単なる標準化されたインターフェース仕様であり、それ自体に強制的な防御メカニズムは含まれていない。仮想持分やデッドシェアなどの具体的な防御設計を採用するかどうかは、個々の開発チームの実装の質に依存し、この規格を採用しているかどうかだけを見て直接安全であると想定すべきではない
The Missing Link +
直接的な影響

これは安全リスクの用語であり、前向きなトレードオフというものは存在しない。唯一議論できるトレードオフは防御メカニズム自体の設計コストにある——仮想持分やデッドシェアのような防御設計を採用することは、通常デプロイ段階で追加の小さな初期資産をロックする、あるいはコントラクトのロジックの複雑さを増やす必要があるが、このコストは攻撃が引き起こしうる損失の規模に対して無視できる程度であり、現在業界で認められ、採用しない理由がほとんどない基本的な防御措置である。

質問する
10文字以上入力してください
関連トピック