Bạn có tin nổi không? Một giao thức DeFi đang chạy ngon lành, TVL 200 triệu USD, bỗng dưng mất 500 ETH trong 3 phút. Không phải hack, không phải rug pull. Lỗi nằm ở thứ mà ai cũng nghĩ là an toàn: oracle feed. Tôi, Huỳnh Đức, đã theo dõi vụ việc này từ đầu tới cuối. Đây là câu chuyện của Aurora Finance – và bài học cho tất cả chúng ta.
Thị trường đang đi ngang. Mọi người đang chờ đợi một tín hiệu. Nhưng trong bóng tối của sự tích lũy, những con sóng ngầm đang cuộn trào. Aurora Finance, một giao thức lending trên Arbitrum, đã trở thành nạn nhân của chính kiến trúc mà nó tự hào: tính phi tập trung. Câu chuyện bắt đầu vào 2 giờ sáng, khi một bot arbitrage phát hiện độ trễ 15 giây giữa giá Chainlink và giá thị trường thực tế trên Uniswap v3.
Core: Cỗ máy thanh lý tự động
Tôi đã audit hợp đồng thông minh của Aurora – đó là một trong những dự án đầu tiên tôi làm sau khi rời học thuật. Cơ chế thanh lý của nó dựa trên oracle từ Chainlink, với một fallback đến Uniswap TWAP. Nhưng vấn đề là: độ trễ của Chainlink feed trong điều kiện thị trường biến động nhẹ (như hiện tại – giá ETH dao động 0.5% trong 24 giờ) bị bỏ qua. Bot đã lợi dụng điều đó. Nó vay 2000 ETH từ Aurora, dùng số ETH đó đẩy giá trên Uniswap xuống 2%, kích hoạt thanh lý hàng loạt các vị thế đang vay USDC. Trong 3 phút, 500 ETH bị thanh lý với giá thấp hơn thị trường 2%. Bot kiếm được 10 ETH lợi nhuận. Aurora mất 500 ETH từ thanh lý giá thấp.
Tôi đã từng viết cảnh báo về chính điều này vào năm 2023, sau vụ Cream Finance. Nhưng lúc đó, cộng đồng bảo tôi “FUD”. Giờ thì sao? Aurora Finance đã tạm dừng cho vay. Token AUR giảm 40% trong 2 giờ. Và câu chuyện vẫn chưa kết thúc.
Contrarian: Oracle không phải giải pháp, nó là vấn đề
Mọi người nghĩ Chainlink là thánh. Nhưng thực tế, độ trễ của oracle là gót chân Achilles của DeFi. Càng nhiều node, càng chậm. Càng chậm, càng dễ bị tấn công. Tôi đã nói điều này từ năm 2019: “Các node tập trung của Chainlink là nghịch lý của phi tập trung”. Và đây là minh chứng. Aurora đã dùng Chainlink vì nó “an toàn nhất”. Nhưng “an toàn nhất” trong DeFi là một cái bẫy. Bởi vì không có thứ gì là an toàn tuyệt đối. Bot có thể exploit độ trễ trong bất kỳ oracle nào, chỉ cần có thanh khoản đủ lớn.
Tôi nhìn thấy điều này từ kinh nghiệm audit của mình: hầu hết các giao thức đều không có cơ chế kiểm tra độ chính xác của oracle trong thời gian thực. Họ chỉ dựa vào giá trị trung bình của nhiều nguồn. Nhưng nếu tất cả nguồn đều chậm, thì trung bình cũng chỉ là sự chậm trễ đồng thuận. Aurora đã thất bại vì họ không code được một lớp bảo vệ: nếu chênh lệch giá giữa Chainlink và Uniswap TWAP vượt quá 0.5%, hãy tạm dừng thanh lý. Đó là một dòng code đơn giản. Nhưng họ bỏ qua.
Takeaway: Bài học về sự thận trọng
Vậy, sau vụ Aurora, chúng ta học được gì? Đừng bao giờ tin oracle một cách mù quáng. Hãy thiết kế giao thức của bạn với giả định rằng oracle sẽ thất bại. Và nếu bạn là nhà đầu tư đang nhìn vào TVL 200 triệu USD, hãy nhìn vào thứ mà ít người để ý: code of the oracle fallback. Bởi vì trong thị trường đi ngang này, những kẻ săn mồi như bot vẫn đang rình rập. Và khi bạn không nhìn thấy biến động, đó chính là lúc nguy hiểm nhất.
Câu hỏi còn lại: Liệu Aurora Finance có sống sót? Hay nó sẽ trở thành một câu chuyện cảnh báo tiếp theo trong bộ sưu tập những thất bại DeFi? Tôi không biết. Nhưng tôi biết một điều: lần tới khi bạn thấy một giao thức “an toàn”, hãy đặt câu hỏi: An toàn cho ai?