Hôm nay mình sẽ giới thiệu một chủ đề khá thú vị: “Sandwich Attack”
Nếu như “Vampire Attack” là một khái niệm mới – được khá nhiều người biết đến kể từ khi Sushiswap thực hiện điều này để lấy được phần lớn thanh khoản từ Uniswap, sau đó được một vài DEX nhỏ thực hiện chiến thuật này để nhanh chóng có thanh khoản thay vì bắt đầu từ con số 0, thì “Sandwich Attack” – là một kiểu tấn công vô cùng phổ biến trong DeFi nhưng lại không mấy ai biết đến. Mình dám cá rằng, dù ít hay nhiều, bạn cũng đã từng trở thành nạn nhân của dạng tấn công này mà không biết.
Vậy Sandwich Attack là gì?
Trong các loại hình giao dịch truyền thống cũng tồn tại một hình thức cổ điển của “sandwich attack” được gọi là front-running. Những người giao dịch trước thường khai thác lợi thế do bất xứng thông tin về tin tức – trong đó, một thông tin có thể đến người này trước khi được nhiều người khác biết đến.
Trong show “Billions”, Robert ‘Bobby’ Axelrod đã kiếm được hơn 650 triệu USD sau khi chứng kiến chiếc máy bay đầu tiên đâm vào tháp đôi ngày 11/9, sau đó thực hiện short toàn bộ các mã cổ phiếu hàng không.
Trong không gian DeFi, những người giao dịch trước sẽ khai thác sự bất đối xứng thông tin ở khía cạnh tốc độ giao dịch. Ví dụ, trong một giao dịch, nếu nhận thấy nạn nhân thực hiện một lệnh bán token X để mua token Y, kể tấn công sẽ thực hiện một giao dịch trước đó (front-run) – thực hiện mua token Y sau đó bán lại đúng lượng token Y đó cho nạn nhân. Kế hoạch đơn giản là mua trước token Y và sau đó bán lại với giá cao hơn – Một “Sandwich Attack” kinh điển.
Phương thức tấn công có tên gọi là “Sandwich” bởi trên thực tế, giao dịch của nạn nhân sẽ bị kẹp giữa 2 giao dịch của kẻ tấn công.

