Back to Blog

Flashbots Relayの脆弱性を突いたMEVボットのハッキング

Code Auditing
February 6, 2024
7 min read

2023年4月、攻撃者がFlashbotsリレーに存在する脆弱性を利用して複数のMEVボットを攻撃し、約2,000万米ドルの利益を得るという事案が発生しました。この攻撃の根本的な原因は、特定の条件下でプライベートトランザクションがパブリックプールにリークされる可能性があり、攻撃者がそのリークされたトランザクションにバックラン(後追い取引)を仕掛けることで利益を得られたことにあります。また、攻撃者が被害者を攻撃するためにハニーポットトランザクションを使用したり、攻撃用コントラクトに自己防衛メカニズムを組み込んだりと、いくつかの高度なテクニックが使用されていたことも確認しています。

背景

Flashbots

Flashbotsのウェブサイトによると、Flashbotsは「Maximal Extractable Value(MEV、最大抽出可能価値)がステートフル・ブロックチェーンにもたらす負の外部性を緩和するために結成された研究開発組織であり、まずはイーサリアムから着手している」とのことです。Flashbotsには、サーチヤー(Searcher)、ビルダー(Builder)、リレー(Relay)など、いくつかの異なる主体が関与しています。以下の画像は、それらの関係を示したものです。

この画像はFlashbotsのドキュメントから引用したものです。

PBS(プロポーザー・ビルダー分離)プロトコルは、ブロックプロポーザー((ブロック構築のために選出された)ブロックの提案者)が自分のブロック領域を複数のビルダーに販売し、利益を最大化することを可能にするプロトコルの一つです。具体的には、複数のサーチヤーがメモリプール内のトランザクションを監視し、バンドル(取引の束)を生成してビルダーに送付します。ビルダーはサーチヤーからのバンドルを集約し、最も価値の高いブロックを作成した後、リレーに引き渡します。リレーはそのブロックを、エポックスロットのブロック構築のために選出されたバリデーターであるブロックプロポーザーに提出します。

このアーキテクチャにおいて、リレーはビルダーとプロポーザーの双方から信頼される第三者機関です(両者は互いに信頼していません)。リレーは、プロポーザーがブロックヘッダーに署名する前に、ブロックの中身を取得できないように保証します。また、手数料が確実にプロポーザーへ支払われるようにします。

詳細なアーキテクチャに興味のある読者は、Flashbotsのドキュメントを参照してください。ここでは、リレーが提供すべきセキュリティ保証、つまり「ブロックがチェーン上に存在しない場合、リレーはプロポーザーにブロックの中身を明かしてはならない」ということだけを覚えておいてください。もしこれが守られなければ、悪意のあるプロポーザーはリークされたブロックの内容を利用して利益を得ることができてしまいます(今回の攻撃のように)。

サンドイッチ攻撃

サンドイッチ攻撃とは、攻撃者が2つのトランザクションの間に自身のスワップ(交換)取引を挟み込むことで利益を得る手法です。例を挙げて説明します。

WETHとUSDCの2つのトークンを持つDEXプールがあるとします。ある利用者がWETHをUSDCに交換するスワップリクエストを提出したとします。このスワップトランザクションはメモリプールに入り、MEVボット(サーチヤー)によって取得されます。するとボットは、利用者によるスワップトランザクションの「前」と「後」に、それぞれ1つずつ、計2つのトランザクションを生成します。

具体的に、ボットの1つ目のトランザクションはWETHを使ってUSDCをスワップするもので、これによりUSDCの価格が上昇します。次に、利用者のスワップトランザクションが実行されますが、1つ目のトランザクションによってUSDCの価格が高騰しているため、利用者はより少ないUSDCしか受け取れません。その後、ボットの2つ目のトランザクションがUSDCをWETHに交換し、最初のスワップ時よりも多くのWETHを獲得します。

この画像は、Liyi Zhouらによる論文『High-Frequency Trading on Decentralized On-Chain Exchanges』から引用したものです。

バックラン(Backrunning)

