Hook: Năm 2020, bot arbitrage Uniswap-Sushiswap của tôi kiếm 0.2 ETH mỗi ngày suốt ba tháng. Sau đó, một đêm tháng 10, sandwich attack quét sạch 3 ETH chỉ trong vài block. Đó không phải lỗi code – mà lỗi hiểu sai bản chất thanh khoản phi tập trung. Từ ngày đó, tôi viết lại bot, và quan trọng hơn: tôi hiểu tại sao đa số bot DeFi chết trong im lặng.
Context: DeFi không phải sàn chứng khoán. Trên AMM, mỗi giao dịch đều public trong mempool. Bot arbitrage cạnh tranh với nhau bằng tốc độ và phí gas, nhưng cạnh tranh thực sự là với MEV searcher. Khi tôi chạy bot đầu tiên, tôi dùng chiến thuật đơn giản: theo dõi chênh lệch giá giữa hai pool, gửi giao dịch swap qua Flashbots. Vấn đề: Flashbots năm 2020 chưa phổ biến, tôi gửi thẳng vào mempool – và trở thành mồi cho sandwich. Bài học đầu tiên: không bao giờ gửi giao dịch lợi nhuận cao qua mempool công khai.
Core: Phân tích kỹ thuật bot arbitrage không chỉ là code. Nó là game lý thuyết trò chơi. Hãy xem cấu trúc một giao dịch arbitrage điển hình trên Uniswap V2: 1. Đọc reserves từ cặp token (ví dụ ETH/USDC pool). 2. Tính toán amountIn tối ưu để tối đa hóa lợi nhuận (dùng công thức Uniswap: Δy = (Δx * y) / (x + Δx)). 3. Gửi giao dịch swap qua router.
Vấn đề nằm ở bước 2 và 3. Nếu tính toán lợi nhuận dựa trên reserves snapshot tại thời điểm đọc, khi giao dịch được xác nhận, reserves đã thay đổi. Bot thông minh dùng eth_call để mô phỏng, nhưng mô phỏng không khớp hoàn toàn với thực tế do trượt giá. Giải pháp tôi dùng: thêm bộ lọc minProfitUSD và maxSlippage, đồng thời ưu tiên giao dịch qua Flashbots với bundle chứa cả giao dịch săn và giao dịch phục hồi. Năm 2021, tôi chuyển sang sử dụng txpool của Erigon để bắt các giao dịch lớn và front-run chúng một cách có kiểm soát (bản chất là sandwich ngược lại).
Contrarian: Tin đồn phổ biến: bot arbitrage là "máy in tiền". Sự thật: hầu hết bot mới thua lỗ trong tuần đầu. Nguyên nhân không phải do thanh khoản kém, mà do cạnh tranh từ các bot cũ đã tối ưu gas và latency. Một bot mới với code hoàn hảo vẫn thua nếu không có kết nối trực tiếp tới validator hoặc private mempool. Tôi chứng kiến nhiều đội nhóm chi 50 ETH cho vị trí validator gần nhất chỉ để giảm 10ms latency. Kết quả: họ kiếm lại chỉ trong 2 tuần. Trong khi đó, trader lẻ thường mua bot có sẵn trên GitHub, chạy trên VPS rẻ, và hy vọng kiếm tiền – đó là cách nhanh nhất để mất tiền.
Takeaway: DeFi arbitrage không phải trò chơi cho người mới. Tôi mất 3 ETH và 4 ngày debug để hiểu cơ chế MEV. Nhưng nếu hiểu đúng, bạn có thể xây bot tồn tại qua nhiều chu kỳ. Câu hỏi: bạn có sẵn sàng bỏ ra 100 giờ để viết code và 10 ETH để test? Nếu không, hãy mua ETF và ngủ ngon. Còn nếu vẫn muốn chơi, hãy nhớ: thanh khoản là cơ hội, nhưng cũng là cái bẫy.