Trình tự của 1 sandwick attack:
– Nạn nhân thực hiên 1 giao dịch hoán đổi token X sang token Y.
– Kẻ tấn công gửi đồng thời 2 giao dịch hoán đổi X sang token Y và từ token Y sang token X. Phí gas cho giao dịch hoán đổi X sang Y của kẻ tấn công sẽ được đẩy lên cao hơn phí gas của Nạn nhân, vì vậy mặc dù tính theo thời điểm, giao dịch của đổi X sang Y của kẻ tấn công dù phát sinh sau giao dịch của nạn nhân nhưng vẫn được xử lý trước khi xếp vào block.
– Sau khi các giao dịch được xử lý, nạn nhân hoàn thành giao dịch hoán đổi X sang Y nhưng rate cao hơn so với trước đó dự tính.
Phương thức tấn công này vẫn tồn tại do tính chất công khai và khó bị đảo ngược của blockchain. Tất cả các giao dịch được công khai ở mempool – tập hợp các giao dịch đang chờ xử lý, chưa xác nhận. Và đó là môi trường không thể hoàn hảo hơn cho các “arbitrage bot” – được coi là những kẻ săn mồi đỉnh cao hoạt động. Đây là một vấn đề chưa có lời giải, đã được Vitalik đề xuất từ năm 2018 khi Uniswap mới được đưa vào hoạt động.
Vượt ra ngoài các DEX, những arbitrage bot này tồn tại ở bất cứ đâu trong không gian DeFi.
LIEN protocol đã phải đối mặt với vấn đề này khi một thành viên cộng đồng phát hiện ra lỗ hổng bảo mật trên giao thức, bất cứ ai phát hiện ra cũng có thể khai thác nó – nhưng họ cũng không thể khai thác vì ngay lập tức các “front-run bot” sẽ thực hiện điều đó trước. Trên thực tế, samczsun không “sửa lỗi trong smart contract của LIEN protocol” nào cả, vấn đề anh ấy phải đối mặt là tìm giải pháp để lấy được số tài sản đang khóa trong hợp đồng mà không gây kích động đến những hacker khác và những “cỗ máy săn mồi” này.
Cuộc chiến giữa front-run bot và các white-hat hacker chống lại bot đã diễn ra từ rất lâu, và hiển nhiên là nó không dành cho những tay mơ. Tuy nhiên vì đây là series đào sâu về DeFi, chúng ta hãy thử đặt ra một số câu hỏi đơn giản để tư duy thêm 1 chút:
Trong trường hợp nào thì “sandwich attack” sẽ đem về lợi nhuận?
Giả sử một kẻ tấn công nhắm đến một giao dịch mà nạn nhân hoán đổi từ ETH sang UNI, kẻ tấn công thu được từ việc sử dụng ETH để mua trước một lượng UNI bằng đúng lượng UNI mà nạn nhân muốn hoán đổi, sau đó bán lại lượng UNI đó cho nạn nhân và thu lợi về ETH. Vậy lợi nhuận ở đây nằm ở sự chênh lệch về số lượng của token được sử dụng để bán.
Vì kẻ tấn cống có thể sử dụng flash loan để vay rất nhiều token nên chúng ta sẽ bỏ qua việc ràng buộc số tiền sẵn có của kẻ tấn công.
Một suy nghĩ đơn giản cho răng, nếu kẻ tấn công giao dịch với khối lượng càng lớn thì mang lại càng nhiều lợi nhuận, điều này chỉ đúng nếu Uniswap không có phí giao dịch.
Trên thực tế, ngay cả kẻ tấn công cũng sẽ phải trả 2 lần 0,3% phí giao dịch. Trong khi đó kẻ tấn công có mức lợi nhuận bị giới hạn phụ thuộc vào số tiền giao dịch của nạn nhân. Vì vậy sẽ có 1 mức chặn mà tại đó kẻ tấn công không có lợi nhuận.
Vì vậy, để tránh bị “sandwich attack”, hãy hạn chế mua với khối lượng lớn. Vì khối lượng mua càng lớn, và mức chấp nhận slippage của bạn càng cao, thì càng dễ kích hoạt các front-run bot.
Phí gas có ảnh hưởng gì không?
Dù có là bot đi chăng nữa thì cũng vẫn phải trả phí gas giao dịch trên mạng ethereum. Với tình trạng phí gas giao dịch càng ngày càng đắt đỏ, điều này khiến lợi nhuận biên của front run bị giảm đáng kể. Tuy nhiên thực tế front run bot lại có nhiều cơ hội hoạt động hơn và thu về tổng lợi nhuận lớn hơn, vì chi phí gas không phụ thuộc vào khối lượng giao dịch. Trong khi đó từ phía người dùng, họ sẵn sàng chấp nhận một mức slippage lớn thay vì thực hiện 2-4 tx cho cùng 1 giao dịch.
Tổng kết
Bài viết này giới thiệu một cách cơ bản nhất về Sandwich Attack – một vấn đề tưởng chừng như đơn giản của DeFi mà đến giờ vẫn chưa có một giải pháp tối ưu. Liệu tương lai có xuất hiện một DEX AMM mới khắc phục triệt để được vấn đề này? Chắc chắn đó sẽ là một đột phá mới trong không gian tiền điện tử.
Tài liệu tham khảo:
- High-Frequency Trading on Decentralized On-Chain Exchanges
- Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges
Bạn thấy bài viết thú vị, đừng quên chia sẻ cho bạn bè. Nếu bạn muốn trở thành 1 cư dân của thị trấn, tham gia miễn phí tại đây
Lưu ý: Không phải tất cả các sàn giao dịch tiền điện tử đều cung cấp đầy đủ các quyền hạn cho bạn và không phải tất cả đều an toàn. Mình không xác nhận cho một sàn giao dịch cụ thể nào. Bạn cần phải tự nghiên cứu kỹ lưỡng trước khi gửi tiền hoặc tiền điện tử đến bất kỳ sàn giao dịch, trang web hoặc ứng dụng nào.
Tuyên bố từ chối trách nhiệm: Không có thông tin nào ở trên là lời khuyên đầu tư,mời gọi hay khuyến khích sử dụng các sàn giao dịch cụ thể hoặc thông tin thực tế theo bất kỳ cách nào và không nên được hiểu như vậy. Bạn đọc nên tự nghiên cứu. Nếu có bất kỳ lỗi nào xảy ra, mình sẽ cố gắng hỗ trợ trong mức cho phép. Mục đích của mình chỉ là cung cấp thông tin và truyền bá kiến thức về chủ đề này