サンドイッチ攻撃とは何ですか?一般的に理解されるスリッページとどう違いますか?
サンドイッチ攻撃とは、攻撃者がオンチェーンの取引情報が公開されて見える特性を利用し、まもなく実行される大口の取引を検知すると、その取引の前に同じ方向の取引を先に挿入し、被害者の取引が価格を押し上げる(または押し下げる)と、直後に反対方向の2つ目の取引を挿入して利益を確定させる手法である。この一連のプロセスは、被害者の取引が攻撃者の2つの取引のちょうど真ん中に挟まれることから、サンドイッチの具材のような形になるため、この名前がついた。
一般的に理解されるスリッページとの最大の違いは「人為的な意図的な操作があるかどうか」にある:一般的なスリッページはAMMの価格決定メカニズムの自然な数学的結果であり、攻撃者がまったく存在しなくても、どんな規模の取引でもプールの比率の変化により本来ある程度のスリッページが生じる。サンドイッチ攻撃はこれに対して、攻撃者があなたの取引が引き起こすであろう価格への影響を意図的に悪用し、能動的に取引を挿入して自分の利益を増幅させ、あなたが実際に負担するスリッページの幅を純粋な自然なスリッページよりもはるかに深刻にする。サンドイッチ攻撃は「スリッページの仕組みを悪用して能動的に仕掛けられた攻撃」であり、スリッページ自体ではないと言える。
サンドイッチ攻撃はなぜ発生するのですか?攻撃者が継続的に実行できる技術的基盤は何ですか?
サンドイッチ攻撃が存在しうるのは、ブロックチェーンの2つのネイティブな構造的特性に由来する:一つは取引が正式にブロックにパッケージ化される前、通常公開のメンプール(待機エリア)に一時的に留まることであり、理論上誰でもこれらの未確認取引の内容を見られる;もう一つはブロック生成者が「これらの目に見える取引をどの順序でブロックに入れるか」についてかなりの裁量権を持つことであり、誰かがより高い優先手数料を支払う意思があれば、理論上自分の取引を他人よりも先に確認させられる。この2つの特性が組み合わさることで、攻撃者はメンプールを継続的に監視しさえすれば、利益の出る大口取引を見つけ次第、十分に高い優先手数料を支払うことで、自分の2つの取引をそれぞれ被害者の取引の前後に確実に配置できる。
この一連の攻撃プロセスは自動化プログラムによる実行に大きく依存している。なぜなら取引の検知、利益の余地の計算、取引の送信、正しい順序の確保という一連のプロセスは通常極めて短時間で完了する必要があり(同じブロックにパッケージ化される前でさえ)、手動操作ではこの速度にほぼ追いつけないからだ。これがサンドイッチ攻撃が実務上ほぼすべて専門のMEVボットによって実行される理由でもある。
サンドイッチ攻撃は具体的にどう実行されますか?完全な攻撃の一連の流れはどのようなものですか?
典型的なサンドイッチ攻撃の流れにはいくつかのステップがある:
この一連の流れは攻撃者にとってほぼ方向性のリスクがない——買いと売りの動作が極めて短時間で完了するため、攻撃者が負う価格変動リスクは極めて低く、主なコストは取引手数料と優先手数料だけである。
サンドイッチ攻撃は一般ユーザーにとって実際どのような影響がありますか?攻撃される確率をどう下げればよいですか?
ユーザーにとって、サンドイッチ攻撃の直接的な影響は実際の約定価格が予想よりも悪くなることであり、この追加の損失は完全に攻撃者の意図的な操作に由来し、市場の自然な変動によるものではない。攻撃される確率を下げるいくつかの具体的な方法:スリッページ許容度の設定を引き締める。攻撃者が搾取できる利益の余地は、あなたが設定するスリッページ許容範囲に直接制限されるため、許容度を厳しく設定するほど、攻撃者が操作できる価格差の余地は小さくなり、攻撃者自身のガスコストを差し引くともはや利益が出ないほど小さくなる可能性もある;MEV保護機能を備えた取引ルーティングサービスを使用する。この種のサービスは通常プライベート取引プールを経由し、正式にパッケージ化される前にあなたの取引が公開のメンプールに現れないようにし、攻撃者はあなたの取引の意図をまったく見られず、攻撃を仕掛ける術がなくなる;大口取引を数回の小口取引に分割して段階的に実行し、単一取引の価格への影響幅を減らし、それぞれの潜在的な利益を攻撃者にとってあまり魅力的でないものにする。
過去のある取引が本当にサンドイッチ攻撃を受けたかどうかを確認したい場合、ブロックチェーンエクスプローラーでその取引が含まれるブロックを確認し、あなたの取引の直前直後にある他の取引を観察できる——あなたと同じ方向の取引があなたより前に発生し、逆方向の取引があなたより後に発生し、この2つの取引が同一のアドレスから来ている場合、これが典型的なサンドイッチ攻撃のパターンである。
2025年3月、あるトレーダーがUniswap V3のUSDC-USDTプールで約22万764ドル相当のステーブルコイン交換取引を実行した。MEVボットはわずか数秒でこの取引を検知し、プールのUSDC流動性を一時的に引き出して極めて不利な価格でこの取引を成立させ、直後に流動性を元に戻した。この攻撃によりトレーダーは実質約21万5,500ドルの損失を被り、ほぼ全損に近い状態となった。この事件は被害資産が理論上価格変動が極めて小さいステーブルコインペアであったにもかかわらず、損失比率が約98%にも達したことから、コミュニティ内で広く議論を呼んだ。
これはセキュリティリスクの用語であり、前向きなトレードオフというものは存在しない——サンドイッチ攻撃は被害を受けたユーザーにとって純粋な損失である。唯一議論できるトレードオフは:ブロックチェーンの取引情報が公開され透明であること、順序決定権が市場的に入札されうることという2つの特性が、同時に分散型システムの利点であり、サンドイッチ攻撃が存在しうる根源でもあるということだ。これはアーキテクチャ設計全体の必然的な副産物であり、ユーザーが一方的に変えられる変数ではない。ユーザーができることは主にスリッページ許容度を引き締め、MEV保護ルーティングを使用してターゲットにされる確率を下げることである。