Sáng nay, một tweet từ nhóm LiquidSync khoe TVL chạm 100 triệu USD chỉ sau 48 giờ launch. Token SYNC tăng 300% trong 24h. Cộng đồng FOMO đổ vào pool thanh khoản. Nhưng tôi không nhìn vào chart. Tôi nhìn vào bytecode của hợp đồng hook mà họ vừa publish trên Etherscan. Và tôi thấy một điều khiến tôi nhớ lại lỗi ICO 2017 — điều mà tôi tưởng đã chết sau sự kiện The DAO.
LiquidSync là một DEX fork từ Uniswap V4, với một hook tùy chỉnh hứa hẹn “tự động tái cân bằng phí giao dịch để tối ưu hóa lợi suất cho LP”. Họ claim rằng hook này sử dụng cơ chế “dynamic fee adjustment” dựa trên biến động giá on-chain. Trong whitepaper, họ mô tả nó như một “phát minh đột phá”. Nhưng khi đọc code, tôi thấy nó chỉ là một bản copy từ một repo audit thất bại năm 2023 — với một lỗi reentrancy cổ điển được giấu trong hàm beforeSwap.
Hãy nhìn vào dòng 47-62 của file LiquidSyncHook.sol (mã nguồn đã được verify trên block explorer). Hàm _updateFee gọi external contract priceOracle để lấy giá mới. Nhưng priceOracle là một địa chỉ có thể thay đổi bởi owner — và không có bất kỳ reentrancy guard nào. Kẻ tấn công có thể deploy một oracle giả, gọi beforeSwap nhiều lần trong cùng một transaction, khiến pool tính phí sai hoặc thậm chí rút toàn bộ thanh khoản. Đây không phải là lỗi phức tạp. Đây là sơ đẳng bảo mật mà bất kỳ auditor nào cũng nhận ra ngay lập tức.
Tôi test thử trên local fork với một kịch bản tấn công đơn giản: dùng Remix tạo một hợp đồng oracle giả trả về giá luân phiên 0 và 1, rồi gọi swap liên tục. Kết quả: sau 3 lần reentrancy, pool mất 50% thanh khoản. Tôi đã gửi report cho team LiquidSync vào lúc 10h sáng. Họ trả lời lúc 11h: “Cảm ơn, chúng tôi sẽ fix.” Đến 2h chiều, họ deploy bản vá — nhưng không hề công bố lỗi công khai. TVL vẫn ở mức 95 triệu USD. Cộng đồng vẫn đang mua token.
Điểm mù ở đây không phải là kỹ thuật. Điểm mù là niềm tin mù quáng vào “audit” như một tấm vé thông hành. LiquidSync từng quảng cáo rằng họ đã được “hai công ty audit hàng đầu” kiểm tra. Nhưng tôi biết câu chuyện này: họ chỉ audit bản code trước khi thêm hook, còn hook được thêm sau như một bản nâng cấp “không cần audit lại”. Đây là lỗi phổ biến trong bull market — các đội ngũ vội vàng ship feature để bắt kịp hype, cắt bỏ quy trình kiểm tra. Tôi đã thấy điều này nhiều lần: từ ICO 2017, đến DeFi summer 2020, đến NFT mania 2021. Lịch sử không lặp lại, nhưng nó vần — và vần ở đây là “reentrancy”.
Vậy bài học là gì? Khi mọi người đều đang FOMO vào một dự án mới, hãy dành 30 phút để đọc code của hợp đồng chính. Không cần phải là chuyên gia — chỉ cần kiểm tra xem có hàm nào gọi external contract mà không có reentrancy guard không. Nếu có, hãy hỏi team: “Tại sao các bạn không dùng OpenZeppelin ReentrancyGuard?” Câu trả lời sẽ cho bạn biết mức độ chuyên nghiệp của họ. Và nếu họ trả lời “Chúng tôi đã audit rồi”, hãy nhớ: audit không phải là bảo hiểm, nó chỉ là một bức ảnh chụp tại một thời điểm. Thị trường tăng đang che giấu những lỗi như thế này. Nhưng một khi thị trường đảo chiều, chúng sẽ lộ ra. Và lúc đó, bạn sẽ không còn cơ hội để hỏi nữa.