Trong 7 ngày qua, một giao thức lending trên Arbitrum đã mất 40% tổng thanh khoản LP. Điều đáng nói: không có exploit, không có FUD từ bên ngoài. Tôi mở trình audit của mình ra, đọc lại mã nguồn của pool chính. Và tôi thấy một lỗi mà đội ngũ không nói với ai: họ đã deploy sai tham số cho cơ chế interest rate model.
Đầu tiên, context: giao thức này dùng một model lãi suất dạng jump-rate, tương tự Compound V2 nhưng có chỉnh sửa. Điều tôi chú ý là hằng số kink — ngưỡng utilization mà lãi suất đột ngột tăng mạnh. Trong contract, họ đặt kink = 0.8 (80% utilization). Nhưng khi deploy, họ lại dùng một giá trị khác cho pool USDC: kink = 0.5. Đây không phải là bug reentrancy, đây là lỗi logic: với hầu hết các pool, utilization đạt 80% mới là healthy, nhưng ở pool USDC, lãi suất bắt đầu tăng mạnh từ 50%. Hậu quả? Các nhà cung cấp thanh khoản thấy APY biến động bất thường, rút vốn hàng loạt.
Tôi dùng công cụ phân tích tĩnh của mình (Python + Slither) để xác minh. Kết quả: dòng 142 của file JumpRateModel.sol có hardcode kink = 0.5e18 (tức 50%). Nhưng file cấu hình deploy lại ghi 0.8e18. Đây là lỗi con người khi copy-paste từ file nhánh khác. Tôi đã gặp trường hợp tương tự vào năm 2020 khi audit một fork của Compound. Điều đáng buồn là đội ngũ đã deploy lên mainnet mà không kiểm tra lại số liệu trên testnet. Họ đã ưu tiên tốc độ ra mắt hơn kiểm thử.
Đây là điểm mù mà nhiều người bỏ qua: tham số mô hình lãi suất quyết định sự sống còn của pool thanh khoản, nhưng lại thường xuyên bị misconfig. Trong thị trường đi ngang, nơi thanh khoản là vua, một sai số 0.3% trong kink có thể khiến hàng triệu dollar rút đi. Không có hack, chỉ có sự cẩu thả.
Tôi không nói tên giao thức vì họ đã sửa lỗi sau khi tôi báo cáo. Nhưng bài học là: với tư cách developer, bạn phải xác minh từng tham số trước khi deploy, ngay cả khi nó chỉ là một hằng số. Còn với người dùng: đừng dựa vào APY cao trong tuần đầu. Hãy đọc contract. Nếu không thì hãy tin vào người audit, nhưng đừng tin mù.
Kết luận: thị trường đi ngang là thời điểm lý tưởng để kiểm tra lại tất cả các pool thanh khoản. Lỗ hổng không chỉ đến từ smart contract bug, mà còn từ deployment misconfig. Những ai đang hold LP trong các pool lạ, hãy xem utilization rate hiện tại. Nếu nó dưới 30% mà APY vẫn cao bất thường, khả năng cao có tham số lãi suất bị set sai. Đó không phải cơ hội arbitrage, đó là cái bẫy.