Nội dung
Sandwich Attack là gì? Cách để bảo vệ bản thân bạn khỏi cuộc tấn công này
Thị trường DeFi bị ảnh hưởng bởi những cuộc tấn công lợi dụng đặc tính hợp đồng thông minh được tích hợp sẵn của DeFi. Sandwich attack là một loại hình như vậy.
Các cuộc tấn công bằng Sandwich nghe có vẻ ngon nhưng chúng có thể để lại mùi vị khó chịu nếu bạn trở thành nạn nhân. Sandwich Attack liên quan đến việc “kẹp” các giao dịch của người dùng vào giữa hai giao dịch. Hai giao dịch này diễn ra trước và sau giao dịch của người dùng (do đó có tên là sandwich), gây ra tổn thất cho người dùng và mang lại lợi nhuận cho kẻ tấn công. Các cuộc tấn công bằng hình thức Sandwich Attack thường diễn ra trên các sàn giao dịch phi tập trung (DEX) và dẫn đến thao túng giá.
Trong một cuộc tấn công, kẻ xấu sẽ tìm kiếm một giao dịch đang chờ xử lý của một người dùng khác trên mạng blockchain mà họ lựa chọn. Sau đó, kẻ tấn công sẽ đặt một lệnh giao dịch ngay trước giao dịch đang chờ xử lý của nạn nhân (front-running) và một lệnh giao dịch khác ngay sau giao dịch đó (back-running). Giao dịch đang chờ xử lý của nạn nhân sẽ được kẹp giữa hai lệnh giao dịch mới do kẻ tấn công tạo ra. Nếu cuộc tấn công thành công, kẻ tấn công sẽ tạo ra một đợt tăng giá giả mạo và thu về lợi nhuận.
Sandwich Attack có thể thực hiện được cũng một phần do tính minh bạch của các giao dịch trong mempool (hay bể chờ của các giao dịch pending), nhưng cũng một phần vì các sàn giao dịch phi tập trung cho phép giá cả có tính biến động giữa những đợt giao dịch.
Tỷ lệ chênh lệch giá liên quan đến sự khác biệt giữa giá mong muốn của một giao dịch và giá thực tế khi giao dịch được xử lý. Các sàn DEX thường cho phép tỉ lệ trượt giá khoảng 1%, nhưng với các bể giao dịch với tính thanh khoản thấp, tỷ lệ này có thể lên đến 3% hoặc thậm chí cao hơn.
Bây giờ, hãy xem một ví dụ: Đầu tiên, kẻ tấn công sẽ mua một tài sản mà nạn nhân đang cố gắng chuyển đổi (swap). Giả như sử dụng WBTC để đổi sang ETH. Tại thời điểm mua tài sản, kẻ tấn công đã biết rằng giá ETH đang tăng lên. Họ sẽ tiến hành mua ETH với giá thấp hơn để cuối cùng nạn nhân sẽ mua nó với giá cao hơn. Kẻ tấn công có thể thu được lợi nhuận khi họ bán ETH mà họ đã mua ở mức giá thấp hơn với mức giá cao hơn ngay sau đó. Trong trường hợp này, kẻ tấn công sẽ tạo ra một đợt tăng giá giả tạo trong ETH, dẫn đến giá ETH tăng lên và nếu thành công, lợi nhuận sẽ thuộc về họ.
Trên thực tế, việc thực hiện thủ thuật Sandwich Attack khá dễ dàng nhờ vào bản chất minh bạch của blockchain, tỉ lệ trượt giá của các DEX và độ trễ thấp khi thực hiện đặt lệnh trên các chuỗi có tốc độ xử lý chậm như Ethereum.
Tất cả những giao dịch được thực hiện trên blockchain có thể được theo dõi trong mempool – một nơi chứa các giao dịch đang trong trạng thái pending. Thêm vào đó, nhiều hợp đồng thông minh của DeFi không chứa các chức năng chống lại những thủ thuật này.
Bước đầu tiên của thủ thuật Sandwich Attack là sử dụng một con bot tự động “đánh hơi” các giao dịch trong một sàn DEX nhất định. Thông thường, con bot này sẽ tìm những giao dịch có phí gas thấp cũng như các giao dịch trong bể thanh khoản nào cho phép những người cung cấp thanh khoản có thể nhận phần thưởng và chuyển đổi chúng sang các token đã được quy định sẵn. Hầu hết những đợt Sandwich Attack đều được thực hiện trên các công cụ tạo lập thị trường tự động (AMM) như Uniswap và Sushiswap.
Các AMM đảm bảo các giao dịch sẽ được thực thi liên tục thông qua thuật toán định giá của chúng. Chính khía cạnh này của AMM tạo điều kiện cho các đợt Sandwich Attack này thành công, vì một khi con bot hoặc kẻ tấn công đánh hơi ra giao dịch, họ có thể thực hiện front-run và back-run một giao dịch tiêu chuẩn cùng một lúc, trong khi giao dịch gốc ban đầu vẫn sẽ được xử lý vì các giao dịch trên AMM cho phép tỉ lệ trượt giá.
Kẻ tấn công có thể thực hiện một cuộc tấn công bằng hình thức Sandwich Attack theo hai cách:
Ví dụ: Các trader thường có một giao dịch AMM đang chờ xử lý trên blockchain tham gia thị trường. Tại thời điểm này, kẻ tấn công có thể tạo các giao dịch front-run (chạy trước) và back-run (chạy sau) để thu lợi tài chính.
Vì liquidity pool và cặp tài sản có ba giao dịch đang chờ xử lý, nên các miner sẽ quyết định giao dịch nào được chấp thuận trước. Tại thời điểm này, nếu kẻ tấn công “hối lộ” miner bằng cách trả phí giao dịch cao hơn những người khác, cơ hội giao dịch đó sẽ được ưu tiên. Đây không phải là một cuộc tấn công bằng Sandwich Attack điển hình với tỷ lệ thành công tuyệt đối, mà chỉ cho thấy là việc thực hiện Sandwich Attack dễ dàng như thế nào.
Một liquidity provider có thể tấn công liquidity taker theo một cách rất giống nhau. Thiết lập ban đầu vẫn giống hệt nhau, nhưng kẻ tấn công sẽ cần thực hiện ba bước:
Việc rút tiền thanh khoản khỏi liquidity pool trước khi giao dịch của nạn nhân được thực hiện sẽ vô hiệu hóa phí hoa hồng cho giao dịch đó. Thông thường, liquidity provider kiếm được một khoản phí nhỏ tương ứng với tính thanh khoản mà họ cung cấp cho thị trường AMM DEX.
Với khả năng thực hiện dễ dàng của thủ thuật Sandwich Attack, bạn nghĩ những đợt tấn công này có lời và có đáng hay không? Có lời hay không? Câu trả lời là có, chúng có thể tạo ra lợi nhuận. Nhưng có đáng không? Thì có lẽ là không.
Thật ra, những đợt Sandwich Attack này thực ra không có lời nhiều như chúng ta nghĩ. Cái giá phải trả để thực hiện Sandwich Attack thường lớn hơn phần lợi ích mà kẻ tấn công nhận được.
Ví dụ, hầu hết các sàn DEX đều lấy một khoảng phần trăm phí từ mỗi giao dịch được thực hiện trên nền tảng. Đồng nghĩa với việc kẻ tấn công phải trả phí giao dịch và phí nền tảng cho cả hai lệnh đặt trước (front-run) và sau (back-run) giao dịch gốc của nạn nhân. Thêm vào đó, Ethereum và nhiều chuỗi DeFi khác thường tính phí gas khá cao, tăng chi phí cho những vụ tấn công như vậy.
Nói tóm lại thì Sandwich Attack vẫn là một thủ thuật có lời khi hoa hồng kiếm được và chi phí giao dịch để thực hiện Sandwich Attack thấp hơn giá trị giao dịch của nạn nhân.
Hiện tại thì chưa có một biện pháp cụ thể nào để bảo vệ nạn nhân khỏi những đợt Sandwich Attack. Tuy nhiên, điều đó không có nghĩa là không có cách nào ngăn chặn vấn đề này. Rất nhiều giao thức đang cố gắng tích hợp những công nghệ như ZK-Snarks, nhằm cung cấp một lớp bảo mật thông tin giao dịch để các trình bot và những kẻ tấn công không thể xác định được các giao dịch. Ví dụ như nền tảng 1inch đã giới thiệu một cách order mới được gọi là “flashboot transactions”, đây là cách thức không hiển thị trong mempool.
Một cách đối phó khác có thể kể đến đó là nhắm vào cán cân giữa chi phí và lợi ích của kẻ tấn công. Có nghĩa là khi thực hiện giao dịch trên các sàn phi tập trung, tận dụng khi phí gas ở mức thấp có thể chấp nhận được cho giao dịch nhiều lần, bạn chia nhỏ giao dịch ra làm nhiều đợt. Điều này yêu cầu nhiều kinh nghiệm giao dịch thực tiễn và cập nhật thường xuyên mức phí gas của các chuỗi mà bạn sử dụng.
Trong tương lai, DeFi chắc chắn sẽ cho ra giải pháp khác để ngăn ngừa những đợt tấn công như vậy. Nhưng có lẽ sẽ mất một thời gian nữa.
Mặc dù hiện tại thì Sandwich Attack đã không còn là thủ thuật gì mới, thế nhưng trong thế giới DeFi hùng mạnh ngày nay, việc bảo vệ các nhà đầu tư thiếu kinh nghiệm sẽ là ưu tiên số một đối với các chuyên gia blockchain. Khái niệm phân quyền cho rằng không bao giờ có thể có một bên thứ ba được ủy quyền để đảm bảo an toàn, bảo mật và bồi thường cho bất kỳ cá nhân hoặc tổ chức nào. Tuy vậy, trước tình hình hiện nay, những phương án xử lý vẫn đang trong quá trình phát triển.