Tấn công sandwich là một hình thức khai thác trên các giao thức giao dịch tự động (AMM), trong đó kẻ tấn công chèn hai giao dịch của mình vào trước và sau giao dịch của người dùng để thao túng giá và thu lợi nhuận từ chênh lệch giá.
Tấn công sandwich tận dụng tính minh bạch của Blockchain và cơ chế xác thực giao dịch, gây thiệt hại cho người dùng DeFi bằng cách làm tăng phí, giảm giá trị tài sản nhận được. Biện pháp phòng tránh bao gồm sử dụng các công cụ bảo vệ, giảm slippage và chia nhỏ giao dịch.
- Tấn công sandwich là kỹ thuật thao túng giá phổ biến trên các AMM như Uniswap, Sushiswap.
- Hậu quả của tấn công sandwich là làm tăng phí, giảm giá trị tài sản cho người dùng và gây mất công bằng trên thị trường DeFi.
- Có thể phòng tránh bằng các giải pháp như Flashbots, Chainlink FSS, giảm slippage và chia nhỏ giao dịch.
Tấn công sandwich là gì?
Tấn công sandwich là một dạng tấn công chạy trước (front-running) trên các giao thức AMM, nơi kẻ tấn công chèn hai giao dịch của mình vào trước và sau giao dịch của người dùng để thao túng giá tài sản, thu lợi nhuận từ chênh lệch giá.
Thuật ngữ “sandwich” xuất phát từ việc giao dịch của người dùng bị kẹp giữa hai giao dịch của kẻ tấn công, giống như phần nhân của một chiếc sandwich. Cơ chế này tận dụng tính minh bạch và công khai của Blockchain, đặc biệt là trên các sàn giao dịch phi tập trung như Uniswap, Sushiswap, nơi mọi giao dịch đều được công khai trên mempool trước khi xác nhận.
Vì sao tấn công sandwich lại phổ biến trên các AMM?
Các AMM như Uniswap, Sushiswap xác định giá dựa trên tỷ lệ cung cầu trong pool thanh khoản. Điều này tạo cơ hội cho kẻ tấn công dễ dàng thao túng giá bằng cách thực hiện các giao dịch lớn, gây biến động mạnh và hưởng lợi từ sự chênh lệch giá.
Tấn công sandwich tận dụng chính sự minh bạch và tự động của các giao thức AMM, khiến người dùng khó nhận biết và phòng tránh nếu không có kiến thức chuyên sâu.
Vitalik Buterin, Nhà sáng lập Ethereum, 2018, Ethereum Blog
Với cơ chế xác định giá tự động, chỉ cần một giao dịch lớn cũng đủ để đẩy giá token lên hoặc xuống đáng kể. Kẻ tấn công thường sử dụng bot để quét mempool, phát hiện các giao dịch lớn và triển khai tấn công sandwich nhằm tối đa hóa lợi nhuận.
Tác động của tấn công sandwich đối với người dùng DeFi
Dù không phổ biến như các hình thức exploit hay exit scam, tấn công sandwich vẫn gây ra thiệt hại đáng kể cho người dùng DeFi, đặc biệt là trên các AMM lớn.
Theo báo cáo của EigenPhi, chỉ riêng tháng 7/2023, đã có 140.598 giao dịch bị tấn công sandwich trên Ethereum, với hơn 73.000 người dùng trở thành nạn nhân và tổng thiệt hại lên tới hơn 2 triệu USD (Nguồn: EigenPhi, 2023).
Tấn công sandwich không chỉ làm tăng chi phí giao dịch mà còn làm giảm giá trị tài sản nhận được của người dùng, ảnh hưởng trực tiếp đến trải nghiệm và niềm tin vào DeFi.
Báo cáo EigenPhi, tháng 7/2023
Uniswap là một trong những giao thức bị ảnh hưởng nặng nề nhất bởi tấn công sandwich. Khi giá token trong pool bị đẩy lên do tấn công, người dùng phải trả nhiều hơn cho mỗi giao dịch và nhận được ít token hơn dự kiến.
Cách hoạt động của tấn công sandwich trên Blockchain
Kẻ tấn công sử dụng bot để theo dõi mempool, phát hiện các giao dịch swap lớn và thực hiện hai giao dịch: mua trước (front-run) để đẩy giá lên, sau đó bán ra (back-run) sau khi giao dịch của người dùng hoàn tất để hưởng chênh lệch giá.
Quy trình này gồm các bước:
- Người dùng gửi giao dịch swap lên AMM, giao dịch này xuất hiện trong mempool.
- Kẻ tấn công quét mempool, phát hiện giao dịch có giá trị lớn.
- Kẻ tấn công đặt một giao dịch mua với phí gas cao hơn để được xác nhận trước, đẩy giá token lên.
- Giao dịch của người dùng được xác nhận với giá đã bị đẩy lên, nhận ít token hơn.
- Kẻ tấn công lập tức bán ra ở mức giá cao, thu lợi nhuận từ chênh lệch giá.
MEV (Maximal Extractable Value) là động lực chính thúc đẩy các hình thức tấn công như sandwich, khi thợ đào và bot tìm cách tối đa hóa lợi nhuận từ việc sắp xếp thứ tự giao dịch.
Flashbots, Báo cáo MEV, 2023
MEV là giá trị tối đa mà thợ đào hoặc validator có thể khai thác bằng cách sắp xếp lại, chèn hoặc loại bỏ các giao dịch trong block. Điều này làm tăng phí giao dịch, độ trượt giá và tạo ra các tình huống không công bằng cho người dùng.
Mempool là gì và vai trò trong tấn công sandwich?
Mempool (memory pool) là nơi lưu trữ tạm thời các giao dịch đang chờ xác nhận trên Blockchain. Tất cả các giao dịch swap, chuyển token đều xuất hiện ở đây trước khi được thợ đào xác nhận.
Kẻ tấn công sandwich sử dụng bot để quét mempool, phát hiện các giao dịch lớn và triển khai tấn công bằng cách đặt giao dịch với phí gas cao hơn để được ưu tiên xác nhận trước.
Quy trình chi tiết của một cuộc tấn công sandwich
Một cuộc tấn công sandwich thường diễn ra theo các bước sau:
- Người dùng thực hiện giao dịch trên AMM: Giao dịch xuất hiện trong mempool, chờ xác nhận.
- Kẻ tấn công tìm giao dịch mục tiêu: Sử dụng bot quét mempool, chọn các giao dịch có giá trị lớn.
- Kẻ tấn công thực hiện front-run: Đặt giao dịch mua với phí gas cao hơn, đẩy giá token lên trước giao dịch của người dùng.
- Giao dịch của người dùng bị ảnh hưởng: Được xác nhận với giá đã bị đẩy lên, nhận ít token hơn.
- Kẻ tấn công thực hiện back-run: Lập tức bán ra ở mức giá cao, thu lợi nhuận từ chênh lệch giá.
Quy trình này có thể được tự động hóa hoàn toàn bằng bot, giúp kẻ tấn công thực hiện hàng trăm, thậm chí hàng nghìn cuộc tấn công mỗi ngày.
Các hình thức tấn công sandwich phổ biến
Có hai hình thức tấn công sandwich chính:
- Tấn công front-run và back-run: Kẻ tấn công chèn hai giao dịch của mình vào trước và sau giao dịch của người dùng để thao túng giá.
- Rút thanh khoản để kiếm lợi nhuận: Kẻ tấn công rút thanh khoản khỏi pool trước khi giao dịch của người dùng được xác nhận, làm tăng độ trượt giá, sau đó bổ sung lại thanh khoản và bán ra để hưởng lợi.
Tấn công front-run và back-run diễn ra như thế nào?
Kẻ tấn công phát hiện giao dịch swap lớn trong mempool, đặt giao dịch mua với phí gas cao để được xác nhận trước, đẩy giá token lên. Sau khi giao dịch của người dùng hoàn tất, kẻ tấn công bán ra ở mức giá cao, thu lợi nhuận từ chênh lệch giá.
Hình thức này cực kỳ khó phát hiện nếu không kiểm tra kỹ các thông số giao dịch như slippage, tỷ giá hoán đổi và phí gas.
Rút thanh khoản để thao túng giá có nguy hiểm không?
Kẻ tấn công rút thanh khoản khỏi pool trước khi giao dịch của người dùng được xác nhận, khiến độ trượt giá tăng mạnh. Người dùng nhận được ít token hơn dự tính. Sau đó, kẻ tấn công bổ sung lại thanh khoản và bán ra để hưởng lợi từ sự biến động giá.
Đây là hình thức tấn công tinh vi, thường nhắm vào các pool có thanh khoản thấp hoặc các giao dịch swap lớn.
Làm sao để phát hiện tấn công sandwich?
Tấn công sandwich rất khó nhận biết vì thường bị nhầm lẫn với tình trạng tắc nghẽn mạng hoặc phí gas cao. Tuy nhiên, người dùng có thể kiểm tra các thông số như mức trượt giá (slippage), tỷ giá hoán đổi và lịch sử giao dịch để phát hiện dấu hiệu bất thường.
Người dùng cần chủ động kiểm tra kỹ thông số giao dịch, đặc biệt là slippage và phí gas, để giảm nguy cơ trở thành nạn nhân của tấn công sandwich.
Chainalysis, Báo cáo An ninh Blockchain, 2023
Nếu nhận thấy giao dịch bị trượt giá lớn hơn dự kiến hoặc phí gas tăng đột biến, có thể đó là dấu hiệu của một cuộc tấn công sandwich.
Những giải pháp công nghệ phòng tránh tấn công sandwich
Nhiều dự án và tổ chức đã phát triển các công cụ, giao thức giúp người dùng phòng tránh tấn công sandwich và các hình thức khai thác MEV khác.
- Flashbots Protect: Cung cấp giải pháp gửi giao dịch trực tiếp đến thợ đào, tránh bị lộ thông tin trên mempool, giảm nguy cơ bị front-run và sandwich.
- Chainlink FSS: Sử dụng oracle để xác định thứ tự giao dịch on-chain theo nguyên tắc đến trước xử lý trước (FCFS), giảm khả năng bị thao túng thứ tự giao dịch.
- MEVBlocker: Hợp tác giữa Balancer, ShapeShift, ParaSwap, giúp bảo vệ người dùng khỏi MEV, đặc biệt là front-run, tuy nhiên chưa thể ngăn chặn hoàn toàn back-run.
- Alchemist mistX.io: AMM hoạt động trên mạng Flashbot, cho phép gửi giao dịch theo dạng bundle, tăng tính riêng tư và bảo vệ khỏi sandwich.
- EIP-1559: Bản cập nhật Ethereum giúp ổn định phí gas, giảm độ trễ xác nhận giao dịch, hạn chế cơ hội cho các bot sandwich.
Các giải pháp này ngày càng được áp dụng rộng rãi, góp phần nâng cao an toàn cho người dùng DeFi.
Cách tự bảo vệ trước tấn công sandwich
Người dùng có thể chủ động phòng tránh tấn công sandwich bằng các biện pháp sau:
- Giảm mức trượt giá (slippage): Đặt slippage thấp (khoảng 2% hoặc thấp hơn) để hạn chế khả năng bot thao túng giá. Tuy nhiên, slippage quá thấp có thể khiến giao dịch thất bại hoặc mất nhiều thời gian xác nhận.
- Chia nhỏ giao dịch: Thay vì thực hiện một giao dịch lớn, hãy chia nhỏ thành nhiều giao dịch nhỏ để giảm sự chú ý của bot sandwich.
- Sử dụng các công cụ bảo vệ như Flashbots Protect, MEVBlocker: Gửi giao dịch qua các nền tảng này để tránh bị lộ thông tin trên mempool.
- Kiểm tra kỹ thông số giao dịch: Luôn kiểm tra slippage, tỷ giá hoán đổi, phí gas trước khi xác nhận giao dịch.
So sánh các giải pháp phòng tránh tấn công sandwich
Giải pháp | Cách hoạt động | Hiệu quả | Hạn chế |
---|---|---|---|
Flashbots Protect | Gửi giao dịch trực tiếp đến thợ đào, tránh mempool | Giảm đáng kể nguy cơ front-run, sandwich | Chưa phổ biến trên tất cả các AMM |
Chainlink FSS | Xác định thứ tự giao dịch on-chain theo FCFS | Giảm khả năng thao túng thứ tự giao dịch | Phụ thuộc vào tích hợp của AMM |
MEVBlocker | Bảo vệ khỏi MEV qua hợp tác nhiều dự án | Hiệu quả với front-run, sandwich | Chưa ngăn được back-run hoàn toàn |
Giảm slippage | Đặt mức trượt giá thấp khi giao dịch | Giảm khả năng bị bot tấn công | Có thể khiến giao dịch thất bại |
Chia nhỏ giao dịch | Thực hiện nhiều giao dịch nhỏ thay vì một giao dịch lớn | Hạn chế sự chú ý của bot sandwich | Tốn nhiều phí giao dịch hơn |
Những lưu ý khi tham gia DeFi để tránh tấn công sandwich
Để giảm thiểu rủi ro, người dùng nên:
- Luôn cập nhật kiến thức về các hình thức tấn công mới trên DeFi.
- Sử dụng các AMM, DApp có tích hợp giải pháp chống MEV.
- Kiểm tra kỹ thông số giao dịch, đặc biệt là slippage và phí gas.
- Ưu tiên sử dụng các công cụ bảo vệ như Flashbots, MEVBlocker.
- Chia nhỏ giao dịch khi swap số lượng lớn token.
Việc chủ động phòng tránh sẽ giúp bảo vệ tài sản và nâng cao trải nghiệm khi tham gia thị trường DeFi.
Dự báo xu hướng phòng tránh tấn công sandwich trong tương lai
Với sự phát triển của DeFi, các hình thức tấn công như sandwich sẽ ngày càng tinh vi hơn. Tuy nhiên, các giải pháp công nghệ phòng tránh cũng đang được nâng cấp liên tục, như tích hợp AI vào phát hiện bot, nâng cấp giao thức xác thực giao dịch, phát triển các AMM thế hệ mới với cơ chế chống MEV mạnh mẽ hơn.
Các tổ chức như Flashbots, Chainlink, Balancer, ShapeShift, ParaSwap đang dẫn đầu trong việc nghiên cứu và triển khai các giải pháp bảo vệ người dùng trước tấn công sandwich và các rủi ro MEV khác.
Tương lai của DeFi phụ thuộc vào khả năng xây dựng các giao thức minh bạch, công bằng và an toàn, hạn chế tối đa các hình thức khai thác như tấn công sandwich.
Chainlink Labs, Báo cáo DeFi Security, 2023
Người dùng cần chủ động cập nhật kiến thức, sử dụng các công cụ bảo vệ và lựa chọn các nền tảng uy tín để giảm thiểu rủi ro khi tham gia thị trường tài chính phi tập trung.
Những câu hỏi thường gặp
Tấn công sandwich là gì?
Tấn công sandwich là kỹ thuật thao túng giá trên AMM, kẻ tấn công chèn hai giao dịch của mình vào trước và sau giao dịch của người dùng để hưởng lợi từ chênh lệch giá.
Làm sao để nhận biết mình bị tấn công sandwich?
Nếu giao dịch bị trượt giá lớn bất thường hoặc phí gas tăng đột biến, rất có thể bạn đã bị tấn công sandwich. Kiểm tra kỹ lịch sử giao dịch để phát hiện dấu hiệu bất thường.
Giảm slippage có giúp phòng tránh tấn công sandwich không?
Có, giảm slippage giúp hạn chế khả năng bot thao túng giá, nhưng nếu đặt quá thấp có thể khiến giao dịch thất bại.
Những công cụ nào giúp bảo vệ khỏi tấn công sandwich?
Các công cụ như Flashbots Protect, MEVBlocker, Chainlink FSS giúp bảo vệ người dùng khỏi tấn công sandwich và front-run.
Chia nhỏ giao dịch có hiệu quả không?
Có, chia nhỏ giao dịch giúp giảm sự chú ý của bot sandwich, hạn chế khả năng bị tấn công khi swap số lượng lớn token.
Uniswap có bị tấn công sandwich không?
Có, Uniswap là một trong những AMM bị tấn công sandwich nhiều nhất do khối lượng giao dịch lớn và cơ chế xác định giá tự động.
MEV là gì và liên quan thế nào đến tấn công sandwich?
MEV là giá trị tối đa mà thợ đào hoặc validator có thể khai thác từ việc sắp xếp lại giao dịch, là động lực chính thúc đẩy các hình thức tấn công như sandwich.