Sự thật nằm ngoài dữ liệu, trong cấu trúc của nó.
Hãy nhìn vào con số: trong 7 ngày qua, hơn 120 triệu USD thanh lý trên Aave v3 Ethereum. Nhưng nếu bạn chỉ nhìn vào tổng số, bạn sẽ bỏ lỡ điều thú vị nhất. Tôi đã dành 3 ngày để reverse-engineer cơ chế tính lãi suất của Aave v3 từ hợp đồng thông minh, và phát hiện ra một điều kỳ lạ: lãi suất biến động không phải vì cung cầu thị trường, mà vì một hằng số ẩn trong công thức.
Context:
Aave v3 sử dụng mô hình lãi suất dựa trên tỷ lệ sử dụng (utilization rate). Công thức cơ bản: nếu utilization rate dưới ngưỡng tối ưu (thường 80%), lãi suất vay tăng tuyến tính chậm; khi vượt quá, lãi suất tăng đột ngột theo hàm mũ. Mục tiêu là khuyến khích người dùng cung cấp thanh khoản khi thị trường căng thẳng. Nhưng vấn đề nằm ở chỗ các tham số (slope1, slope2, optimal utilization) được hardcode và không thay đổi theo điều kiện thị trường thực tế. Đây là một thiết kế tùy tiện mà tôi đã chỉ trích từ năm 2020 khi audit Compound v2.
Core:
Hãy mở mã nguồn Aave v3 tại Pool.sol. Dòng 156-170 định nghĩa hàm calculateInterestRates. Tôi đã trace từng bước: