Với cơn sốt của Decentralized Finance (DeFi) cùng nhiều cơ hội mang lại nguồn thu nhập hấp dẫn, chúng ta vẫn phải thừa nhận một sự thật rằng các nhà đầu tư DeFi vẫn phải đối mặt với các cuộc tấn công diễn ra khá thường xuyên.
Trong số các loại attack (tấn công), việc khai thác hợp đồng thông minh là một loại tấn công dễ xảy ra nhất. Khi đó, các attacker (kẻ tấn công) sẽ lợi dụng các lỗ hổng trong code DeFi, để xâm nhập vào các khoản flash loan nhằm rug bull (rút tiền đầu tư rồi bỏ trốn) và gần đây là Sandwich Attack (cuộc tấn công sandwich).
Có thể đây là lần đầu tiên bạn nghe đến Sandwich Attack bởi vì đây là một khái niệm không phổ biến như những loại attack khác. Tuy nhiên, nó có thể gây ra những hậu quả đáng kể, dẫn đến việc thao túng thị trường. Nó đã được Co-Founder Ethereum – Vitalik Buterin lên tiếng cảnh báo vào năm 2018.
Hãy cùng Bitcoincuatoi tìm hiểu toàn bộ thông tin về Sandwich Attack nhé.
Khái niệm về Sandwich Attack
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ác yếu tố cần chú ý trong Sandwich Attack
Hình thức Sandwich Attack khá đơn giản và rất dễ để áp dụng vào thực tế. Ngay cả khi việc làm này chỉ mang lại khoản lợi nhuận nhỏ, nhiều người vẫn có thể sử dụng đi sử dụng lại hình thức này mà không để lại bất kỳ hậu quá to tát nào. Tuy nhiên, attacker cần phải chuẩn bị tốt để thực hiện được một cuộc Sandwich Attack lớn. Bởi nó tồn tại rất nhiều chi tiết phức tạp quyết định cuộc tấn công này có thành công hay không.
Phần lớn các Sandwich Attack sẽ được thực hiện thông qua các trình Automated Market Maker (AMM) của Uniswap, PancakeSwap, Sushi hoặc các nền tảng khác. Bằng các thuật toán định giá, thanh khoản luôn có yêu cầu cao và các giao dịch được thực hiện liên tục. AMM cho phép các nhà cung cấp thanh khoản xem và theo dõi thị trường, sau đó đặt giá mua/ bán. Đến lượt liquidity taker, attacker sẽ giao dịch với AMM.
Mặt khác, trượt giá cũng là một nhân tố có thể xảy ra, khi khối lượng giao dịch và tính thanh khoản của tài sản đó thay đổi vượt khỏi khung dự đoán của Sandwich Attack.
Bên cạnh đó, attacker cũng phải đối mặt với giá thực hiện dự kiến, giá thực hiện thực tế và tỷ lệ trượt giá bất ngờ. Những yếu tố này có thể tác động đến tốc độ giao dịch và số lượng tài sản nhận được khi đổi từ tài sản ban đầu. Các giao dịch trên blockchain có thể mất một thời gian để thực hiện và tỷ giá giữa các tài sản có thể dao động lớn, dẫn đến trượt giá bất ngờ hơn.
Ví dụ: một liquidity taker muốn trade 1X với giá 20Y, tức giá giao dịch là 0.05/1Y. Giao dịch mất một khoảng thời gian chờ xử lý và khi nó được thực hiện, giá giao dịch lúc này đã thay đổi còn 0.1/1Y. Với mức giá này, liquidity taker chỉ có thể chỉ nhận được 10Y thay vì 20Y dự tính ban đầu. Tỷ lệ trượt giá bất ngờ là 0.05 (0.1 – 0.05). Ngược lại, nếu giá khớp lệnh giảm xuống 0.25/1Y, liquidity taker bây giờ có thể nhận được 40Y với giá 1X. Như vậy, tỷ lệ trượt giá bất ngờ lúc này là −0.15 (-0.25 – 0.1).
Hai tình huống thường gặp trong Sandwich Attack
Liquidity Taker vs Taker
Ví dụ: trader tham gia thị trường thông thường với một giao dịch AMM đang chờ xử lý trên blockchain. Lúc này, attacker có thể tạo ra 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à asset pair (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.
Lúc này, nếu attacker “hối lộ” miner bằng cách trả phí giao dịch cao hơn so với cá nhân khác, thì cơ hội giao dịch này sẽ được xử lý trước. Đây không phải là một kiểu Sandwich Attack điển hình với tỷ lệ thành công tuyệt đối, mà chỉ đơn thuần là minh họa về việc thực hiện thao túng bằng Sandwich Attack khá dễ dàng.
Liquidity Provider vs Taker
Một liquidity provider (nhà cung cấp thanh khoản) có thể tấn công liquidity taker theo cách rất giống nhau. Về cơ bản, tình huống này vẫn tận dụng các giao dịch front-run (chạy trước) và back-run (chạy sau), tuy nhiên, attacker cần thực hiện theo trình tự 3 bước.
Đầu tiên, họ loại bỏ tính thanh khoản, như một phương pháp chạy trước, để tăng mức trượt giá của nạn nhân. Tiếp đến, họ bổ sung lại tính thanh khoản để khôi phục số dư ban đầu giúp pool hoạt động trở lại. Cuối cùng, attacker swap 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 withdraw tất cả tài sản khỏi liquidity pool trước khi giao dịch của nạn nhân được thực hiện, sẽ làm vô hiệu hóa commission fee (phí hoa hồng) cho giao dịch đó. Khi làm như vậy, attacker sẽ tính trước phí hoa hồng cho giao dịch của nạn nhân. Liquidity provider nhận được phí hoa hồng tương ứng với tính thanh khoản mà họ cung cấp cho thị trường AMM DEX.
Nhược điểm của Sandwich Attack
Mặc dù việc thiết lập Sandwich Attack là khá dễ dàng, song không phải lúc nào nó cũng mang lại nguồn lợi lớn cho attacker. Như đã đề cập, attacker buộc phải đánh vào chi tiết phí giao dịch cao hơn để thu hút miner, đồng thời thiết lập cả 2 giao dịch cùng lúc để thực hiện. Hoặc trường hợp khác nữa là trader khác cũng chấp nhận mức phí cao hơn, vô tình “kẹp” giữa cuộc tấn công. Do đó, đôi khi lượng phí này lại có thể cao hơn cả lượng tiền mà attacker có thể nhận được sau đó, đặc biệt là khi sử dụng Ethereum – nơi có mức phí giao dịch là khá cao. Điều này sẽ khiến cho Sandwich Attack bị “phản tác dụng”.
Mặt khác, với một điều kiện giao dịch thông thường và chi phí giao dịch cho một cuộc tấn công sandwich thấp hơn số tiền giao dịch của nạn nhân, thì khả năng Sandwich Attack xảy ra là điều hiển nhiên.
Làm thế nào để tránh được Sandwich Attack?
Cho đến nay, người dùng vẫn chưa thể chủ động “xóa sổ” được Sandwich Attack. Dù vậy, đây là một hình thức tấn công dựa trên trình AMM để thực hiện. Do đó, các biện pháp xử lý nên được phát triển ngay trên gốc rễ của vấn đề nhằm giải quyết triệt để nhất. Trước tình hình này, nền tảng 1inch network đã giới thiệu một loại hình đặt lệnh với tên gọi “flashbot transactions”. Đây là phương thức ẩn hiển thị trong mempool, sau đó kết nối trực tiếp với miner đáng tin cậy để thực hiện giao dịch. Những giao dịch hoàn tất sẽ được hiển thị tại mempool ngay sau đó.
Trái với mong đợi, biện pháp này cũng gây ra một số tranh luận xoay quanh cách thức hoạt động. Bao gồm việc người dùng hiện vẫn chưa thực sự tin tưởng bởi các AMM có thể tận dụng việc ẩn hiển thị và không kiểm tra được tính minh bạch, để giả mạo việc kết nối với miner mà không thông qua mempool.
Mempool: lợi ích chính của mempool là khả năng lưu trữ các giao dịch network để chúng có thể được xử lý sau này.
Lời kết
Tuy Sandwich Attack ở hiện tại đã không còn là một ý tưởng quá mới mẻ. Khái niệm và các khuyết điểm có thể có đối với tất cả các thành viên thị trường đã được thảo luận kể từ khi ý tưởng về DeFi xuất hiện. Automated Market Maker (AMM) dường như là quyết định tốt nhất cho giao dịch phi tập trung, song nó vẫn để lại rất nhiều lỗ hổng để các cuộc tấn công có thể diễn ra.
Với sức nóng của DeFi hiện nay, việc bảo vệ các trader thiếu kinh nghiệm sẽ trở thành “ưu tiên số một” đối với các chuyên gia blockchain. Tuy nhiên, chính khái niệm phân quyền lại phản biện 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 thiệt hại cho bất kỳ cá nhân, tổ chức nào. Mặc dù vậy, ở kịch bản hiện tại, các phương án xử lý triệt để vẫn đang trong quá trình nghiên cứu và phát triển.
Biên tập và tổng hợp – Bitcoincuatoi
—
* Thông tin trong bài viết chỉ mang mục tiêu chia sẻ và cung cấp kiến thức, không phải là lời khuyên. “Do your own research!” Hãy tự nghiên cứu trước khi đưa ra quyết định đầu tư.