|KIẾN THỨC| SANDWICH ATTACK TRONG DEFI – CÁCH PHÒNG TRÁNH HIỆU QUẢ

SANDWICH

Sandwich là món bánh thơm ngon, nhưng sandwich attack thì lại khác. Vậy chúng ta cùng tìm hiểu xem, sandwich attack là gì, cơ chế của nó ra sao mà giới DEFI lại phải dè chừng?

SANDWICH ATTACK LÀ GÌ?

Về cốt lõi, Sandwich Attack là một hình thức front-running (tấn công chạy trước) nhắm vào các giao thức và dịch vụ tài chính phi tập trung.

Trong một cuộc Sandwich Attack, kẻ tấn công sẽ tìm kiếm một giao dịch đang chờ xử lý trên network mà họ lựa chọn (ví dụ như Ethereum). Sau đó, họ thiết lập tấn công bằng cách đặt một lệnh ngay trước giao dịch và một lệnh ngay sau lệnh đó. Điều này có nghĩa là, họ sẽ front-run (chạy trước) và back-run (chạy sau) đồng thời với giao dịch đang chờ xử lý ban đầu. Như vậy, Sandwich Attack là cách thức hoạt động đúng theo tên của nó, kẹp một thứ gì đó ở giữa.

Mục đích của việc đặt hai lệnh này và các giao dịch đang chờ xử lý xung quanh là để thao túng giá tài sản. Ví dụ, thủ phạm sẽ mua tài sản mà người dùng đang swap (sử dụng LINK để swap sang ETH), với dự đoán về việc giá ETH đang tăng lên. Sau đó, thủ phạm sẽ mua ETH với giá thấp hơn để đẩy nạn nhân mua với giá trị cao hơn. Lúc này, kẻ tấn công sẽ bán ETH với giá cao hơn nữa để thu về lợi nhuận.

Một ví dụ khác trong thị trường chứng khoán, bạn biết được sắp có ai đó sắp mua một lượng lớn cổ phiếu của TELSA trị giá 10 triệu đô. Bạn đặt một lệnh mua trước khi lệnh mua 10 triệu đô đó được thực hiện xong và khiến giá tăng cao, bạn sẽ ngay lập tức đặt một lệnh bán để hưởng phần lợi nhuận đó.

Tóm lại, Sandwich Attack (hay front-running) là việc lợi dụng việc BIẾT TRƯỚC một giao dịch trong tương lai có tác động đến giá cả và đặt lệnh ngay trước giao dịch đó nhằm mục đích kiếm lời.

CÁCH THỨC HOẠT ĐỘNG

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ư UniswapSushiswap.

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á.

HAI KỊCH BẢN CỦA SANDWICH ATTACK

  1. Liquidity taker với taker

SANDWICH

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.

2. Liquidity provider với taker

SANDWICH

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:

  • Đầu tiên, họ loại bỏ tính thanh khoản như một phương pháp front-run để tăng mức trượt giá của nạn nhân.
  • Thứ hai, họ bổ sung lại tính thanh khoản, chạy lại để khôi phục số dư ban đầu của nhóm.
  • Thứ ba, họ hoán đổi tài sản Y cho X để khôi phục số dư tài sản của X về như trước khi bị tấn công.

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.

TẠI SAO XẢY RA SANDWICH ATTACK?

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.

CÁCH CHỐNG LẠI SANDWICH ATTACK

Đối với AMM, điều quan trọng là phải phát triển các biện pháp đối phó có khả năng bảo vệ người dùng khỏi các cuộc tấn công sandwich attacks. Ví dụ: nền tảng 1inch đã giới thiệu một cách order mới được gọi là “flashbot transactions”, không hiển thị trong mempool vì chúng không bao giờ được truyền đến nó. Thay vào đó, nền tảng 1inch có kết nối trực tiếp với những miners đáng tin cậy để làm cho các giao dịch hiển thị sau khi chúng được khai thác.

Cho đến nay, đó dường như là cách duy nhất để người dùng tự bảo vệ mình trước một cuộc tấn công sandwich attacks. Tuy nhiên, vẫn chưa rõ liệu các AMM khác có giả mạo quan hệ đối tác với các miner để bao gồm các giao dịch mà không truyền chúng đến mempool hay không. Các giải pháp khác có thể được tìm thấy trong tương lai, mặc dù điều đó có thể sẽ mất một thời gian.