バックランとは、大規模なトレードの直後にトランザクションを実行する戦略です。バックランは基本的に、大規模な取引がトークン価格に与える影響による裁定機会(アービトラージ)を利用します。例えば、利用者がDEXプールでWETHをUSDCに交換する大規模なトレードを行うと、そのプールのUSDC価格が他の取引所よりも高くなる可能性があります。バックランを行うボットは、この裁定機会を即座に捉え、より低い価格でUSDCをWETHに交換して多くのWETHを受け取り、そのWETHを他のDEXプールで売却することで利益を得ます。

脆弱性

事後分析レポートに示されている通り、この脆弱性はリレーのコード内に存在していました。署名済みのブロックヘッダーが無効であっても(シグネチャ自体が有効であれば)、リレーが悪意のある(プロポーザーである)攻撃者にビルダーのブロック内容を明かしてしまうというものです。この場合、ビーコンチェーンに提出された無効なブロックヘッダーとブロック内容は拒否されますが、プロポーザーは自身のブロックを提出する競争に勝利し、リークされたブロック内容を使って利益を得ることが可能になります。

攻撃プロセス

攻撃者は悪意のあるプロポーザーであり、被害者はサンドイッチ取引を実行しようとするMEVボットです。

実際の攻撃トランザクションを例に挙げます。

ブロック 16964664
位置 0 被害者トランザクション:0xd2edf726fd3a7f179c | Phalcon Explorer (blocksec.com) MEVボットが2454.1 WETHを使用して4.5 STGをスワップ
位置 1 攻撃トランザクション:0x4b2a2d03b3dc136ef9 | Phalcon Explorer (blocksec.com) 攻撃者が158 STGを使用して2454.1 WETHをスワップ

被害者トランザクションと攻撃トランザクションは、ブロック16964664においてそれぞれ位置0と1に配置されています。要するに、被害者(MEVボット)は、uniswapのWETH-STGプールで2,454.1 WETHを使用して4.5 STGをスワップするという大規模トレードを実行しました。これが大きな裁定機会を生み出し、攻撃者は158 STGを使ってプール内のWETHをすべて吸い上げました。

ここで疑問が生じます。なぜ被害者(MEVボット)は、3米ドル程度の価値しかない4.5 STGを得るために、500万米ドル相当(2,454 WETH)もの資金を使おうとしたのでしょうか。被害者がこのスワップを実行したとき、プール内の流動性は極めて低かった(0.005 WETHと4.5 STG)ことに注意してください。

分析の結果、MEVボットがこのような馬鹿げたスワップを実行した理由が2つ判明しました。

一つ目は、攻撃者がハニーポットトランザクションを作成し、被害者を誘い込んでサンドイッチ攻撃を実行させようとしたことです。このハニーポットトランザクションのハッシュは0xd534c46ba5a444e886 | Phalcon Explorer (blocksec.com)です。具体的には、攻撃者は(ブロック16964664の前に)WETHをSTGに交換するトランザクションをブロードキャストしました。プール内の流動性が極めて低いため、これがMEVボットにとってサンドイッチ攻撃を行う絶好の機会となりました。以下の図に示すように、MEVボットはサンドイッチ攻撃用の3つのトランザクションからなるバンドルを作成したのです。

二つ目は、このMEVボットが強欲なサンドイッチ戦略を採用しており、その送信にFlashbotsを利用していたことです。利益を最大化するため、バンドル内の最初のトランザクションは(2,454 WETHを使って)STGトークンをほぼすべて吸い上げようとしていました。これは、700ドル程度の利益(0.35 WETH)を得るために500万ドル(2,454 WETH)もの資金を投じるという、極めて強欲で7,000対1の非効率的な戦略です。ボットは、このスワップがチェーン上で確定するまで誰にも知られることはないと思い込んでいました。しかし、リレーの脆弱性によってこの前提が崩れました。これを利用して、攻撃者はボットの初期サンドイッチ攻撃トランザクションを組み込んだ新しいバンドルを作成し、そこへ2,454 WETHを獲得するためのバックラントランザクションを追加したのです。

