OKB.VN
MEV · Economics

Frontrunning là gì?

Bot khai thác mempool — chạy trước nạn nhân để extract lợi nhuận

⏱ 10 phút đọc🎯 Intermediate📅 2025

TÓM TẮT

Frontrunning là hành vi bot giám sát mempool, phát hiện transaction lợi nhuận của người dùng, rồi gửi transaction tương tự với gas cao hơn để được xử lý trước. Thiệt hại ước tính hàng trăm triệu USD/năm. Phòng chống hiệu quả nhất: dùng private mempool (Flashbots Protect, MEV Blocker) hoặc DEX có MEV protection tích hợp.

IFrontrunning là gì?

Frontrunning (chạy trước) là hành vi một bên thứ ba — thường là bot tự động — theo dõi mempool (pool các transaction chờ xử lý), phát hiện transaction có lợi nhuận của người dùng khác, rồi gửi transaction tương tự với gas price cao hơn để được miner/validator xử lý trước.

Kết quả: bot kiếm lợi nhuận từ thông tin trong pending transaction của nạn nhân, trong khi nạn nhân nhận được kết quả tệ hơn — giá trượt, transaction revert, hoặc mất cơ hội hoàn toàn.

Nguồn gốc: Frontrunning tồn tại trong thị trường tài chính truyền thống từ thập niên 1980, khi broker đặt lệnh cho bản thân trước khi thực hiện lệnh khách hàng. Blockchain với public mempool khiến vấn đề này phổ biến và tự động hóa hơn nhiều.

Frontrunning là một dạng MEV (Maximal Extractable Value) — phần giá trị mà miner/validator và searcher có thể extract từ việc kiểm soát thứ tự transaction trong block.

IICơ chế hoạt động

Bước 1: Giám sát mempool

Bot kết nối đến nhiều Ethereum node, lắng nghe toàn bộ transaction được broadcast vào mempool. Hàng nghìn transaction mới xuất hiện mỗi giây — bot phân tích real-time để phát hiện cơ hội trong millisecond.

Bước 2: Phát hiện và mô phỏng

Bot decode calldata của pending transaction, mô phỏng (simulate) kết quả nếu transaction đó được thực thi. Nếu phát hiện cơ hội lợi nhuận — ví dụ một DEX swap lớn sẽ dịch chuyển giá — bot tính toán strategy tối ưu để extract giá trị đó.

Bước 3: Gas price bidding

Bot gửi transaction của mình với gas price cao hơn transaction nạn nhân — đủ cao để miner/validator ưu tiên include vào block trước. Cuộc đua này gọi là "Priority Gas Auction (PGA)" — bot cạnh tranh nhau đẩy gas lên cao nhất.

Bước 4: Thu lợi nhuận

Transaction của bot được xử lý trước, extract giá trị. Transaction của nạn nhân được xử lý sau — ở mức giá bất lợi hơn hoặc bị revert hoàn toàn nếu điều kiện đã thay đổi.

Tốc độ là tất cả: Toàn bộ quy trình xảy ra trong vài millisecond. Bot cạnh tranh về latency — ai kết nối gần node nhất, ai có thuật toán detect nhanh nhất sẽ thắng.

IIICác dạng Frontrunning phổ biến

1. Plain Frontrunning (Displacement)

Bot copy y nguyên transaction của nạn nhân nhưng gửi với gas cao hơn. Ví dụ: nạn nhân phát hiện arbitrage giữa Uniswap và SushiSwap, gửi transaction để capture lợi nhuận — bot thấy, copy, gửi trước và lấy hết profit. Nạn nhân bị revert, tốn gas không nhận được gì.

2. Insertion Frontrunning

Bot chèn transaction vào trước nạn nhân để thay đổi điều kiện có lợi. Phổ biến khi người dùng mua token lớn trên DEX — bot mua trước ở giá thấp hơn, sau khi nạn nhân mua (đẩy giá lên), bot bán lại. Đây là nền tảng của sandwich attack.

3. Suppression

Bot gửi nhiều transaction spam để lấp đầy block, ngăn transaction của nạn nhân được include. Nạn nhân bị delay — bot tranh thủ thực hiện action trong khoảng thời gian đó. Kỹ thuật này tốn kém hơn và ít phổ biến hơn hai dạng trên.

4. Liquidation Frontrunning

Trên lending protocol như Aave hay Compound, khi vị thế eligible for liquidation, nhiều bot race để là người liquidate đầu tiên (nhận liquidation bonus 5–10%). Bot theo dõi giá oracle real-time và gửi transaction ngay microsecond sau khi điều kiện thỏa mãn.

DạngCơ chếMục tiêu phổ biến
Plain / DisplacementCopy transaction, gas cao hơnArbitrage, NFT mint
InsertionChèn trước để dịch giáDEX large swap
SuppressionSpam block để delayTime-sensitive action
Liquidation raceRace to liquidate firstDeFi lending protocol

IVVí dụ thực tế

NFT Mint Frontrunning

Khi một NFT collection hot ra mắt mint public, bot phát hiện transaction mint của người dùng trong mempool. Bot gửi transaction mint với gas cao hơn → được xử lý trước → mint được NFT. Người dùng bị revert. Hiện tượng này phổ biến đến mức hầu hết project lớn chuyển sang allowlist-only hoặc commit-reveal mint để phòng chống.

DEX Arbitrage Displacement

Trader phát hiện ETH/USDC chênh lệch $10 giữa Uniswap và SushiSwap. Trader gửi transaction flash loan + arbitrage. Bot thấy, copy toàn bộ calldata, gửi với gas +5 Gwei. Bot thực hiện arbitrage trước, thu hết profit. Transaction của trader bị revert vì giá đã cân bằng — tốn gas không nhận được gì.

Liquidation Bot War

Giá ETH drop mạnh, hàng loạt vị thế trên Aave đủ điều kiện bị liquidate. Hàng trăm bot cùng gửi transaction liquidation trong cùng block — chỉ 1 bot thắng, nhận bonus. Những bot thua bị revert, tốn gas. Gas war giữa các liquidation bot đôi khi đẩy gas lên hàng nghìn Gwei.

VQuy mô thiệt hại

Theo dữ liệu Flashbots và EigenPhi, tổng MEV extracted trên Ethereum từ 2020–2024 vượt $1.38 tỷ USD, trong đó frontrunning và sandwich attack chiếm phần lớn. Riêng năm 2021 — đỉnh DeFi summer và NFT boom — MEV extraction đạt kỷ lục, với gas war giữa bot đẩy phí lên hàng nghìn Gwei cho toàn mạng.

Thiệt hại hệ thống: Frontrunning không chỉ gây thiệt hại trực tiếp cho nạn nhân. Gas war giữa bot làm tăng phí giao dịch cho toàn mạng, gây congestion và trải nghiệm người dùng xấu đi — kể cả những người không liên quan đến MEV.

Trên Solana, dù mempool không public, frontrunning tồn tại dưới dạng spam transaction — bot gửi hàng nghìn transaction fee cao để thắng race condition. Giai đoạn 2022–2023, Solana bị outage nhiều lần một phần do spam transaction từ MEV bot.

VIFrontrunning vs Sandwich Attack

Tiêu chíFrontrunningSandwich Attack
Số transaction bot1 (chỉ chạy trước)2 (chạy trước + chạy sau)
Cơ chế profitLấy cơ hội của nạn nhânExtract slippage từ price impact
Nạn nhân chịuMất cơ hội / revertGiá xấu hơn dự kiến
Phổ biến ởArbitrage, NFT mintDEX swap lớn

Sandwich attack = frontrunning + backrunning kết hợp. Frontrunning là thành phần đầu của sandwich — bot mua trước để đẩy giá lên, rồi bán sau khi nạn nhân mua. Xem chi tiết tại bài Sandwich Attack là gì.

VIICách phòng chống Frontrunning

1. Private Mempool / RPC đặc biệt

Flashbots ProtectMEV Blocker cho phép gửi transaction trực tiếp đến builder, không qua public mempool — bot không thể thấy transaction trước khi include. Đây là biện pháp hiệu quả nhất và đơn giản nhất cho người dùng thông thường.

2. Commit-Reveal Scheme

Thay vì gửi hành động đầy đủ ngay, người dùng gửi hash của hành động (commit) trước, reveal sau. Bot không biết hành động thực là gì cho đến khi quá muộn. Thường dùng trong on-chain auction và NFT mint fair launch.

3. Slippage Tolerance thấp

Khi swap DEX, đặt slippage tolerance thấp (0.1–0.5%). Nếu bot frontrun làm giá trượt vượt ngưỡng, transaction của bạn revert — bảo vệ bạn khỏi nhận giá quá xấu, dù phải tốn gas.

4. DEX có MEV Protection tích hợp

CoW Protocol gom lệnh theo batch và match nội bộ trước khi đưa ra AMM — giảm MEV exposure đáng kể. 1inch FusionParaswap cũng có cơ chế tương tự.

Khuyến nghị thực tế: Với người dùng thông thường, thêm MEV Blocker RPC vào MetaMask (miễn phí tại mevblocker.io) là đủ. Không cần thay đổi workflow, transaction tự động được bảo vệ.

VIIITương lai: MEV có biến mất không?

MEV và frontrunning là hệ quả tất yếu của public mempool và khả năng sắp xếp transaction. Ngay cả với PBS và encrypted mempool, MEV không biến mất — nó chỉ được phân phối lại.

Encrypted mempool (dự án SUAVE của Flashbots) là hướng nghiên cứu quan trọng: transaction mã hóa khi broadcast, chỉ decrypt khi include vào block — bot không thể frontrun. Nhưng có trade-off về latency và độ phức tạp protocol.

Fair ordering protocol như Chainlink FSS đề xuất sắp xếp theo thứ tự nhận được thay vì gas price — nhưng "thứ tự nhận được" trong hệ thống phân tán là khái niệm không rõ ràng và dễ bị thao túng theo cách khác.

Thực tế gần hạn: frontrunning tiếp tục tồn tại. Giải pháp tốt nhất là private mempool và MEV-aware DEX design. Xem thêm ecosystem MEV tại Flashbots là gìMEV-Boost là gì.

Câu Hỏi Thường Gặp

Frontrunning là hành vi bot theo dõi mempool, phát hiện transaction lợi nhuận của người dùng, sau đó gửi transaction tương tự với gas cao hơn để được xử lý trước. Bot kiếm lợi nhuận trong khi nạn nhân nhận kết quả xấu hơn hoặc bị revert.

Frontrunning chỉ chạy trước nạn nhân (1 transaction). Sandwich attack kết hợp frontrun + backrun — bot vừa chạy trước vừa chạy sau để extract slippage từ nạn nhân. Sandwich attack phức tạp hơn nhưng lợi nhuận cao hơn với DEX trade lớn.

Dùng private mempool như Flashbots Protect hoặc MEV Blocker RPC (miễn phí). Đặt slippage tolerance thấp (0.1–0.5%). Dùng DEX có MEV protection như CoW Protocol. Với on-chain auction, dùng commit-reveal scheme.

Trong tài chính truyền thống, frontrunning bởi broker là bất hợp pháp. Trong blockchain, không có luật cấm rõ ràng — nó là hành vi tận dụng đặc tính kỹ thuật của public mempool. Community coi đây là hành vi phi đạo đức và nhiều dự án chủ động xây cơ chế chống frontrunning.

📚Tài liệu tham khảo

  1. Daian, P. et al. (2020). Flash Boys 2.0: Frontrunning in Decentralized Exchanges. IEEE S&P 2020.
  2. Flashbots. MEV Explore — MEV data dashboard. explore.flashbots.net
  3. EigenPhi. MEV Analytics. eigenphi.io
  4. MEV Blocker. Open-source MEV protection RPC. mevblocker.io
  5. CoW Protocol. How CoW Protocol protects users from MEV. docs.cow.fi
📚 Khám phá thêm theo chủ đề
113 bài phân tích kỹ thuật — Blockchain Infrastructure từ nền tảng đến nâng cao
📋 Xem tất cả bài viết →