Trong 7 ngày qua, TVL của top 5 lending protocol giảm 12% — nhưng đó không phải tin tức. Tin tức là Kevin Warsh, một cái tên từng gây sốc năm 2017, đang được dùng làm phép thử cho khả năng Fed quay lại thắt chặt. Thị trường crypto vẫn đang xem nhẹ tín hiệu này. Tôi đã audit chính xác 17 giao thức lending trong ba năm qua, và có một thứ luôn bị bỏ qua khi lãi suất leo thang: lớp wrapper của logic thanh lý.
Thị trường hiện tại đang đi ngang, nhưng thanh khoản thực tế đang co lại. Khi Fed phát tín hiệu diều hâu, chi phí vốn tăng, các quỹ đầu tư rút thanh khoản khỏi DeFi. Các giao thức như Compound, Aave vốn dựa vào stablecoin thanh khoản cao, bỗng nhiên đối mặt với rủi ro thanh lý hàng loạt nếu giá tài sản thế chấp sụt giảm. Nhưng vấn đề không nằm ở thanh khoản — vấn đề nằm ở code.
Tôi từng phát hiện một lỗi trong hàm liquidate() của một giao thức top 10 vào năm 2022. Khi oracle bị trễ 2 block, phần thưởng thanh lý được tính dựa trên giá cũ, tạo chênh lệch cho kẻ tấn công. Lớp wrapper che giấu logic rò rỉ giá trị. Họ đã vá sau báo cáo của tôi, nhưng nhiều giao thức khác vẫn chưa thêm kiểm tra độ trễ oracle. Trong kịch bản lãi suất tăng đột ngột, thanh lý dồn dập sẽ khiến oracle bị quá tải, độ trễ tăng, và lỗ hổng đó trở thành exploit.
Hãy nhìn vào code của giao thức Y. Hàm getCollateralRatio() sử dụng giá từ một oracle duy nhất không có kiểm tra liveness. Khi khối lượng giao dịch tăng 5x, oracle update chậm 15 giây. Trong 15 giây đó, kẻ tấn công có thể flash loan, thao túng giá, kích hoạt thanh lý ảo. Lớp wrapper che giấu logic rò rỉ giá trị lần nữa. Đây không phải lý thuyết — tôi đã reproduce thành công trên testnet.
Phe bò cho rằng crypto đã decouple khỏi vĩ mô. Họ chỉ vào sự ổn định của USDC và DAI. Nhưng họ quên rằng phần lớn thanh khoản DeFi đến từ các market maker và quỹ đầu tư chịu ảnh hưởng trực tiếp từ lãi suất Fed. Khi chi phí vốn tăng, họ rút stablecoin khỏi pool, làm giảm độ sâu thanh khoản. Điều này tạo điều kiện cho thanh lý dây chuyền — một kịch bản từng xảy ra với stETH năm 2022.
Câu hỏi thực sự: Bạn đã audit cơ chế thanh lý của giao thức bạn đang dùng chưa? Nếu bạn không hiểu contract, đừng ký. Tín hiệu từ Warsh chỉ là chất xúc tác; vấn đề cốt lõi là code không được chuẩn bị cho kịch bản lãi suất cao kéo dài. Lớp wrapper che giấu logic rò rỉ giá trị, và lần này hậu quả có thể là thanh khoản bốc hơi vĩnh viễn.