BlockSecのTwitterに記載されている図は、攻撃の全工程を示しています。

自己防衛メカニズム

攻撃者がWETHとSTGのスワップを行うハニーポットトランザクションで被害者を誘い込んだことは分かりました。では、ハニーポットトランザクションを利用できるサンドイッチ取引が存在しない場合はどうなるのでしょうか? 実はその場合、攻撃者はプールの状況を監視し、自身の0.35イーサを保護するために逆方向のスワップを実行する仕組みを組み込んでいました。これは非常に賢い動きです。以下は、ハニーポットトランザクションを実行したスマートコントラクト(0xe73f1576af5573714404a2e3181f7336d3d978f9)の逆コンパイルされたコードです。

我々の発見を検証するため、ブロック16964664の位置0でPhalcon Forkを用いてハニーポットトランザクションをシミュレートしました。

まとめ

本件は、Flashbotsリレーの脆弱性を巧妙な攻撃戦略と組み合わせて利用した初めての攻撃事例です。

  • 第一に、この攻撃はFlashbotsリレーに存在するゼロデイ脆弱性を悪用しました。
  • 第二に、MEVボット(被害者)の強欲なサンドイッチ戦略を逆手に取り、ハニーポットトランザクションを使用して彼らを誘い込みました。
  • 第三に、攻撃が成功しなかった場合でもハニーポットトランザクションのコスト(0.35 WETH)を回収するための自己防衛メカニズムが備えられていました。

本シリーズの他の記事を読む:

Sign up for the latest updates
~$104.6M Lost: Verus, RetoSwap & More | BlockSec Weekly
Security Insights

~$104.6M Lost: Verus, RetoSwap & More | BlockSec Weekly

This BlockSec weekly security report covers 5 notable attack incidents identified between May 18 and May 24, 2026, with total estimated losses of approximately $104.6M. Two incidents are analyzed in detail: the highlighted $11.7M Verus-Ethereum Bridge exploit, where a type-validation failure allowed a handcrafted supplemental export output to be misclassified as a valid primary export; and the $2.7M RetoSwap exploit on Monero, where a protocol-level authentication flaw in the P2P trade flow allowed an attacker to hijack the arbitrator role via a forged ACK message. Three additional key compromise incidents (EchoProtocol, Polymarket, StablR) accounted for ~$90.2M.

~$4.72M Lost: TAC, Transit Finance & More | BlockSec Weekly
Security Insights

~$4.72M Lost: TAC, Transit Finance & More | BlockSec Weekly

This BlockSec weekly security report covers 3 notable attack incidents identified between May 11 and May 17, 2026, across TRON, TON, and Ethereum, with total estimated losses of approximately $4.72M. Three incidents are analyzed in detail: the highlighted $1.88M Transit Finance exploit on TRON, where a deprecated swap bridge contract with lingering token approvals was exploited through arbitrary calldata forwarding; the $2.8M TAC TON-to-EVM bridge exploit caused by missing canonical wallet verification in the jetton deposit flow; and the $46.75K Boost Hook exploit on Ethereum, where spot price manipulation on a Uniswap V4 hook-based perpetual protocol forced the protocol to buy tokens at inflated prices using its own reserves.

~$15.9M Lost: Trusted Volumes, Wasabi & More | BlockSec Weekly
Security Insights

~$15.9M Lost: Trusted Volumes, Wasabi & More | BlockSec Weekly

This BlockSec bi-weekly security report covers 11 notable attack incidents identified between April 27 and May 10, 2026, across Sui, Ethereum, BNB Chain, Base, Blast, and Berachain, with total estimated losses of approximately $15.9M. Three incidents are analyzed in detail: the highlighted $1.14M Aftermath Finance exploit on Sui, where a signed/unsigned semantic mismatch in the builder-fee validation allowed an attacker to inject a negative fee that was converted into positive collateral during settlement; the $5.87M Trusted Volumes RFQ authorization mismatch on Ethereum; and the $5.7M Wasabi Protocol infrastructure-to-contract-control compromise across multiple EVM chains.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit