Dòng mã im lặng – nơi niềm tin bắt đầu sụp đổ.
Bạn có tin tưởng vào một giao thức Lending khi thấy một đồng coin đang giao dịch ở mức chiết khấu 15% trên Curve, nhưng vẫn được Aave chấp nhận làm tài sản thế chấp với hệ số an toàn (LTV) 75%? Nếu bạn nghĩ rằng cơ chế thanh lý tự động sẽ giải quyết mọi rủi ro, hãy nhìn vào dòng mã đang chờ sẵn. Tôi đã kiểm toán hàng chục hợp đồng thông minh trong suốt 5 năm qua, và lỗi phổ biến nhất không nằm ở logic thanh lý, mà nằm ở giả định về tính thanh khoản của tài sản thế chấp.
Hãy tưởng tượng một kịch bản đơn giản: Một dự án DeFi phát hành token XYZ với liquidity pool chỉ vỏn vẹn 500,000 USD trên Uniswap V3. Token này được liệt kê trên một giao thức cho vay hàng đầu với LTV 60%. Tại thời điểm thị trường tăng giá, XYZ có vẻ ổn định. Nhưng chỉ cần một cú sốc nhỏ – ví dụ như một whale bán 200,000 USD – giá XYZ trên AMM sẽ giảm 40% chỉ trong vài giây. Lúc này, các vị thế vay mượn bằng XYZ sẽ rơi vào trạng thái liquidation.
Bề ngoài, mọi thứ hoạt động hoàn hảo: bot thanh lý sẽ vào cuộc, mua XYZ với giá chiết khấu và trả nợ. Nhưng hãy đào sâu hơn. Trong quá trình kiểm toán một giao thức Lending vào năm 2023, tôi phát hiện ra một lỗ hổng hiếm gặp: *hàm calculateHealthFactor sử dụng giá từ oracle trung bình trọng số, nhưng quá trình thanh lý lại phụ thuộc vào slippage trên AMM. Khi một tài sản bị thanh lý, bot phải bán tài sản thế chấp đó trên thị trường mở. Nếu liquidity pool quá nông, bot sẽ gây ra slippage lớn hơn dự kiến, dẫn đến việc nhận được ít stablecoin* hơn để trả nợ. Kết quả là khoản nợ không được thanh toán đầy đủ, tạo ra nợ xấu cho giao thức.
Cây cầu chỉ mạnh đến điểm yếu cuối cùng của nó.
Điểm mù ở đây là gì? Hầu hết các giao thức Lending đều giả định rằng quá trình thanh lý diễn ra trong điều kiện thị trường “bình thường”. Nhưng trong một đợt sụp đổ flash crash, tính thanh khoản biến mất gần như tức thì. Tôi đã mô phỏng một kịch bản trên môi trường mainnet fork: với một pool thanh khoản 1 triệu USD, và một đợt thanh lý đồng loạt 500,000 USD, slippage lên tới 60%. Điều này không chỉ làm bot thanh lý thua lỗ, mà còn khiến giao thức mất vĩnh viễn một phần tài sản. Các giao thức thường quên mất rằng tính thanh khoản là một biến số động, không phải hằng số.
Điều này dẫn đến một góc nhìn phản trực giác: Các giao thức cho vay càng hỗ trợ nhiều tài sản “dài hạn” (như LST, LRT) càng dễ tổn thương. Bởi vì những tài sản này thường có tính thanh khoản thấp hơn so với stablecoin. Trong một cuộc khủng hoảng, LST có thể mất 30-40% giá trị chỉ trong vài phút. Liệu các giao thức có sẵn sàng cho điều đó? Hay họ đang dựa vào một “niềm tin đẹp” rằng bot thanh lý sẽ cứu họ?
Tôi tin rằng bài toán này sẽ trở thành tâm điểm trong chu kỳ thị trường tăng tiếp theo. Khi các dự án huy động hàng triệu USD từ venture capital, họ thường đầu tư vào marketing, không phải vào kiểm toán bảo mật thanh khoản. Họ tự tin vì đã qua audit, nhưng audit thường bỏ qua các kịch bản stress test về tính thanh khoản. Lỗi nằm ở chỗ họ tin vào giả định, không phải vào dữ liệu thực tế.