サンドイッチ攻撃はどのように機能しますか?なぜ成功するのですか?
サンドイッチ攻撃は2つの重要なメカニズムを悪用します:(1) mempoolの公開透明性、(2) Gasの入札がトランザクションの順序を決定すること。
攻撃フロー: ①被害者が「UniswapでUSDC 10,000をETHに交換する」トランザクションをmempoolに送信し、スリッページ許容度を1%に設定 ②攻撃者のボットがこのトランザクションを即座に発見し、十分な利益余地があると評価 ③攻撃者が被害者より高いGasで「ETHを買う」トランザクションを送信し、優先的に処理されることを確保——これがフロントラン ④攻撃者の買い注文がプール内のETH価格を引き上げる ⑤被害者の買い注文が約定するが、ETHがより高価になっているため、被害者はUSDCでより少ないETHしか購入できない(許容範囲内) ⑥攻撃者は被害者の取引によって上昇した価格でETHを売る「バックラン」トランザクションを即座に送信し、利益を確定
この全過程で攻撃者の利益=被害者が余分に支払った金額−ガス代
どのような状況がサンドイッチ攻撃のターゲットになりやすいですか?
3つの要素があなたが魅力的なターゲットかどうかを決定します:
(1) 大口取引規模:小額取引(例:$50)は抽出可能なマージンが少なく——ガス代が利益を上回る可能性があり、攻撃者は手を出したがりません;大口取引($1,000以上)はガスコストをカバーするのに十分なマージンがあり、主要なターゲットです。
(2) 広いスリッページ許容度:3%の許容度を設定した場合、攻撃者は最大3%が抽出可能と分かります。厳格な0.1%の許容度を設定すると攻撃リスクが大幅に低下します(攻撃者の余地が少なすぎる)。
(3) 流動性の浅い取引ペア:流動性の低いプールはもともと大きなスリッページがあり、小幅な価格上昇でも被害者の取引が許容範囲内で約定しやすく、同時に攻撃者の利益も高くなります。
人気のステーブルコインペア(USDC/USDT)はサンドイッチ攻撃に対してほぼ免疫があります——価格がほとんど動かないため、攻撃のウィンドウがほぼありません。
ユーザーはサンドイッチ攻撃から自身を守るためにどのような対策を講じられますか?
(1) 厳格なスリッページ設定:許容度を0.1〜0.5%に設定すると攻撃者の操作余地が大幅に縮小します;デメリット:高ボラティリティ時にトランザクションが失敗する可能性があります。
(2) プライベートmempoolサービス:Flashbots Protect、MEV Blockerなどのサービスによりトランザクションが公開mempoolに表示されなくなり、攻撃者はそもそも確認できません。現在最も効果的な防御手段の1つです。
(3) 大口注文の分割:1つの大口取引を複数の小口に分けてバッチ実行し、各トランザクションの規模を減らして攻撃利益の余地を縮小します。
(4) 深い流動性プールを選ぶ:深いプールはトランザクションあたりの価格インパクトが小さく、攻撃者が抽出できる利益も少なくなります。
(5) MEV耐性のあるDEXを使用する:一部のDEX(CoW Protocolのバッチオークションメカニズムなど)はMEVを削減するよう設計されており、ユーザーのトランザクションがフロントランされるのを防ぎます。
サンドイッチ攻撃と一般的なフロントランニングはどう違いますか?
フロントランニングはより広義の概念です:攻撃者がターゲットのトランザクションの前に自分のトランザクションを挿入して利益を得ます。
サンドイッチ攻撃は特定のフロントランニングパターンであり、その重要な特徴は「前置トランザクションと後置トランザクションの両方がある」こと——攻撃者は被害者の両側にトランザクションを挿入して「挟む」ことです。
他のフロントランニング形式: (1) 純粋なフロントラン:被害者のトランザクションの前にのみ挿入し、先にアクションを完了させて被害者から機会を奪う(例:NFTミントの狙い撃ち、裁定機会の先取り) (2) バックラン:被害者のトランザクションの後にのみ挿入し、被害者が引き起こした価格変動から利益を得る(例:清算後の裁定取引)
サンドイッチ攻撃=フロントラン+バックランの組み合わせ——最も複雑なパターンですが、普通のユーザーから継続的に抽出する最も信頼できる方法です。
EigenPhi のオンチェーン分析によると、2022年10月から2024年9月にかけてEthereumでは1日平均4,400件以上のサンドイッチ攻撃が発生していた。最も記録が充実した操作者はボット jaredfromsubway.eth で、2023年3月の稼働開始以来サンドイッチ攻撃で累計2,200万ドル以上の利益を得ており、EigenPhi の公開 Dune Dashboard で確認できる。具体的に検証可能なケースとして、2025年3月12日にUniswap v3 USDC-USDTプールで$220,764 USDCの交換を送信したユーザーがサンドイッチ攻撃を受け、受け取ったのは$5,271 USDTのみで$215,000以上を失った。(トランザクションハッシュ 0xee9fcd2b9996e96b642cb4cda47fc140f98fdaf07ee02657743d4bfcc4670106 は Etherscan で確認可能)
プライベートmempoolはサンドイッチ攻撃問題を解決しますが、新たな信頼の前提を導入します——Flashbotsなどのサービスがあなたのトランザクション情報を悪用しないと信頼しなければなりません。厳格なスリッページ設定は防御になりますが、トランザクション失敗率が上昇します。現在のところ完全な解決策はなく、MEVは公開ブロックチェーンアーキテクチャの固有の特性であり、サンドイッチ攻撃はその最も目に見える負の表れに過ぎません。