暗号資産を購入
市場
現物
先物取引BTC
MEXC Earn
イベントセンター
報酬ハブ
もっと見る
手数料0祭
フラッシュローン攻撃: フラッシュローン攻撃とは?フラッシュローン攻撃とは、攻撃者が無担保の大規模な借入を利用し、1つまたは複数のスマートコントラクトの脆弱性を悪用または操作する暗号資産のエクスプロイトです。攻撃者は暗号資産を借り、一連の操作を実行して脆弱なプロトコルから価値を引き出し、1回のブロックチェーントランザクション内でローンを返済します。借入額、手数料、取引コスト、トランザクションコストを支払った後に残った暗号フラッシュローン攻撃: フラッシュローン攻撃とは?フラッシュローン攻撃とは、攻撃者が無担保の大規模な借入を利用し、1つまたは複数のスマートコントラクトの脆弱性を悪用または操作する暗号資産のエクスプロイトです。攻撃者は暗号資産を借り、一連の操作を実行して脆弱なプロトコルから価値を引き出し、1回のブロックチェーントランザクション内でローンを返済します。借入額、手数料、取引コスト、トランザクションコストを支払った後に残った暗号

フラッシュローン攻撃

2026/10/13 15:35
#Advanced
Humanity
H$0.05583-4.33%
SynFutures
F$0.00297-5.17%
PX
PX$0.0113--%
Siacoin
SC$0.0008969+1.04%
Smart Blockchain
SMART$0.004274-1.52%

フラッシュローン攻撃とは?

フラッシュローン攻撃とは、攻撃者が無担保の大規模な借入を利用し、1つまたは複数のスマートコントラクトの脆弱性を悪用または操作する暗号資産のエクスプロイトです。

攻撃者は暗号資産を借り、一連の操作を実行して脆弱なプロトコルから価値を引き出し、1回のブロックチェーントランザクション内でローンを返済します。

借入額、手数料、取引コスト、トランザクションコストを支払った後に残った暗号資産が、攻撃者の利益になります。

トランザクションが完了する前に必要額を返済できなければ、通常、トランザクション全体がリバートされます。

このアトミックな返済条件により、攻撃者はトランザクション開始前に借入資産を保有していなくても、多額の資本を必要とする手法を試すことができます。

フラッシュローン攻撃は、犯罪行為だけを目的として定義された特別なブロックチェーントランザクションではありません。

フラッシュローンは、裁定取引、担保スワップ、債務の借り換え、強制決済、流動性管理など、正当な用途にも利用されます。

一時的な資本と、価格設定、会計、ガバナンス、アクセス制御、その他の暗号資産プロトコルの脆弱性が組み合わさったときに、攻撃が発生します。

OWASP Smart Contract Top 10: 2026は、フラッシュローンを利用した攻撃を、スマートコントラクトにおける重大なセキュリティリスクとして分類しています。

OWASPは、フラッシュローンが小さなロジック、価格設定、算術計算上の誤りを大規模な損失へと拡大させる「フォースマルチプライヤー」になり得ると説明しています。

フラッシュローン攻撃の仕組み

フラッシュローン攻撃では、借入、操作、悪用、返済、利益の引き出しを1回のアトミックなトランザクション内で組み合わせます。

具体的な手順は攻撃ごとに異なりますが、多くは共通する基本的な構造に沿っています。

ステップ1:攻撃者が脆弱性を見つける

攻撃者はDeFiプロトコルを調査し、安全でない前提や処理を特定します。

プロトコルが流動性の低い1つのプールの価格に依存していたり、ボールトのシェアを誤って計算していたり、一時的なトークン残高を投票権として認めていたり、コールバックの検証を怠っていたりする場合があります。

少額の暗号資産しか使わないトランザクションでは、脆弱性が無害に見えることがあります。

フラッシュ流動性を利用すると、攻撃者は数百万ドル相当の一時的な資本を使えるため、同じ脆弱性から大きな利益を得られる可能性があります。

ステップ2:攻撃者が暗号資産を借りる

攻撃者は、対応するスマートコントラクトにフラッシュローンを申し込みます。

貸し手の設計によって、ローンには1種類または複数種類の資産を含めることができます。

貸し手は、攻撃者が管理する受取用コントラクトに、要求された暗号資産を送ります。

受取用コントラクトは一時的に資産を管理し、攻撃の指示を実行し始めます。

ステップ3:攻撃者がプロトコルの状態を操作する

攻撃者は借入資金を使い、標的プロトコルが利用する価格、流動性残高、担保比率、トークン供給量、シェア価値、ガバナンス残高、その他の状態を変更します。

この操作には、複数の分散型アプリケーションや多くの内部スマートコントラクト呼び出しが関わる場合があります。

攻撃者は、標的プロトコルが誤った値を計算したり、安全でない操作を許可したりする状態を作り出そうとします。

ステップ4:攻撃者が価値を引き出す

攻撃者は、状態が操作されている間に脆弱なプロトコルを利用します。

プロトコルが、担保不足のローンの実行、預入資産の過大評価、不公平な出金の許可、健全な担保の強制決済、過剰なトークンのミント、悪意あるガバナンス提案の承認などを行う場合があります。

攻撃者は、引き出した暗号資産をフラッシュローンの返済に使える資産へ移します。

ステップ5:攻撃者がポジションを元に戻す、または手仕舞う

攻撃者は、返済に必要な資産を取り戻すため、先に行った取引の一部を反対売買することがあります。

攻撃トランザクションが完了すると、価格や流動性比率が元の水準近くまで戻る場合があります。

それでも標的プロトコルには、準備金の欠損、不良債権、誤って発行されたシェア、ユーザー残高の毀損などが残る可能性があります。

ステップ6:フラッシュローンを返済する

攻撃者は借入元本と、必要なフラッシュローン手数料を返します。

返済に成功するとトランザクションが承認され、すべての状態変更がブロックチェーンの履歴に記録されます。

返済に失敗すると、通常、トランザクション全体がリバートされ、攻撃によるオンチェーンの結果は生じません。

フラッシュローン攻撃で多額の資本を利用できる理由

通常の攻撃者は、自身が保有する暗号資産の額、または担保付きローンで借りられる額によって制約されます。

フラッシュローンでは、同じトランザクション内で債務を返済すれば担保が不要です。

そのため攻撃者は、自身のウォレット残高を大幅に上回る価値の資産を一時的に管理できる場合があります。

ローンの規模は一般に、利用可能な流動性、貸し手のルール、トークンの挙動、ブロックチェーントランザクションの制約によって決まります。

ガス代を支払えるだけの暗号資産があれば、適切にプログラムされたスマートコントラクトを通じて、理論上ははるかに大規模なフラッシュローントランザクションを開始できます。

この資本効率の高さにより、フラッシュローンは正当なトレーダーにとって有用である一方、脆弱なプロトコルが存在する場合には危険なものとなります。

盗難後にトランザクションがリバートされない理由

フラッシュローントランザクションは、プログラムされた条件が満たされない場合にのみリバートされます。

貸し手は通常、関係するすべてのプロトコルが公正に扱われたかではなく、元本と手数料を受け取ったかを確認します。

攻撃者が標的プロトコルから十分な資産を引き出し、貸し手に返済すれば、フラッシュローンの条件は満たされています。

そのため、フラッシュローン自体は正しく返済されても、標的プロトコルの損失が取り消せないものになる可能性があります。

アトミック性は、通常の借り手の債務不履行からフラッシュローンの貸し手を守りますが、トランザクション内で呼び出されたすべてのスマートコントラクトを自動的に保護するものではありません。

フラッシュローン自体が通常、主な脆弱性ではない理由

フラッシュローンは通常、根本的なソフトウェアの欠陥ではなく、一時的な資本の供給源です。

本当の脆弱性は、操作可能な価格オラクル、誤ったシェア計算、安全でないアクセス制御、不適切な強制決済ルール、または誤った経済的前提にある場合があります。

十分な資産をすでに保有する攻撃者なら、フラッシュローンを使わずに同じ脆弱性を悪用できる場合もあります。

フラッシュローンによって攻撃のコストが下がり、規模を拡大しやすくなり、攻撃者自身の資本への依存度も低くなります。

フラッシュローンをなくしても、脆弱なプロトコルが自動的に修正されるわけではありません。

開発者は、一時的な資本や操作された状態が不公平な結果を生む原因となる前提を修正する必要があります。

フラッシュローン攻撃とフラッシュローンの違い

フラッシュローンは、暗号資産を借り入れ、アトミックに返済するための金融・技術的な仕組みです。

フラッシュローン攻撃とは、その仕組みを使って脆弱なスマートコントラクトのロジックを悪用する行為です。

正当なフラッシュローンは、価格差の調整、債務の借り換え、担保の入れ替え、ポジションの決済、プロトコルが認めた強制決済などに役立つ場合があります。

攻撃では、意図されていない挙動を利用して価値を引き出し、プロトコルやユーザーに損害を与えます。

したがって、すべてのフラッシュローントランザクションを攻撃と呼ぶのは正確ではありません。

フラッシュローン攻撃におけるアトミック性

アトミック性とは、1回のブロックチェーントランザクション内のすべての操作が一括して成功するか、すべて失敗することを意味します。

攻撃には、借入、トークンスワップ、流動性の預入、価格変更、担保操作、出金、返済などが含まれる場合があります。

多くのスマートコントラクトを呼び出す場合でも、これらの操作は1つのトランザクションとして扱われます。

最後の条件が満たされない場合、ブロックチェーンはトランザクションの状態変更を取り消します。

ただし、攻撃者は失敗した実行に使われたネットワーク手数料を通常支払う必要があります。

Ethereumの分散型金融に関するドキュメントでは、フラッシュローンがトランザクション内で返済されない場合、最初から実行されなかったかのように取り消されると説明されています。

ERC-3156とフラッシュローンのセキュリティ

ERC-3156は、単一資産のフラッシュローンに関するEthereumの確定済みインターフェース標準です。

この標準は、貸し手が利用可能な流動性を報告し、手数料を計算し、資産を送金し、受取側を呼び出し、返済を受ける方法を定めています。

受取側は、想定されるフラッシュローンのコールバックに対応していることを示す特定の値を返す必要があります。

受取側の操作が完了した後、貸し手は返済を確認しなければなりません。

ERC-3156の仕様には、コールバック検証、貸し手への信頼、イニシエーターの検証、フラッシュミントに関するセキュリティ上の指針も含まれています。

ERC-3156に準拠すると互換性の向上につながる場合がありますが、標準への準拠は、貸し手、受取側、接続先のプロトコルの安全性を保証するものではありません。

基本的なフラッシュローンインターフェースの外にあるビジネスロジックにも、悪用可能な脆弱性が残る可能性があります。

価格オラクル操作攻撃

価格オラクルの操作は、フラッシュローン攻撃に関連する最も一般的な手法の1つです。

価格オラクルは、スマートコントラクトが暗号資産の評価に使う情報を提供します。

脆弱なプロトコルは、流動性プール1つの現在の交換レートから資産価格を算出している場合があります。

プールの流動性が限られている場合、大規模な取引によって価格が大きく変動する可能性があります。

攻撃者はフラッシュローンで借りた資産を使って大規模な取引を行い、プールの比率を一時的に歪めることができます。

その後、操作された価格を信頼するレンディング、デリバティブ、ボールト、担保プロトコルを利用します。

人為的に高くなった価格によって、標的プロトコルが攻撃者の担保を過大評価する可能性があります。

その結果、攻撃者は担保の実際の価値を上回る暗号資産を借りられる場合があります。

人為的に低くなった価格は、健全なポジションを危険に見せ、不公平な強制決済を引き起こす可能性があります。

攻撃者は、脆弱なプロトコルから市場全体の価値を下回る価格で資産を購入する場合もあります。

Ethereumのスマートコントラクトセキュリティガイドは、フラッシュローンを使って現物価格を吊り上げた後、脆弱なレンディングコントラクトを利用する攻撃について具体的に警告しています。

オラクル操作攻撃の例

あるレンディングプロトコルが、1つの小規模な流動性プールにおける現在価格を使ってToken Aを評価しているとします。

Token Aの通常価格は$10で、攻撃者は約$100,000相当の10,000単位を保有しています。

攻撃者は大規模なフラッシュローンを利用し、選択したプールからToken Aを購入します。

大規模な購入により、プール価格は一時的に$10から$50へ上昇します。

レンディングプロトコルは、攻撃者の10,000 Token Aを誤って$500,000と評価します。

攻撃者はトークンを預け入れ、別の資産を$350,000分借ります。

攻撃者は、フラッシュローンを返済するために必要な資金を得られるだけ、先ほどの取引を反対売買します。

市場価格が$10付近に戻った後も、レンディングプロトコルには約$100,000相当の担保しかない一方で、はるかに大きな債務が残ります。

この簡略化した例では、手数料、スリッページ、担保上限、その他の実務上の詳細を省いていますが、一時的な価格操作が恒久的な不良債権を生み得る仕組みを示しています。

プロトコルがオラクル操作を防ぐ方法

大きな価値を扱うプロトコルは、操作されやすい1つの現物市場だけに依存すべきではありません。

開発者は、複数の独立した情報源から価格情報を組み合わせることができます。

中央値や慎重に設計された平均値を使えば、1つの異常な市場の影響を抑えられる場合があります。

時間加重平均価格を使うと、1ブロックだけの操作を効果的にしにくくできます。

古いデータを無期限に受け入れないよう、価格フィードにはデータの鮮度確認も必要です。

流動性の確認により、小規模なプールが大規模なレンディング市場の評価を左右するのを防げます。

価格が妥当な範囲を超えて変動した場合、プロトコルは借入、ミント、出金、強制決済を制限できます。

価格オラクル操作に関するOWASP 2026の指針は、複数の情報源を使い、異常な乖離を拒否し、十分な平均化期間を設け、流動性の低いプールへの依存を避けることを推奨しています。

ガバナンスを狙ったフラッシュローン攻撃

一時的なトークン保有によって分散型プロトコルに影響を与えるだけの投票権を得ると、ガバナンスを狙ったフラッシュローン攻撃が成立する場合があります。

脆弱なガバナンスシステムは、ユーザーの現在のトークン残高を基に投票権を計算することがあります。

攻撃者は大量のガバナンストークンを借り、それを使って提案を作成、承認、または実行できます。

悪意ある提案は、トレジャリー資金の移転、コントラクト権限の変更、実装の置き換え、セキュリティ設定の弱体化などを行う可能性があります。

攻撃者はトランザクションが終了する前にガバナンストークンを返却します。

攻撃者はガバナンストークンを長期保有せずに、プロトコルを支配できる場合があります。

ガバナンスシステムがフラッシュローンのリスクを軽減する方法

過去の残高スナップショットを使えば、現在のトランザクション時点ではなく、それ以前のブロックにおけるトークン保有量に基づいて投票権を計算できます。

スナップショット取得後に借りたトークンで、その提案の投票権を増やすことはできません。

投票開始までの遅延を設ければ、提案の作成と投票開始を切り離せます。

タイムロックを設けると、提案の承認から実行までにさらに時間を確保できます。

こうした遅延により、参加者は悪意あるガバナンス行為を特定し、対応する時間を得られます。

提案のしきい値、投票期間、定足数要件、緊急時の管理者、制限された管理権限も、追加の保護策になります。

OpenZeppelinの最新ガバナンスドキュメントでは、過去の投票チェックポイント、提案のライフサイクル、タイムロックを利用した実行について説明しています。

タイムロック管理者や別の特権ロールが攻撃対象になる可能性があるため、タイムロックを導入しているだけでガバナンス設計が安全になるわけではありません。

ボールトのシェア操作攻撃

トークン化ボールトは一般に、プール内の暗号資産に対する請求権を表すシェアを発行します。

預入時に発行されるシェア数は、総資産と総シェアの関係によって決まる場合があります。

フラッシュローン攻撃では、この比率に関する安全でない計算が悪用される可能性があります。

攻撃者は預入または出金の前に、ボールト残高を操作することがあります。

その結果、ボールトが過剰または過少にシェアを発行したり、過剰な原資産を引き出したりする可能性があります。

総供給量がゼロ、または極めて小さい場合、最初の預入者に関する仕組みは特に危険です。

通常の預入ではわずかに見える丸め処理も、フラッシュローンの資本を使って繰り返されると大きな利益につながる可能性があります。

算術計算のエラーに関するOWASP 2026の指針は、丸めや精度の脆弱性が、フラッシュローンや高額取引の繰り返しによって増幅される可能性があると警告しています。

寄付攻撃

寄付攻撃とは、攻撃者がトークンをボールトやレンディングコントラクトへ直接送金し、見かけ上の資産残高を変化させる攻撃です。

この送金はプロトコルの通常の入金機能を経由しないため、対応するシェアが発行されない場合があります。

プロトコルがウォレット残高から直接シェア価値を計算している場合、寄付された資産によって既存シェアの見かけ上の価値が上昇する可能性があります。

攻撃者はフラッシュローンを使い、極めて大規模な一時的寄付を行うことがあります。

その後、操作されたシェア価値を利用し、不公平に資産を借り入れ、償還し、強制決済し、またはミントする可能性があります。

安全なプロトコルは、通常の会計処理上の入金と、依頼されていないトークン送金を区別する必要があります。

内部会計や仮想シェアの仕組みにより、コントラクトが保有するトークンの実残高への依存を抑えられる場合があります。

丸め処理と精度を狙った攻撃

スマートコントラクトでは、固定精度の整数を使って数値を表します。

多くのブロックチェーン処理では無制限の小数桁を保存できないため、除算によって小数部分が切り捨てられることがあります。

プロトコルが、プロトコル側ではなくユーザー側に継続的に有利となる方向へ丸める場合があります。

通常の状況では、1回の操作による利益はごくわずかかもしれません。

攻撃者はフラッシュ流動性を利用して大きな金額で操作を実行したり、1回のトランザクション内で何度も繰り返したりできます。

合計利益がローン手数料とトランザクションコストを上回る可能性があります。

開発者は、ゼロ付近、最大値付近、初回入金時、資産とシェアの比率が極端な場合の計算をテストする必要があります。

各処理で保護すべき当事者に応じて、丸める方向を選ぶ必要があります。

リエントランシーを伴うフラッシュローン攻撃

リエントランシーとは、元の関数が状態更新を完了する前に、外部コントラクトがプロトコルへコールバックすることです。

フラッシュローンの受取側では通常コールバックが発生するため、外部呼び出しの境界が複数生じます。

攻撃者は一時的な資本とリエントランシーを組み合わせ、資金を複数回出金したり、担保チェックを回避したり、古い残高を利用したりする場合があります。

リエントランシーは、直接の呼び出し、トークンフック、ボールトのコールバック、フォールバック関数、その他の接続先コントラクトを通じて発生する可能性があります。

開発者は、外部アドレスに制御を渡す前に、重要な内部状態を更新する必要があります。

Solidityの公式セキュリティガイダンスは、リエントランシーのリスク軽減にChecks-Effects-Interactionsパターンを推奨しています。

Checks-Effects-Interactionsパターンでは、まず要件を確認し、次に内部状態を更新し、その後に外部コントラクトを呼び出します。

OpenZeppelin Contractsのユーティリティには、対応するスマートコントラクト設計で使えるリエントランシーガードや一時停止機能も用意されています。

リエントランシーガードでは、安全でない経済ロジックや価格計算の問題は修正できません。

読み取り専用リエントランシー

読み取り専用リエントランシーとは、関数の実行途中に別のプロトコルが一貫性のない状態を読み取ることです。

脆弱な関数自体が、2回目の出金や入金を直接許可するとは限りません。

しかし、外部からの価格照会や残高照会によって、まだ一貫した更新が完了していない値が参照される場合があります。

フラッシュローン攻撃者は、その一時的な状態を利用して、読み取り結果を信頼する別のプロトコルに影響を与えることができます。

開発者は、元のコントラクトが直接的な再入によって資金を失うかだけでなく、コールバック中に接続先コントラクトが状態をどう観察するかも考慮する必要があります。

担保と強制決済を狙った攻撃

暗号資産レンディングプロトコルは、担保比率を使って借入可能額やポジションの強制決済条件を決定します。

フラッシュローン攻撃者は、比率の計算前に担保価格や債務価格を操作する場合があります。

攻撃者は担保の価値を実際より高く見せ、担保不足のローンを借りることができます。

また、健全な担保の価値を実際より低く見せ、他のユーザーを不公平に強制決済する場合もあります。

価格そのものではなく、強制決済ボーナス、返済計算、担保の移転を操作する攻撃もあります。

担保システムでは、堅牢な価格設定、借入上限、最低流動性要件、十分に検証された強制決済計算式を採用する必要があります。

流動性プールの操作

自動マーケットメイカーの流動性プールは、スマートコントラクト内に保管されている資産の数量に基づいて暗号資産の価格を決定します。

大規模な取引によって資産数量が変化し、提示価格も変わります。

この価格変動は想定された挙動であり、ソフトウェアエラーではありません。

脆弱性が生じるのは、別のプロトコルがプールの一時的な現物価格を、より広い市場の信頼できる価値とみなす場合です。

フラッシュローンにより、攻撃者は比較的大きなプールでも1回のトランザクションで価格を動かせるほどの資本を得られます。

プロトコルは、価格設定システムが利用する各市場を操作するのに必要なコストを分析する必要があります。

複数のプロトコルをまたぐフラッシュローン攻撃

DeFiプロトコルは、価格設定、担保、流動性、トークン交換、決済などで他のコントラクトに依存することがよくあります。

フラッシュローン攻撃は、元の貸し手に返済する前に複数のプロトコルを経由することがあります。

個々のコントラクトは、それぞれのローカルルールに従って動作しているように見える場合があります。

それでも、操作の組み合わせによってシステム全体の経済的前提に反する結果が生じる可能性があります。

このコンポーザビリティにより、個別のユニットテストだけでは攻撃の特定が困難になります。

開発者は、プロトコルが利用するすべての外部依存先を含め、トランザクションの全経路をテストする必要があります。

ビジネスロジックの脆弱性に関するOWASP 2026の指針は、スマートコントラクトのコードが記述どおりに動作していても、安全でない経済的結果を許す場合があると説明しています。

アクセス制御を狙った攻撃

フラッシュローンは、アクセス制御の弱さによる損害を増幅させる可能性があります。

攻撃者は、トークン残高の条件を満たしてロールへの一時的なアクセスを得る場合があります。

また、プロトコルが呼び出し元を適切に検証せず、管理機能を公開している可能性もあります。

一時的な資本を使うことで、より多くの暗号資産をミント、借入、出金、または別の場所へ移転できる場合があります。

ロールの確認は明示的に行い、1回のトランザクション内で得られる残高だけに依存すべきではありません。

アップグレード、一時停止、トレジャリー、ミント、オラクル、ガバナンスの各ロールを、相互に関連する権限システムとして見直す必要があります。

トークン互換性を狙った攻撃

すべての暗号資産トークンが、単純な送金や残高の挙動に従うわけではありません。

送金手数料を差し引くもの、残高をリベースするもの、コールバックを実行するもの、アドレスをブロックするもの、通常と異なる値を返すものがあります。

こうしたトークンを扱う際、フラッシュローンの貸し手や標的プロトコルが返済額や担保を誤って計算する場合があります。

攻撃者は、脆弱なコントラクトの前提を覆す挙動を持つトークンを選ぶ可能性があります。

対応資産は、見慣れたトークン関数を備えているという理由だけで受け入れず、個別にテストする必要があります。

フラッシュミント攻撃

フラッシュミントでは、流動性プールにすでにあるトークンを貸す代わりに、新しいトークンを一時的に生成します。

新たに生成されたトークンは、トランザクション終了前にバーンまたは精算されなければなりません。

プロトコルが一時的にミントされた供給量を恒久的な経済的所有とみなすと、問題が生じる可能性があります。

攻撃者は、一時的な残高を投票、担保計算、報酬の適格性、その他の残高ベースの機能に利用できます。

フラッシュミント可能なトークンを扱う接続先プロトコルは、1回のトランザクション中に非常に大きな供給量が一時的に存在し得ることを理解する必要があります。

NFTを狙ったフラッシュローン攻撃

NFTフラッシュローンでは、特定の非代替性トークンを一時的に移転し、1回のトランザクション内で同じトークンを返却する必要があります。

脆弱なアプリケーションが、現在のNFT保有だけを基準に特典を付与することがあります。

攻撃者はNFTを一時的に借りて、長期保有者向けの報酬を受け取ったり、ガバナンスに影響を与えたり、コンテンツのロックを解除したり、アクセス条件を満たしたりできます。

攻撃者は、本来なら長期保有者を対象とする特典を得た後、NFTを返却します。

一時的な保有を適格とすべきでない場合、アプリケーションは過去の保有状況、請求記録、保有期間、その他の制御を利用する必要があります。

フラッシュローン攻撃とMEV

最大抽出可能価値(MEV)とは、ブロック内のトランザクションの取り込み順序を制御して得られる価値です。

パブリックなトランザクションプールを通じて送信されたフラッシュローン攻撃は、承認前に自動化されたサーチャーから見える場合があります。

別の参加者が攻撃をコピーしたり、より高い手数料を提示したり、攻撃の前後にトランザクションを配置したりする可能性があります。

攻撃者は、コピーされるリスクを減らすため、プライベートなトランザクション経路を利用する場合があります。

それでもブロックビルダーやバリデーターは、そのトランザクションをブロックに含めるか、どこに配置するかに影響を与えられます。

MEVに関するEthereumのドキュメントでは、トランザクションの取り込み、除外、順序付けが追加の価値を生み出す仕組みを説明しています。

攻撃者が利益を計算する方法

攻撃が経済的に成功するのは、引き出した価値がすべてのコストを上回る場合に限られます。

簡略化した計算式は次のとおりです。

攻撃による純利益 = 引き出した価値 − フラッシュローン手数料 − 取引手数料 − ガス代 − スリッページ − その他の損失

借入元本は貸し手に返すため、利益として手元に残るものではありません。

有利なブロックへの取り込みやプライベートなトランザクション経路を利用するため、攻撃者が追加料金を支払う場合もあります。

標的プロトコルから価値を引き出せても、実行コストが予想を上回ればトランザクション全体では損失になる可能性があります。

失敗したフラッシュローン攻撃にもコストがかかる理由

アトミック性によって状態変更は取り消されますが、実行に使われたブロックチェーンのガス代は通常返金されません。

攻撃がリバートされる条件に到達するまでに、多数のスマートコントラクトを呼び出す場合があります。

送信者はブロックチェーンの手数料ルールに従い、その計算処理の費用を支払います。

テスト、トランザクションのシミュレーション、プライベートなインフラ、スマートコントラクトの開発にもオフチェーンのコストがかかります。

失敗した試行による金銭的損失が限られていても、その額はトランザクションが一時的に管理する資本に比べて小さい場合があります。

フラッシュローン攻撃の検知方法

ブロックチェーンのセキュリティシステムは、大規模なフラッシュローンと、その後に続くトランザクションを監視できます。

正当な裁定取引や借り換えでも同様の金額が使われることがあるため、大規模なローンだけでは攻撃の証拠になりません。

検知システムは、単独のイベントではなく、複数の操作の組み合わせを調べます。

警戒すべき兆候として、大規模な借入後の急激な価格変動、異常なミント、急速な借入、大規模な出金、同一トランザクション内での返済などがあります。

そのほか、ボールトシェアの急変、異常な担保比率、予期しないガバナンス操作、内部価格と外部価格の大きな乖離も指標になります。

トランザクショントレースを使うと、すべてのコントラクト呼び出しやトークン移転を再構成できます。

イベント、ストレージ変更、資産残高、価格の動きから、標的プロトコルから価値が流出した経路を把握できます。

リアルタイム監視と緊急対応

プロトコルは、大規模な出金、異常な借入、極端なオラクル価格の乖離、流動性の急変を監視できます。

開発者が調査する間、ポーズ機能で重要な操作を一時停止できます。

過剰な管理権限自体がセキュリティやガバナンスのリスクになるため、緊急制御は限定的にする必要があります。

対応計画では、誰がプロトコルを一時停止できるか、その権限をどう保護するか、通常運用をどう再開するかを明確にします。

計画には、コミュニケーション、資産追跡、コントラクト分析、影響を受けたインフラ提供者との連携も含める必要があります。

攻撃全体が人間の対応前に完了する場合があるため、監視だけであらゆるアトミック攻撃を確実に防ぐことはできません。

手動対応よりも、スマートコントラクトによる予防的な制御が重要です。

開発者がフラッシュローン攻撃を防ぐ方法

操作耐性のある価格を使う

