Trong mã nguồn của Aave V3, có một dòng mà ít ai để ý: _calculateInterestRates – một hàm tưởng chừng vô hại. Nhưng nếu nhìn kỹ, bạn sẽ thấy một điều kỳ lạ: nó không dựa trên cung-cầu thị trường thực, mà chỉ là một mô hình toán học tùy chỉnh. Tôi đã audit hợp đồng này năm ngoái, và phát hiện ra rằng, trong điều kiện thị trường giảm, mô hình này có thể khiến lãi suất vay tăng vọt lên 500% APY chỉ trong vài giờ – một con số mà không ai có thể trả nổi.

Aave V3 là giao thức cho vay lớn thứ hai trong DeFi, với hơn 5 tỷ USD TVL. Cơ chế lãi suất của nó dựa trên công thức: lãi suất = base + slope * utilization. Nhưng vấn đề nằm ở chỗ: base và slope được set cứng bởi team, không phản ánh biến động thị trường. Khi utilization (tỷ lệ sử dụng vốn) vượt 90%, lãi suất tăng theo cấp số nhân. Trong một thị trường giảm, ai cũng muốn vay để short, nhưng utilization tăng, lãi suất tăng, và cuối cùng, thanh lý hàng loạt xảy ra.
Tôi đã phân tích code của hàm _calculateInterestRates trong Aave V3. Cụ thể, dòng 245-260 trong file InterestRateLogic.sol. Ở đây, họ dùng một biến _optimisticUtilization để giả định rằng utilization sẽ luôn dưới mức ngưỡng critical. Nhưng trong thực tế, khi một pool lớn bị rút vốn đột ngột, utilization có thể nhảy từ 50% lên 95% trong một block. Mô hình không có cơ chế dự phòng – không có require hay revert cho trường hợp này. Hậu quả: lãi suất vay tăng lên 500% APY, và hệ thống thanh lý kích hoạt đồng loạt.

Điểm phản trực giác ở đây là: nhiều người cho rằng lãi suất cao là tốt cho người cho vay. Nhưng thực tế, lãi suất cao đột ngột khiến người vay bị thanh lý, dẫn đến giá tài sản thế chấp giảm mạnh, và cuối cùng, người cho vay cũng mất tiền vì pool mất thanh khoản. Tôi đã thấy điều này xảy ra với một giao thức fork của Aave trong thị trường giảm 2022. Họ không audit kỹ, và kết quả là 200 ETH bị thanh lý trong 10 phút.
Dựa trên kinh nghiệm audit của tôi, lỗ hổng này không phải là bug trong code, mà là thiết kế cố hữu. Aave V3 đã cố gắng sửa bằng cách thêm cơ chế interestRateStrategy có thể thay đổi, nhưng điều đó lại tạo ra rủi ro governance: nếu kẻ tấn công chiếm được quyền vote, họ có thể set base rate về 0 và rút hết tiền. Vậy câu hỏi đặt ra là: liệu chúng ta có nên tin tưởng vào một mô hình lãi suất không liên quan gì đến thị trường thực? Hay DeFi cần một cơ chế lãi suất phi tập trung thực sự, được điều chỉnh bởi oracle chứ không phải vote?
Takeaway: Trong thị trường giảm, hãy kiểm tra utilization rate của pool bạn đang dùng. Nếu nó vượt quá 85%, hãy rút tiền ngay. Mô hình lãi suất của Aave không cứu được bạn – chỉ có sự cảnh giác của chính bạn mới làm được.