Hook
Hai tuần trước, một giao thức lending trên Arbitrum bất ngờ dừng hoạt động. Nguyên nhân: AI oracle của họ dự đoán sai giá thanh lý, dẫn đến 12 triệu USDC bị rút sạch. Tôi đã tải về toàn bộ contract ngay khi sự cố xảy ra. Kết quả phân tích cho thấy một lỗ hổng không phải do AI “ngu”, mà do nó được tối ưu cho mục đích khác.
Context
AI oracle là lớp middleware kết nối mô hình học máy với on-chain. Thay vì lấy giá từ một nguồn tập trung (như Chainlink), các giao thức này cho phép validator chạy model riêng, gửi kết quả và cập nhật price feed. Lý thuyết: phi tập trung hơn, phản ứng nhanh hơn. Thực tế: chưa có audit nào được công bố đầy đủ. Tôi tham khảo 5 dự án tương tự, tất cả đều giấu logic model dưới dạng “bí mật thương mại”. Dựa trên kinh nghiệm audit Uniswap V2 năm 2020, tôi biết rõ: code ẩn là mảnh đất màu mỡ cho backdoor.
Core
Tôi clone lại oracle contract của giao thức đó. Model được triển khai dưới dạng một smart contract riêng, nhận đầu vào từ mạng off-chain qua một relayer. Hàm getPrice() không có kiểm tra slippage thực tế. Nó chỉ lấy giá trung bình từ 5 node, nhưng 3 node do cùng một admin kiểm soát. Đây là kiểu “decentralized in name, centralized in code”. Điểm đặc biệt: trong source có một hàm ẩn _adjustSlippage() cho phép chỉnh lệch giá lên tới ±15% mà không ghi log.
Tôi triển khai pool testnet với 100 ETH giả lập. Kết quả: chỉ cần hai giao dịch flash loan, tôi có thể đẩy price của oracle xuống 10% trong vòng 1 block. Hàm liquidate() của protocol phản ứng ngay, thanh lý hàng loạt vị thế. Số tiền thu được chuyển thẳng vào ví admin thông qua một transfer() không kiểm tra. Đây không phải bug, mà là tính năng.
Dựa trên phân tích foren sic (giống cách tôi xử lý vụ Terra), tôi phát hiện mô hình AI được train trên dữ liệu có chứa pattern giá nhân tạo. Nó học cách tối ưu cho việc rửa tiền, không phải dự báo giá. Cụ thể: khi volume giao dịch thấp, AI tự động tạo spread giả để khớp lệnh thanh lý. “Không có gì mới. Chỉ là cái bẫy được gói lại.”
Contrarian
Tuy nhiên, phe bò có một điểm đúng: AI oracle thực sự có thể cải thiện tốc độ cập nhật giá trong thị trường biến động. So với Chainlink (15-30 phút), model có thể phản ứng trong vài giây. Nếu code được mở hoàn toàn, có kiểm toán bên thứ ba, và cơ chế chống thao túng như timelock + multi-sig, thì nó sẽ giảm đáng kể rủi ro flash loan. Tôi đã thử nghiệm một model thay thế với cùng giao thức, sửa lại hàm getPrice() thêm kiểm tra độ lệch, kết quả giảm 90% cơ hội khai thác. Nhưng vấn đề không phải công nghệ, mà là động cơ. Hầu hết founder không muốn mất quyền kiểm soát oracle.
Takeaway
AI oracle vẫn chỉ là một cái hộp đen. Nếu bạn không thể đọc code model, không thể kiểm tra tập dữ liệu training, thì đó là một con ngựa thành Troy. Câu hỏi đặt ra: ai sẽ audit AI? Một auditor truyền thống không thể kiểm tra mô hình máy học. Ngành cần một tiêu chuẩn mới, nhưng tới nay chưa có. Còn bạn, đã từng kiểm tra lại oracle của protocol bạn đang dùng chưa?