Không ai có thể từ chối sức hút của DeFi khi mà các bạn có thể tìm được rất nhiều cơ hội đầu tư với lợi nhuận hấp dẫn ở thị trường này. Tuy nhiên những người tham gia có khả năng sẽ phải đối mặt với những cuộc tấn công trên DeFi gây ra những thiệt hại đáng kể tới túi tiền của mỗi người.
Hãy tưởng tượng vào một ngày đẹp trời, bạn lên sàn DeFi thực hiện giao dịch một cặp token và kết cục là bạn phải mua token đấy với giá cao hơn đáng kể so với mong muốn trong khi giá token đang khá ổn định và không có biến động lớn nào. Trong bảng thông kê thì thấy giao dịch của bạn bị “kẹp” bởi hai lệnh khác có khối lượng như nhau. Nếu bạn đã gặp trường hợp này thì xin chia buồn, bạn đã trở thành nạn nhân của Sandwich Attack.
Có thể đối với một số người, đây là lần đầu tiên nghe đến Sandwich Attack. Tuy nhiên, cách thức tấn công này vốn không mới và là một trong những loại tấn công dễ xảy ra nhất.
Trong bài viết này, các bạn hãy cùng Allinstation tìm hiểu xem Sandwich Attack là gì và cách bảo vệ bản thân khỏi loại tấn công này nhé!
Cách Sandwich Attack hoạt động
Đầu tiên các bạn cần hiểu cách thức Sandwich Attack hoạt động.
Về cơ bản, Sandwich Attack là việc kẻ tấn công (có thể là người hoặc bot) lợi dụng việc biết được một giao dịch có tác động lớn đến giá cả và cố gắng đặt lệnh ngay trước giao dịch đó nhằm mục đích kiếm lời từ chênh lệch giá.
Nhìn chung cuộc tấn công sandwich sẽ diễn ra theo các bước:
Bước 1: Một nạn nhân sẽ thực hiện lệnh trade lớn để hoán đổi tài sản X (Ví dụ như ETH, DAI…) lấy tài sản Y.
Bước 2: Kẻ tấn công sẽ thấy giao dịch ở bước 1 trong hàng chờ và cố gắng thực hiện một lệnh mua tài sản Y trước khi giao dịch của nạn nhân được xác nhận (front-run).
Bước 3: Giao dịch của kẻ tấn công đã đẩy giá của tài sản Y lên cao nên nạn nhân phải giao dịch với mức giá cao hơn nhiều so với mong muốn trong khi kẻ tấn công đã hưởng được mức giá đẹp.
Bước 4: Do nạn nhân phải mua tài sản Y với mức giá cao nên kẻ tấn công sẽ bán tài sản Y với mức giá đấy (back-run). Kết quả là kẻ tấn công sẽ hưởng được lợi nhuận từ việc giao dịch chênh lệch giá.
Ví dụ về Sandwich Attack
Ví dụ như ảnh trên, một người giao dịch đặt lệnh 7.85 ETH mua một lượng token với giá quanh $2.46. Tuy nhiên ngay cùng thời điểm trên kẻ tấn công đã nhanh chóng tạo lệnh 3.66 ETH mua với giá đấy. Cả 2 lệnh gần cùng lúc đã đẩy giá token lên một khoảng đáng kể và nạn nhân phải thực hiện giao dịch mua ở giá $2.57. Cuối cùng nhân lúc giá đang cao, kẻ tấn công thực hiện lệnh bán ở giá $2.6 từ đấy thu về khoản lợi nhuận 0.2 ETH trong khi nạn nhân phải chịu thiệt hại khi mua ở mức giá cao hơn đáng kể so với mong muốn.
Những loại Sandwich Attack thường gặp
Thông thường sẽ có hai loại Sandwich Attack. Cách thức hoạt động của hai thể loại này khá giống nhau trong khi điểm khác biệt nằm ở đối tượng thực hiện nó.
Liquidity Taker vs Taker
Đầu tiên là loại tấn công mà các trader thực hiện chống lại các trader khác.
Trader tham gia thị trường với một lệnh giao dịch AMM. Trong lúc lệnh đang chờ xử lý trên blockchain, kẻ tấn công có thể tạo ra các giao dịch front-run và back-run để thu lợi. Vì lúc này 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, kẻ tấn công có thể tranh chỗ bằng cách trả phí giao dịch cao hơn đáng kể so với cá nhân khác, thì cơ hội giao dịch này sẽ được xử lý trước và Sandwich Attack được thực hiện. Đâ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 tấn công Sandwich khá dễ dàng.
Liquidity Provider vs Taker
Không chỉ người tham gia giao dịch mà cả nhà cung cấp thanh khoản cũng có thể thực hiện cuộc tấn công kiểu này. Về cơ bản, tình huống này vẫn tận dụng các giao dịch front-run và back-run, tuy nhiên, kẻ tấn công cần thực hiện theo trình tự 3 bước.
Đầu tiên, họ thực hiện lệnh rút bớt thanh khoản, để tăng mức trượt giá cho giao dịch của nạn nhân. Sau khi nạn nhân phải thực hiện với mức giá thiệt hơn so với ban đầu, họ sẽ bổ sung lại tính thanh khoản để khôi phục số dư trở về như cũ. Cuối cùng, kẻ tấn công swap tài sản Y cho X để thu lợi.
Những yếu tố giúp kẻ tấn công thực hiện Sandwich Attack
Các bạn cùng nhìn sâu hơn để hiểu xem có những yếu tố nào tạo nên Sandwich Attack.
Yếu tố đầu tiên có thể kể đến là Automated Market Maker (AMM). Đây là thuật toán xác định giá và tạo lập thị trường tự động dựa vào lượng tài sản trong các pool thanh khoản thay vì sổ lệnh truyền thống ở các sàn giao dịch tập trung. AMM cho phép các nhà cung cấp thanh khoản theo dõi và theo dõi thị trường, từ đó đặt giá mua và giá bán. Sau đó những người tham gia sẽ giao dịch theo giá đã định.
Đồng thời AMM đảm bảo rằng các giao dịch sẽ được thực hiện liên tục dựa trên thuật toán xác định giá của nó. Điều này giúp đối tượng tấn công có thể thực hiện giao dịch chạy trước lệnh trade của nạn nhân để đẩy giá và sau đó bán lại với giá hời trong khi giao dịch của nạn nhân vẫn được thực hiện. Lý do vì mỗi lệnh trên AMM đều đi kèm với mức trượt giá nhất định nên nếu giao dịch không tìm được mức giá mong muốn thì vẫn có thể khớp với giá cao hơn hoặc thấp hơn so với ban đầu.
Vì những lý do trên mà hầu hết những cuộc tấn công sandwich đều được thực hiện trên các sàn AMMs như Uniswap, PancakeSwap và SushiSwap.
Ngoài ra, nhờ đặc tính của blockchain mà mỗi giao dịch thực hiện trên mạng lưới có thể được theo dõi trên mempool (nơi lưu trữ các giao dịch để chúng có thể được xử lý dần). Thêm vào đó, nhiều hợp đồng thông minh DeFi không có tính năng ngăn chặn những cuộc tấn công kiểu này nên Sandwich Attack khá đơn giản và rất dễ để áp dụng vào thực tế. Thậm chí nhiều kẻ tấn công vẫn có thể tiến hành liên tục hình thức tấn công này mà không chịu thiệt hại to tát nào.
Yếu điểm của Sandwich Attack
Mặc dù việc thực hiện Sandwich Attack là khá dễ dàng, song không phải lúc nào nó cũng khả thi cho kẻ tấn công. Bởi vì đôi khi chi phí để thực hiện cuộc tấn công sẽ vượt quá mức lợi nhuận mà nó mang lại, đặ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”.
Bên cạnh đó, không phải Sandwich Attack nào cũng thành công. Đôi khi giao dịch tấn công sẽ thất bại và người thực hiện phải gánh khoản chi phí đã bỏ ra.
Làm thế nào để bảo vệ bản thân trước Sandwich Attack
Cho đến nay, người dùng vẫn khó có thể miễn nhiễm hoàn toàn được với Sandwich Attack khi mà các nền tảng giao dịch phi tập trung vẫn chưa triển khai các hợp đồng thông minh có tính năng ngăn chặn các cuộc tấn công kiểu này một cách hiệu quả.
Đã có một số giải pháp được đưa ra, ví dụ như nền tảng 1inch network đã giới thiệu một loại mô 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 đó.
Tuy nhiên 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.
Hoặc một ví dụ khác như đã có những ý kiến cho rằng nên sử dụng công nghệ zk-SNARKs khi nó có thể mã hoá và giấu đi thông tin của từng giao dịch, từ đấy kẻ tấn công sẽ không thể phân tích những giao dịch trong mempool và tìm ra mục tiêu tiềm năng. Tuy nhiên cách này có yếu điểm là phí gas giao dịch sẽ cao và có khả năng mở đường cho những thể loại tấn công khác.
Trong khi chờ đợi một giải pháp thực sự hiệu quả được đưa ra, các bạn có thể thực hiện những biện pháp sau để phần nào bảo vệ khỏi loại tấn công này:
- Nếu các bạn chuẩn bị làm một lệnh lớn trên sàn phi tập trung AMM thì nên chú ý đặt mức trượt giá nằm trong mức có thể chịu đựng. Tốt nhất là giao dịch với khối lượng càng lớn thì mức trượt giá càng nhỏ.
- Bên cạnh đó thì các bạn cũng có thể chia nhỏ lệnh lớn của mình ra nhiều lệnh khác nhau.
Lời kết
Allinstation đã cung cấp cho các bạn những thông tin chi tiết về Sandwich Attack. Với những kiến thức trên mình mong các bạn sẽ áp dụng nó hiệu quả để có thể bảo vệ túi tiền của mỗi người.