TÓM TẮT
Sandwich Attack kẹp giao dịch nạn nhân giữa front-run và back-run — khai thác slippage tolerance trên AMM DEX. Trích xuất hàng chục triệu USD/tháng. Phòng chống bằng private mempool RPC, slippage thấp, và CoW Protocol.
ISandwich Attack là gì?
Sandwich Attack là loại MEV attack phổ biến nhất trên DEX — kẻ tấn công "kẹp" giao dịch của nạn nhân giữa hai giao dịch của mình: một front-run trước và một back-run sau. Kết quả: nạn nhân nhận được giá tệ hơn, kẻ tấn công kiếm được chênh lệch.
Tên gọi "sandwich" rất trực quan: giao dịch nạn nhân là nhân, hai giao dịch của attacker là hai lớp bánh mì bao quanh.
IICơ chế chi tiết
Step 1: Phát hiện target
Searcher (bot MEV) monitor public mempool, tìm transaction swap lớn với slippage tolerance cao (ví dụ: swap 100 ETH → USDC, chấp nhận 2% slippage).
Step 2: Front-run
Searcher gửi transaction swap cùng chiều với nạn nhân nhưng với gas price cao hơn — để transaction của mình được mine trước. Ví dụ: mua USDC bằng ETH trước khi nạn nhân swap. Giá USDC tăng lên vì mua trước.
Step 3: Nạn nhân bị execute tại giá xấu
Transaction của nạn nhân được execute. Do searcher đã đẩy giá lên, nạn nhân nhận ít USDC hơn — nhưng vẫn trong slippage tolerance nên transaction không revert.
Step 4: Back-run
Searcher ngay lập tức bán USDC vừa mua ở bước 2 — thu lợi từ chênh lệch giá. Profit = (giá nạn nhân executed - giá mua ban đầu) × số lượng.
IIIVí dụ số học
Alice muốn swap 10 ETH → USDC trên Uniswap, ETH giá $3,000, slippage tolerance 1%:
- Trước attack: Pool ratio 1 ETH = $3,000 USDC. Alice kỳ vọng nhận ~$29,700 USDC (sau slippage).
- Front-run: Bob mua 5 ETH worth USDC trước Alice → đẩy giá ETH lên $3,060.
- Alice swap: Alice nhận $29,400 USDC — vẫn trong 1% slippage threshold ($30,000 × 99% = $29,700... hmm quá ngưỡng → thực tế attacker tính toán sát ngưỡng slippage).
- Back-run: Bob bán USDC vừa mua, nhận ETH ở giá $3,060 → profit ~$300 trừ gas.
Alice bị thiệt, Bob kiếm được — không ai vi phạm luật protocol, chỉ khai thác MEV.
IVTại sao Sandwich Attack tồn tại?
Public Mempool
Ethereum mempool là public — bất kỳ ai cũng thấy pending transaction trước khi chúng được mine. Searcher bot scan mempool liên tục, phân tích profit của mỗi sandwich opportunity.
AMM Price Impact
DEX AMM (Uniswap, Curve) có price impact — giao dịch lớn làm thay đổi giá. Sandwich attack khai thác price impact này. Order book DEX ít bị tấn công hơn vì giá cố định theo limit order.
Slippage Tolerance
User đặt slippage tolerance cao để giao dịch không bị revert. Slippage tolerance cao = "room to exploit" cho attacker. User đặt 0.1% slippage rất khó bị sandwich, nhưng transaction dễ revert hơn.
Sandwich attack là hệ quả tự nhiên của transparent mempool + AMM pricing + user UX. Xem thêm về MEV tại MEV là gì.
VPhòng chống Sandwich Attack
Private mempool (MEV-Protect RPC)
Transaction được gửi trực tiếp đến builder, không qua public mempool. Bot sandwich không thể thấy transaction để front-run. MEV Blocker, Flashbots Protect, CoW Protocol cung cấp private RPC endpoint. Đây là giải pháp hiệu quả nhất hiện tại.
Slippage thấp
Đặt slippage 0.1% thay vì 0.5–1%. Sandwich attacker không có room để execute — transaction sẽ revert nếu bị sandwich. Nhược điểm: transaction dễ fail hơn khi thị trường volatile.
CoW Protocol (Coincidence of Wants)
Batch settlement: nhiều orders được matched với nhau trước khi settle trên AMM. Nếu buyer và seller match trực tiếp, không cần AMM, không có MEV. CoW Protocol là DEX thiết kế từ đầu để eliminate sandwich attack.
Commit-Reveal Schemes
User commit hash của order trước, reveal sau khi block confirmed. Searcher không biết order content trước khi quá muộn để sandwich. Phức tạp về UX, ít được dùng trong practice.
VISandwich Attack trên các chain khác
Sandwich attack không chỉ xảy ra trên Ethereum mainnet:
- BSC: Mempool public, block time 3 giây — môi trường lý tưởng cho sandwich bot. Rất phổ biến trên PancakeSwap.
- Solana: Không có mempool public theo nghĩa truyền thống — nhưng có jito bundles cho MEV. Sandwich ít hơn Ethereum nhưng vẫn tồn tại.
- L2 (Arbitrum, Optimism): Centralized sequencer thường không cho phép reordering → sandwich khó hơn. Nhưng khi sequencer decentralize, MEV sẽ tăng lên.
VIISandwich Attack và PBS
Proposer-Builder Separation (PBS) tách validator (propose) và builder (assemble block). Builder có thể include sandwich bundle mà validator không biết chi tiết. Điều này làm sandwich attack dễ hơn về mặt kỹ thuật.
Mặt khác, MEV-aware DEX và private mempool RPC (Flashbots Protect, MEV Blocker) phát triển như countermeasure. Đây là "arms race" giữa MEV searcher và user protection tools. Xem PBS là gì và Flashbots là gì.
VIIITác động và Ý nghĩa
Sandwich attack không phải "hack" hay khai thác lỗ hổng code — nó là rational behavior trong hệ thống có incentive như vậy. Không có luật nào bị vi phạm theo protocol.
Tuy nhiên, tác động thực tế là tiêu cực: user bị thiệt, trust vào DeFi giảm, barrier to entry tăng (beginner không biết bảo vệ mình). Đây là lý do MEV mitigation là priority của nhiều team DeFi và infrastructure.
Nhìn rộng hơn, sandwich attack là ví dụ điển hình của "emergent behavior" trong permissionless system — bất kỳ khe hở kinh tế nào cũng sẽ được khai thác. Xem MEV là gì để hiểu toàn cảnh.
❓Câu Hỏi Thường Gặp
Sandwich Attack kẹp giao dịch nạn nhân giữa front-run (mua trước) và back-run (bán sau) của attacker. Attacker đẩy giá lên trước khi nạn nhân swap, rồi bán lại sau — hưởng chênh lệch. Nạn nhân nhận giá tệ hơn.
Dùng private mempool RPC (MEV Blocker, Flashbots Protect) để ẩn transaction. Đặt slippage thấp (0.1%). Dùng CoW Protocol hoặc DEX aggregator có MEV protection. Giao dịch nhỏ ít bị nhắm đến hơn giao dịch lớn.
Hợp pháp về mặt protocol — không vi phạm bất kỳ rule nào của Ethereum hay smart contract. Nhưng đây là khai thác thông tin bất cân xứng (mempool visibility) gây thiệt hại cho user. Đây là vùng xám về ethics.
Slippage tolerance cao (1-5%) = room lớn cho sandwich. Slippage 0.1% = attacker không có room — transaction sẽ revert nếu bị sandwich. Đánh đổi: slippage thấp → transaction dễ fail khi giá biến động nhanh.
📚Tài liệu tham khảo
- Daian, P. et al. (2019). Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arxiv.org/abs/1904.05234
- Ethereum Foundation. Maximal Extractable Value. ethereum.org/en/developers/docs/mev/
- MEV Blocker. How MEV Blocker works. mevblocker.io
- CoW Protocol. MEV Protection. docs.cow.fi