Việc người dùng bị front run đang là một vấn đề nhức nhối trong Crypto và chưa có lời giải, nguyên nhân chủ yếu dẫn tới việc này là do các front running bot khiến giá trị mà người dùng nhận lại không bằng giá trị thực sự mà họ nên nhận. Bài viết dưới đây nhằm giải thích về Front Running Bots là gì?, những tác động và giải pháp liên quan cho cả phía người dùng và dự án đối với Front Running Bot
1. Bot là gì?
Trước khi đi sâu tìm hiểu về front-running bots, ta cùng tìm hiểu khái niệm cơ bản về bots.
Nói một cách đơn giản, bot chỉ là những chương trình được lập trình sẵn để tự động hóa việc giao dịch. Thay vì việc bản thân phải theo dõi mọi biến động trong thị trường, canh thời điểm đẹp để mua bán, bot sẽ tự động tổng hợp, đánh giá những thông tin có sẵn trên thị trường và thực hiện việc mua bán tài sản cho người sử dụng.
Hầu hết các bot hiện tại đều có những đặc tính cơ bản sau:
- Phân tích dữ liệu từ thị trường: Tổng hợp, đánh giá thông tin từ nhiều nguồn và quyết định nên mua hoặc bán một loại tài sản cụ thể nào. (Ví dụ đơn giản nếu giá SUSHI về $5 thực hiện 1 lệnh buy).
- Dự đoán rủi ro: Tính toán những rủi ro trên thị trường và quyết định mua/bán bao nhiêu.
Khả năng mua và bán tài sản: Sử dụng APIs để mua và bán một cách có chiến thuật (có lúc mua nhiều lệnh nhỏ lẻ, có lúc all in giá market).
Bot là một công cụ hiệu quả vì chúng hoàn toàn tự động, có khả năng xử lý nhiều thông tin cùng một lúc, không bị cảm xúc chi phối và hoàn toàn dựa vào dữ liệu để hoạt động. Nhưng tất nhiên chúng không hoàn hảo, việc phụ thuộc hoàn toàn vào những thông số lộ ra nhược điểm của bot trong thị trường không rõ xu hướng, lúc này kinh nghiệm của con người sẽ có ưu điểm giúp bảo toàn số vốn hoặc giúp tạo ra lợi nhuận tốt hơn.
Có rất nhiều loại bot với công dụng khác nhau trên thị trường như: trading bot dùng để test các chiến lược trade khác nhau, arbitrage bot dùng để mua bán chênh lệch giá, và loại bot mà chúng ta sẽ cùng tìm hiểu, front-running bots.
2. Front-running Bot là gì?
Khái niệm Front-running
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 đó để kiếm lời cho bản thân.
Ví dụ trong tài chính truyền thống, nếu một trader hoặc một quỹ nào đó biết tin rằng cổ phiếu TLSA của Telsa sắp được một ai đó mua với khối lượng lên tới $10 triệu đô, họ có thể đặt một lệnh mua ngay trước đó và khi lệnh mua 10 triệu đô được thực hiện xong khiến giá giãn nở, họ sẽ ngay lập tức đặt lệnh bán và hưởng phần lợi nhuận.
Front-running Bot trong Crypto
Khả năng biết trước giao dịch sắp xảy ra là một phần rất quan trọng của front-running. Vậy tại sao trong Crypto, những trường hợp bị front-run lại xảy ra thường xuyên và nhiều đến thế?
Điều này nằm trong thiết kế của Ethereum hoặc các blockchain có thiết kế tương tự Ethereum, tất cả các giao dịch được submit đều phải dừng lại trong một mempool (nôm na là nơi chứa các giao dịch đợi được xử lý). Lúc này các miners hoặc bots có thể scan mempool. Bot khi scan mempool sẽ tìm được những giao dịch thích hợp để front-run (X).
Một đặc điểm thứ hai trong thiết kế của Ethereum là các miners có quyền chọn thứ tự xử lý giao dịch, và tất nhiên họ sẽ ưu tiên những giao dịch trả phí cao hơn (đây là lí do gây ra vấn đề MEV). Do đó bot khi scan xong và tìm được X, chúng chỉ việc:
- Đặt lệnh mua với phí gas cao hơn gas của X một chút.
- Tiếp đó đặt lệnh bán với gas thấp hơn X một chút.
- Và thu về lợi nhuận từ việc front-run.
Việc đặt lệnh hai đầu như trên là một trong những hình thức front-run phổ biến hiện nay hay còn được gọi là “sandwich attack”.
Ví dụ về front-running bot
Ví dụ về cặp USDC-SAK3, ta có thể thấy ngay giữa lệnh mua 1 SAK3 có 2 lệnh mua và bán đồng thời 0.4x SAK3 từ cùng một địa chỉ, đây chính là điển hình của việc người dùng bị front-run trong crypto.
Nhìn vào chi tiết txs hash ở trên, chỉ qua 2 lệnh giao dịch, con bot này đã bỏ túi hơn $1,500 khi mua 0.4x SAK3 ở giá $7,473 và bán đi với giá $9,013.
Tóm lại:
- Front-running bots thấy một giao dịch có khả năng front-run (slippage đủ lớn, tác động đến giá đủ cao để thu về lợi nhuận).
- Chèn 1 lệnh buy với size hợp lý (vì lệnh buy vào cũng sẽ ảnh hưởng tới giá) lên trước lệnh của người dùng
- Xả ngay sau khi lệnh người dùng được thực hiện. Lợi nhuận của bots nằm ở phần trượt giá do người dùng tạo ra, tạo điều kiện để mua ở giá thấp xả ở giá cao.
Ethereum là môi trường lý tưởng cho việc front-run
Có thể nói thiết kế của Ethereum đã tạo ra môi trường lý tưởng và cung cấp đầy đủ công cụ cần thiết cho việc front-run:
- Bot biết trước giao dịch và có khả năng tác động đến thứ tự giao dịch (chỉnh phí gas cao lên), miners cũng có thể tự lợi dụng quyền hạn và cho giao dịch của mình lên trước để front-run giao dịch gốc.
- Khối lượng giao dịch trên Ethereum ngày càng lớn, cả về tần suất giao dịch và giá trị trên mỗi giao dịch.
Giá trị trên mỗi giao dịch trên mạng lưới Ethereum
- Thanh khoản mỏng dẫn đến biến động giá lớn.
- Bất kỳ ai cũng có thể tạo hoặc mua và sử dụng các bots để front-run.
⇒ Việc front run phát triển là điều không thể tránh khỏi.
Các loại hình front-run phổ biến và ảnh hưởng của chúng
Một vài loại hình front-run phổ biến:
- Front-run cơ bản: Đặt lệnh vào những cơ hội có tiềm năng lợi nhuận.
- Displacement attack: Miner thay thế giao dịch gốc với giao dịch của bản thân hoặc bot, giao dịch bị thay thế vẫn có thể được thực hiện nhưng hiệu quả sẽ không được như dự tính ban đầu.
- Insertion attack (sandwich attack): Đặt giao dịch ở hai đầu của giao dịch gốc và hưởng lợi nhuận mà không cần giữ tài sản, những giao dịch bị sandwich attack thường sẽ chịu slippage cao hơn.
- Suppression attack: Delay giao dịch gốc, một giao dịch tiềm năng mà để slippage thấp thì miner hoàn toàn có thể delay giao dịch, nếu giao dịch đó muốn được thực hiện thì phải chỉnh slip cao hơn.
3. Giải pháp ngăn ngừa bot front-run trong crypto
Từ góc độ người dùng
Ở góc độ của người dùng một vài cách cơ bản mà chúng ta có thể áp dụng để hạn chế việc bị front-run bao gồm:
- Chia nhỏ giao dịch: Thay vì thực hiện nhiều giao dịch lớn cùng một lúc, người dùng có thể chia thành nhiều giao dịch nhỏ hơn, điều này sẽ làm giảm độ hấp dẫn của giao dịch với front-running bot vì giá trị chúng có thể khai thác được sẽ it đi.
- Chỉnh slippage thấp: Bản thân bot khi đặt giao dịch cũng sẽ làm ảnh hưởng đến giá, vì vậy việc chỉnh slippage thấp sẽ ngăn chặn được những mất mát không đáng có của người dùng. Tuy nhiên việc điều chỉnh slippage thấp có thể khiến giao dịch khó được thực hiện hơn
Front-running là một phần của MEV (miner-extractable value) hay lợi nhuận mà thợ đào kiếm được nhờ việc lợi dụng quyền hạn của mình. Hiện nay vẫn chưa có giải pháp để loại bỏ MEV, phía dưới là một vài ý tưởng và biện pháp nổi bật để giảm thiểu thiệt hại mà MEV mang lại cho người dùng.
Từ góc độ nhà phát triển
Các nhà phát triển có thể chia những biện pháp nhằm giảm tác động của MEV thành 3 nhánh chính:
- Thay đổi cấu trúc hạ tầng: Blockchain loại bỏ khả năng re-order giao dịch của miner và có những biện pháp nhằm tăng cường hiệu quả cho việc sắp xếp thứ tự giao dịch.
- Có các biện pháp giúp giao dịch trở nên kín hơn: Khiến các bots không có đủ thông tin để thực hiện giao dịch
- Phát triển trực tiếp từ ngọn và cho Dapps khả năng giảm thiểu tác động của front-run
Một số ví dụ
Một vài ví dụ về các DApps (ứng dụng phi tập trung) giúp giao dịch trở nên kín hơn hoặc có các biện pháp hạn chế front-run:
- KeeperDAO: Sử dụng một Mempool ẩn gọi là Hiding Book. Giao dịch, lệnh vay sẽ được đưa qua đó, nơi Keeper bot sẽ lấy lợi nhuận thông qua MEV thông qua giao dịch lệch giá hoặc thanh lý tài sản. Lợi nhuận MEV được gửi vào ROOK treasury, người dùng nhận được một phần lợi nhuận dưới dạng token ROOK. Các giao dịch này sẽ được miễn phí giao dịch, tránh được trược giá do front-run.
- SecretSwap: Là một AMM trên Secret Network. Secret Swap sử dụng các secret contract (SNIP-20) để bảo vệ người dùng khỏi các bot MEV front-run. Các contract SNIP-20s được mã hóa khi chúng ở trong mempool, ngăn chặn việc trích xuất MEV.
- TaiChi Network: Là một Private transaction service do SparkPool điều hành. Các giao dịch của người dùng chỉ hiển thị với Sparkpool và không hiện ở các node của Ethereum khác, ngăn chặn bot MEV không thể tìm các giao dịch trên Mempool.
- Archer DAO: Archer Swap của Archer DAO sử dụng Archer Relay để vượt qua Mempool và gửi các giao dịch của người dùng trực tiếp đến các miners và Flashbots MEV-Geth của riêng dự án. ArcherSwap ngăn chặn việc front-run, trượt giá và không mất phí giao dịch đối với các trường hợp giao dịch bị thất bại.
- Alchemist: mistX.io là AMM của Alchemist, hoạt động trên mạng lưới của Flashbots, giúp người dùng gửi giao dịch tương tự như Transaction bundle của Flashbots. Ngoài việc miễn phí giao dịch, người dùng cũng không cần trả phí khi cancel lệnh order.
- 1Inch: Virtual rates của 1 inch đặt ra một tỷ lệ quy đổi mà nếu mua và bán lại ngay sẽ nhận về đúng tỷ lệ đó. Có nghĩa là nếu bots hoặc người dùng swap token với giá X mà swap lại ngay sau đó thì sẽ nhận về giá X, chứ không được hưởng lợi nhuận từ “sandwich attack” nữa. 1Inch sẽ đặt ra một thời gian chờ gọi là “decay period” mà tỷ lệ trên được áp dụng, giao động từ 1 đến 5 phút
Closing thought
Front-running nói riêng và MEV nói chung là điều không thể tránh khỏi và sẽ ngày càng phát triển cùng với sự tăng trưởng của mạng lưới Ethereum.
Các loại hình tấn công của front-running có thể đa dạng và phức tạp hơn nhiều từ đó đẩy những tác động của chúng lên một tầm cao mới.
MEV vẫn chưa được khai phá hết do ở thời điểm hiện tại phần lớn miners vẫn chưa nhận thấy tiềm năng lợi nhuận từ việc lợi dụng quyền hạn của mình và khai thác MEV. Khả năng cao trong tương lai việc miners khai thác MEV sẽ đi đến mainstream và có những ảnh hưởng không tưởng đến Ethereum.
Như vậy, thông qua bài viết, chắc hẳn anh em đã hiểu Front Running Bot là gì, cũng như những tác động và giải pháp liên quan cho cả phía người dùng và dự án đối với Front Running Bot.