プロトコルは、信頼できる複数のデータソースを組み合わせ、流動性の低い1つの現物市場に依存しないようにします。

高額な操作を許可する前に、価格データの鮮度、乖離、流動性、市場の利用可能性を検証する必要があります。

経済的な不変条件を保護する

不変条件とは、有効なトランザクションの前後で常に維持されなければならない条件です。

レンディングプロトコルでは、債務がリスク調整後の担保価値を超えないことを要件にできます。

ボールトでは、ユーザーが持分に応じた価値を超えて出金できないことを要件にできます。

テストでは、極めて大きな一時残高を使って、こうした条件を破れるか試す必要があります。

1回のトランザクションにおけるリスクを制限する

借入、ミント、出金、強制決済、償還に上限を設けると、1回のトランザクションが影響を与えられる価値を制限できます。

上限を設けても根本的なバグは直りませんが、損失の最大額を抑えられる場合があります。

過去のガバナンス残高を使う

一時的なトークン保有を投票要件に含めるべきでない場合は、以前のスナップショットに基づいて投票権を決めます。

投票の遅延やタイムロックによって、不審な提案に異議を唱える時間を確保できます。

リエントランシー対策を適用する

重要な関数では、信頼できない外部コントラクトを呼び出す前に内部会計を更新します。

リエントランシーロックは、1回の実行経路における特定の再入を防止できます。

すべてのコールバックを検証する

フラッシュローンの受取側は、貸し手、イニシエーター、資産、金額、手数料、指示データを検証する必要があります。

攻撃者が受取側を直接呼び出し、すでに保有されている資産を使って特権動作を引き起こせないようにする必要があります。

保守的な丸め処理を使う

プロトコルは、ユーザーに無償の価値を生まない方向に丸める必要があります。

供給量がゼロ、最小、非常に大きな預入、特殊な資産比率を含めて計算をテストします。

会計処理を実残高から切り離す

プロトコルは、自身のアドレスに送金されたすべてのトークンを通常の入金として自動的に扱うべきではありません。

内部会計によって、直接の寄付が予期せずシェア価格を変えるのを防げる場合があります。

一時停止機能とサーキットブレーカーを使う

サーキットブレーカーは、価格、残高、出金が定められた範囲を超えた場合に操作を拒否できます。

異常な活動が検知された後に、ポーズ機能で被害を抑えられる場合があります。

フラッシュローン規模の資本でテストする

セキュリティテストでは、攻撃者が接続先市場で利用可能な最大の流動性を得られると想定する必要があります。

一般ユーザーに十分な資本がない場合にだけ安全なプロトコルは、フラッシュローン攻撃に対して安全とはいえません。

フラッシュローン攻撃に対するセキュリティテスト

ユニットテストでは、各スマートコントラクト関数を想定内外の条件で検証します。

統合テストでは、外部プロトコルや価格情報源を含む一連のワークフローを調べます。

不変条件テストでは、コアとなる会計ルールを破るトランザクションの組み合わせを探します。

ファズテストでは、通常と異なる値、順序、操作の繰り返しを入力します。

フォークテストでは、最近のブロックチェーン状態のローカルコピーに対して、提案された攻撃を実行できます。

経済シミュレーションでは、流動性、担保、トークン価格、ユーザー行動の変化をモデル化できます。

独立した監査により、開発チームが見落としたリスクを特定できる場合があります。

監査を受けていても、アップグレード、市場の変化、新しいコントラクトとの統合後のプロトコルの安全性が保証されるわけではありません。

暗号資産ユーザーができること

一般のユーザーが、すべてのスマートコントラクトを専門のセキュリティチームと同じ水準で確認することはできません。

それでも、プロトコルが価格情報源、リスク制限、監査、緊急制御、アップグレード権限について説明しているかを確認できます。

収益の仕組みを説明せずに異常に高いリターンを提示するプロトコルには注意が必要です。

監査を受けていないコントラクトや新たに公開されたコントラクト1つに資金を集中させるべきではありません。

入金を一時停止できるか、出金が遅延する可能性があるか、損失が預入者に割り当てられるかを理解する必要があります。

過去に監査を受けていることや長期間運用されていることは不確実性の一部を減らしますが、スマートコントラクトリスクをなくすものではありません。

フラッシュローン攻撃の後に起こること

標的プロトコルは、入金、出金、借入、取引を一時停止する場合があります。

開発者やセキュリティ研究者は、トランザクショントレースを分析して脆弱性を特定します。

アップグレード権限があれば、プロトコルがコントラクトを更新する場合があります。

ガバナンス参加者は、補償、債務処理、トレジャリーの利用、システムの復旧について投票する場合があります。

一部のプロジェクトは、攻撃者に連絡して資産の返還を求めることがあります。

ブロックチェーン上のアドレスは監視できますが、トークンやコントラクトに特別な制御機能がない限り、影響を受けたプロトコルがオンチェーン送金を取り消すことは通常できません。

技術的な脆弱性が修正された後も、ユーザーの資金凍結、トークン価値の低下、不良債権、部分的な損失が続く可能性があります。

フラッシュローン攻撃は取り消せるか

確定済みのブロックチェーントランザクションは、通常、フラッシュローンの貸し手や影響を受けたユーザーが取り消すことはできません。

攻撃者が自発的に資産を返却するか、管理されたアドレスへ送金すれば、プロトコルが資産を回収できる場合があります。

トークンの設計によっては、発行者が特定のトークンを凍結する技術的機能を持つ場合があります。

プロトコルのトレジャリー、準備金、保険制度が損失の一部を補填する場合もあります。

ガバナンスで新しいトークンの発行や会計上の調整を承認することもできますが、こうした対応で元のトランザクションが消えるわけではありません。

フラッシュローン攻撃は違法か

フラッシュローン自体は、中立的なスマートコントラクトの仕組みです。

資産の窃取、市場操作、無許可のシステムアクセス、ユーザーへの欺瞞を目的に利用した場合、刑事法、民事法、金融関連法、コンピューター不正利用に関する法令に違反する可能性があります。

法的な扱いは、法域、トランザクションの構造、対象資産、意図、適用される規制によって異なります。

スマートコントラクトがトランザクションを受け入れたからといって、その行為が法的に認められていたとは限りません。

他のプロトコルやユーザーに損害を与える可能性のある活動に参加する前に、開発者やトレーダーは有資格の法律専門家に相談する必要があります。

フラッシュローン攻撃とラグプルの違い

フラッシュローン攻撃は一般に、外部の攻撃者がプロトコルの脆弱性を悪用して行います。

ラグプルは一般に、プロジェクト関係者や管理者が意図的に流動性を引き出したり、プロジェクトを放棄したり、特権アクセスを悪用したりする行為です。

ラグプルにスマートコントラクトの脆弱性やフラッシュ流動性が関係する場合もありますが、両者は主な原因が異なります。

関係者が自ら作った脆弱性を匿名で悪用した場合など、区別が明確でないこともあります。

フラッシュローン攻撃とリエントランシー攻撃の違い

リエントランシー攻撃は、内部状態の確定前に発生する外部コールバックを悪用します。

フラッシュローン攻撃は、一時的に借りた資本を使って脆弱性の影響を拡大します。

攻撃者が資産を借りた後、リエントランシーを使って標的から資金を流出させる場合、その攻撃はリエントランシー攻撃とフラッシュローン攻撃の両方に該当します。

この例では、フラッシュ流動性は資金調達の仕組みであり、リエントランシーは技術的な脆弱性です。

フラッシュローン攻撃とオラクル攻撃の違い

オラクル攻撃は、スマートコントラクトが利用するデータを操作または悪用します。

フラッシュローンは、オンチェーンの価格情報源を操作するのに必要な資本を提供する場合があります。

すべてのオラクル攻撃でフラッシュローンが使われるわけではなく、すべてのフラッシュローン攻撃がオラクルを標的とするわけでもありません。

一時的な資本で、レンディング、決済、強制決済を左右する価格を歪める場合、両者は重なります。

フラッシュローン攻撃と裁定取引の違い

裁定取引は市場間の価格差を利用し、価格を近づける働きをする場合があります。

フラッシュローン攻撃は、意図されていないプロトコルの挙動やセキュリティ上の弱点から価値を引き出します。

脆弱なプロトコルを悪用するトランザクションの一部に、裁定取引が含まれる場合があります。

利益が通常の市場価格差から生じたのか、システムに価値を誤計算または誤送金させたことから生じたのかが、主な違いです。

フラッシュローン攻撃に関するよくある誤解

フラッシュローン自体が悪意あるものではありません。

フラッシュローン攻撃でも、攻撃者が返済を免れるわけではありません。

トランザクションが成功するには、攻撃者は貸し手に返済する必要があります。

通常、フラッシュローンそのものが根本的な脆弱性ではありません。

攻撃者は別の流動性供給源や自己資金を利用できるため、フラッシュローン提供者を1社ブロックしてもプロトコルは安全になりません。

トランザクション後に価格が正常に戻っても、損害がなかったことにはなりません。

脆弱なプロトコルでは、すでに不良債権が発生したり、資産が恒久的に移転されたりしている可能性があります。

セキュリティ監査を受けても、あらゆるフラッシュローン攻撃から守られる保証はありません。

小規模なプロトコルだけが標的になるわけではなく、大規模なシステムにも予期しない経済的な相互作用が潜んでいる可能性があります。

攻撃がリバートされても、送信者がガス代やその他の実行コストを失うことがあるため、常に無料とは限りません。

よくある質問

暗号資産のフラッシュローン攻撃とは?

フラッシュローン攻撃とは、担保なしで一時的に借りた暗号資産を利用し、1回のトランザクション内で脆弱なスマートコントラクトを操作または悪用する攻撃です。

フラッシュローン攻撃でどのように利益を得るのですか?

攻撃者は脆弱なプロトコルから資産を引き出し、借入元本と手数料を返済したうえで、残った価値を利益として得ます。

フラッシュローン攻撃者はローンを返済する必要がありますか?

はい。通常、実行が終了する前に元本と必要な手数料を返済できなければ、トランザクション全体がリバートされます。

なぜ攻撃がリバートされないのですか?

フラッシュローンの貸し手に返済すれば攻撃は成功するためです。別のプロトコルが脆弱なロジックによって資産を失っても、ローンの返済条件は満たされます。

フラッシュローンは違法ですか?

いいえ。フラッシュローンは中立的なDeFiの仕組みですが、資産の窃取や市場操作に利用すれば、適用法令に違反する可能性があります。

すべてのフラッシュローンが攻撃ですか?

いいえ。正当なフラッシュローンは、裁定取引、借り換え、担保の変更、強制決済、流動性管理などに利用されます。

最も一般的なフラッシュローン攻撃は何ですか?

価格オラクル操作は一般的な手法の1つです。一時的な資本で流動性の低い市場価格を変え、その価格を別のプロトコルに利用させます。

フラッシュローン攻撃におけるオラクルとは?

オラクルとは、暗号資産の価格などの情報をスマートコントラクトに提供するデータソースです。

現物価格が危険なのはなぜですか?

1つの流動性プールの現物価格は、十分に大きな取引によって一時的に変動する可能性があります。

フラッシュローンでガバナンスを操作できますか?

はい。過去のスナップショットや遅延なしに現在の残高だけで投票権を計算する場合、一時的に借りたトークンがガバナンスに影響する可能性があります。

フラッシュローンでボールトを攻撃できますか?

はい。脆弱なトークン化ボールトでは、シェア計算、寄付、丸め処理、資産残高を操作される可能性があります。

フラッシュローンでリエントランシーが起きることはありますか?

フラッシュローンのコールバックによって外部呼び出しの機会が生じますが、接続先コントラクトがコールバックや別の呼び出しを安全に処理できない場合にのみ、リエントランシーが発生します。

寄付攻撃とは何ですか?

寄付攻撃とは、コントラクトに資産を直接送金し、会計処理、シェア価格、担保価値、出金計算などを操作する攻撃です。

フラッシュミント攻撃とは何ですか?

フラッシュミント攻撃とは、短期間しか存在しない残高を恒久的な経済的所有とみなすプロトコルを悪用するため、トークンを一時的に生成する攻撃です。

NFTはフラッシュローン攻撃に使われることがありますか?

はい。現在の保有状況だけを基準に報酬、投票権、アクセス権を付与するシステムは、一時的なNFT保有によって悪用される可能性があります。

フラッシュローン攻撃は1ブロック内で起きますか?

通常は1回のトランザクション内で起き、そのトランザクションは1つのブロックに含まれます。

フラッシュローン攻撃は複数のプロトコルをまたぐことがありますか?

はい。1回のトランザクションで、複数の取引、レンディング、ボールト、オラクル、トークンのコントラクトを利用できます。

フラッシュローン攻撃に失敗すると損失が出ますか?

はい。リバートされた攻撃でもガス代が発生し、オフチェーンの開発費やインフラコストがかかる場合があります。

フラッシュローン攻撃はどのように検知されますか?

セキュリティシステムは、大規模な一時借入の後に起きる異常な価格変動、借入、ミント、出金、ガバナンス操作などをトランザクショントレースから検知します。

プロトコルはフラッシュローン攻撃をどう防げますか?

操作耐性のある価格、過去の投票残高、安全な会計処理、保守的な丸め、トランザクション上限、コールバック検証、リエントランシー対策、広範なテストなどが有効です。

プロトコルがフラッシュローンを禁止すればよいのですか?

既知の貸し手アドレスをブロックするだけでは十分な対策になりません。攻撃者は別の貸し手、フラッシュミント資産、独自のコントラクト、自己資金を使えるためです。

時間加重価格ならあらゆる攻撃を防げますか?

いいえ。短期的な操作のコストを高めますが、期間が短すぎる場合、流動性が乏しい場合、データ設計が安全でない場合には、依然として機能しない可能性があります。

フラッシュローン攻撃は取り消せますか?

確定済みのトランザクションは通常取り消せませんが、自発的な返却、凍結機能、法的措置、プロトコルによる補償などを通じて資産を回収できる場合があります。

監査済みのプロトコルならフラッシュローン攻撃から安全ですか?

監査は一部のリスクを減らしますが、あらゆるコード変更、経済状況、統合、未知の脆弱性に対する安全性を保証するものではありません。

フラッシュローン攻撃の後、ユーザーは何をすべきですか?

ユーザーは、検証済みのプロトコル発表を確認し、予期しない資金回復用トランザクションへの署名を避け、必要に応じて安全でない承認を取り消し、トランザクション記録を保存してください。

フラッシュローン攻撃はハッキングと同じですか?

フラッシュローン攻撃は暗号資産のエクスプロイトの一種です。一方、「ハッキング」は技術、運用、アカウント侵害など、さまざまな形態を指す場合があります。

まとめ

フラッシュローン攻撃は、担保なしで一時的に借りた暗号資産を使い、スマートコントラクトのロジック上の脆弱性を増幅します。

攻撃者は資産を借り、プロトコルの状態を操作し、価値を引き出した後、1回のアトミックなトランザクション内でローンを返済します。

フラッシュローン自体が通常、根本的な脆弱性ではありません。問題は、価格オラクル、会計計算式、ガバナンスルール、コールバック、担保チェック、アクセス制御などにあることが一般的です。

アトミックな返済は通常の債務不履行から貸し手を守りますが、操作された価格や安全でない一時残高を信頼する他のプロトコルまでは守りません。

開発者は、誰もが一時的に非常に大きな額の暗号資産を管理できるという前提でシステムを設計する必要があります。

操作耐性のある価格設定、過去のガバナンススナップショット、保守的な会計処理、リエントランシー対策、トランザクション上限、不変条件テスト、リアルタイム監視によってリスクを軽減できます。

フラッシュローンは今後もDeFiで有用な仕組みですが、資本効率の高さゆえに、スマートコントラクトの経済的な前提に潜む弱点が大規模に悪用されやすくなります。

関連コンテンツ

WhatsMiner M30S++

WhatsMiner M30S++とは? WhatsMiner M30S++は、SHA-256 Proof of Workマイニング向けに設計されたMicroBT製のBitcoin ASICマイナーです。 WhatsMiner M30シリーズの一部であり、主にマイニングプールを通じてBitcoinをマイニングするために使用されます。 ASICマイナーは、1種類の計算を非常に効率的に実行するために作
2026/10/15 11:08

Web3ドメイン

Web3ドメインとは? Web3ドメインとは、長いウォレットアドレスの代わりとなり、分散型コンテンツを参照し、オンチェーンアイデンティティを表現し、ユーザーをWeb3アプリケーションへ接続できる、ブロックチェーンベースの名前です。 ユーザーは、長い16進数のアドレスに暗号資産を送付する代わりに、ブロックチェーンベースのユーザー名やドメインなど、読みやすい名前へ送付できる場合があります。 Web3ド
2026/10/15 11:08

Web3プロジェクト

Web3プロジェクトとは? Web3プロジェクトとは、分散型技術を活用し、ユーザーが資産、ID、データ、参加、デジタル上の価値をより管理できるようにする、ブロックチェーンベースのアプリケーション、プロトコル、ツール、ネットワーク、コミュニティです。 Web3プロジェクトには、レイヤー1ブロックチェーン、レイヤー2ネットワーク、DeFiプロトコル、ウォレット、NFTプラットフォーム、DAO、ブロック
2026/10/15 11:06
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?