Tôi không tin vào câu chuyện “phân mảnh thanh khoản” đang được các quỹ đầu tư mạnh tay quảng bá trong thị trường giảm này. Mỗi lần kiểm toán, tôi đều đặt câu hỏi: tại sao một giao thức có TVL hàng trăm triệu USD lại xây dựng cơ chế tập trung thanh khoản vào một pool duy nhất? Câu trả lời thường là “để tránh phân mảnh”. Nhưng nhìn vào mã nguồn của Giao thức Y – một nền tảng cho vay đa chuỗi mới ra mắt vào quý 3/2024 – tôi thấy điều ngược lại: chính thiết kế “chống phân mảnh” lại tạo ra điểm nghẽn tử thần.
Hook Block #19,847,231 trên Ethereum. Một giao dịch flash loan trị giá 12,000 ETH thực hiện cuộc tấn công vào pool thanh khoản duy nhất của Giao thức Y. Kết quả: 4.7 triệu USD bị rút sạch trong 3 block. Điều đáng nói: lỗ hổng không nằm ở hợp đồng cho vay, mà nằm ở chính cơ chế “gộp thanh khoản” mà đội ngũ phát triển tự hào là giải pháp cho vấn đề phân mảnh.
Context Giao thức Y ra mắt với lời hứa “thanh khoản thống nhất”: tất cả tài sản thế chấp được tập trung vào một pool duy nhất, thay vì nhiều pool riêng biệt cho từng cặp tài sản. Ý tưởng này được nhiều VC ủng hộ, cho rằng nó giải quyết triệt để vấn đề thanh khoản phân tán trên các giao thức DeFi khác. Tuy nhiên, dưới góc nhìn kỹ thuật, thiết kế này vi phạm nguyên tắc cơ bản về cô lập rủi ro (risk isolation). Khi tôi đào sâu vào mã nguồn của pool thanh khoản chính (PoolCore.sol), tôi phát hiện ra rằng việc tính toán lãi suất và tỷ lệ an toàn dựa trên một công thức duy nhất cho tất cả tài sản – bất kể tính thanh khoản thực tế của chúng.

Core Phân tích mã nguồn phiên bản v1.2.3, dòng 145-178 trong PoolCore.sol:
function getUtilizationRate() public view returns (uint256) {
uint256 totalBorrows = 0;
uint256 totalSupplies = 0;
for (uint256 i = 0; i < assetList.length; i++) {
totalBorrows += borrows[assetList[i]];
totalSupplies += supplies[assetList[i]];
}
return (totalBorrows * 1e18) / totalSupplies;
}
Công thức này gộp tất cả tài sản vào một tỷ lệ sử dụng duy nhất. Hậu quả: nếu một tài sản kém thanh khoản (ví dụ token SHIT) có tỷ lệ vay cao (80%), trong khi tài sản chính (ETH) chỉ vay 20%, thì tỷ lệ sử dụng tổng thể có thể rơi vào vùng an toàn (50%). Điều này che giấu rủi ro thực tế: pool SHIT đang cạn kiệt, nhưng giao thức vẫn cho phép vay thêm ETH dựa trên tài sản thế chấp là SHIT. Khi một tài sản yếu kéo sập toàn bộ hệ thống, đó là hậu quả trực tiếp của thiết kế chống phân mảnh.
Tôi đã kiểm tra một kịch bản tấn công: kẻ tấn công gửi một lượng lớn SHIT (token dễ thao túng giá) vào pool, vay ETH, sau đó dump SHIT khiến giá sụp đổ. Oracle trên hợp đồng (Chainlink) cập nhật giá SHIT giảm 90% sau 1 giờ. Trong khoảng thời gian đó, pool vẫn coi tài sản thế chấp là hợp lệ. Kết quả: kẻ tấn công rút được ETH trị giá gấp 5 lần tài sản thế chấp thực tế. Đây không phải lỗi oracle, mà là lỗi thiết kế tổng hợp: việc gộp chung thanh khoản khiến giao thức không thể áp dụng các tham số rủi ro riêng cho từng tài sản.
Contrarian Thị trường thường cho rằng phân mảnh thanh khoản là vấn đề cần giải quyết bằng cách gộp tất cả vào một pool. Nhưng thực tế, phân mảnh là một tính năng bảo vệ tự nhiên. Trong kiến trúc của Uniswap V3, mỗi cặp token có pool riêng, và thanh khoản tập trung cho phép các nhà cung cấp kiểm soát rủi ro độc lập. Khi một pool bị tấn công, các pool khác không bị ảnh hưởng. Giao thức Y đã hy sinh khả năng chống chịu này để đổi lấy hiệu quả vốn giả tạo. Sự thật ngược đời: chính câu chuyện “chống phân mảnh” là sản phẩm marketing của các VC muốn đẩy nhanh việc tích hợp tài sản vào một nền tảng duy nhất, bất chấp rủi ro kỹ thuật.
Takeaway Khi thị trường giảm, những thiết kế hy sinh an toàn để tối ưu hiệu quả sẽ bị lộ diện. Câu hỏi đặt ra: liệu chúng ta có đang chạy theo những câu chuyện được tài trợ bởi quỹ đầu tư, hay thực sự hiểu rõ trade-off giữa thanh khoản thống nhất và cô lập rủi ro? Giao thức Y chỉ là một ví dụ. Hãy tự kiểm tra mã nguồn trước khi tin vào bất kỳ lời hứa nào về “giải pháp thanh khoản”.