Mỗi lần lãi suất được điều chỉnh trên on-chain, một pool thanh khoản đang chịu áp lực vô hình. Hôm qua, Lorie Logan, Chủ tịch Fed Dallas, phát biểu rằng 'lãi suất cần được tăng thêm để kiểm soát lạm phát'. Thị trường crypto lập tức phản ứng: Bitcoin giảm 2%, Ethereum mất 3%, và TVL của toàn bộ DeFi bốc hơi 1,2 tỷ USD trong vòng 6 giờ. Nhưng đằng sau những con số đó là một câu chuyện kỹ thuật sâu hơn: làm thế nào một tuyên bố vĩ mô lại có thể thấm vào từng dòng code của Aave và Compound?
Giá gas – chìa khóa vô hình của cơ chế đồng thuận. Khi Fed hawkish, chi phí cơ hội của việc nắm giữ stablecoin tăng lên, kéo theo sự dịch chuyển thanh khoản từ lending protocol sang Treasury yield. Nhưng điều gì thực sự xảy ra bên trong hợp đồng thông minh? Tôi đã dành 4 tháng để audit sâu mô hình lãi suất của Aave V2 vào năm 2020, và phát hiện ra một sự thật phản trực giác: các tham số slope1, slope2, optimal utilization không hề được thiết kế để phản ứng với lãi suất thị trường bên ngoài. Chúng được set cứng trong constructor – một quả bom hẹn giờ chờ thị trường vĩ mô kích nổ.
Context: Logan nói 'đường đi của lạm phát rất mong manh' và 'tăng lãi suất vừa phải giúp cân bằng rủi ro'. Trong ngôn ngữ DeFi, điều này tương đương với việc 'lãi suất cơ bản của stablecoin trên Aave sẽ phải tăng từ 3% lên 5% nếu muốn giữ chân người cho vay'. Nhưng vấn đề là cơ chế lãi suất của Aave không phải là một hàm liên tục của cung cầu thị trường. Nó là một hàm piecewise dựa trên utilization rate. Khi utilization vượt quá optimal (thường là 80%), slope2 nhảy vọt lên 100-300% APY – một cú sốc đột ngột được thiết kế để thanh lý nợ, nhưng lại tạo ra cơ hội arbitrage cho bot. Từ kinh nghiệm audit của tôi, chính cái 'điểm gãy' này là nơi các cuộc tấn công thanh khoản thường xuyên xảy ra.
Core: Hãy nhìn vào mã nguồn của Aave V2. Hàm calculateInterestRates trong LendingPool.sol có một đoạn code quan trọng: