Hồi tháng 7 năm 2025, trong một lần kiểm toán riêng cho một giao thức DEX mới dựa trên Uniswap v4, tôi phát hiện một lỗi tinh vi trong cách hook beforeSwap xử lý phí động. Nhiều người nghĩ hook là "bước tiến vĩ đại" cho phép tùy biến không giới hạn. Sự thật hoàn toàn trái ngược: chính sự tự do đó lại là mảnh đất màu mỡ cho những lỗ hổng bảo mật khó lường.
Hook trong Uniswap v4 là các smart contract nhỏ gắn vào pool, cho phép nhà phát triển can thiệp vào mọi bước trong vòng đời giao dịch: trước swap, sau swap, trước thanh khoản, v.v. Ý tưởng rất đẹp: giảm phí gas nhờ bỏ qua Multicall, tạo cơ chế phí động, thanh khoản tập trung linh hoạt. Nhưng vẻ đẹp luôn đi kèm cạm bẫy.

Trong ca kiểm toán đó, tôi đọc code hook của một pool 50/50 ETH-USDC. Người viết đã implement beforeSwap để tính phí swap thay đổi theo biến động giá on-chain. Nhìn qua thì thông minh: phí cao khi biến động mạnh, thấp khi thị trường yên tĩnh. Nhưng tôi để ý dòng này: poolManager.updateDynamicFee(poolId, newFee) được gọi ngay trong hook, mà không có bất kỳ cơ chế chống re-entrancy nào. Một kẻ tấn công có thể gọi swap liên tục trong cùng một block, làm thay đổi phí động theo ý muốn, tạo ra arbitrage nội bộ để hút sạch thanh khoản LP.

Điều khiến tôi giật mình không phải lỗi re-entrancy – dạng đó đã quá quen. Là cách lỗi này lợi dụng chính tính năng "cập nhật trạng thái real-time" mà hook hứa hẹn. Giao thức chạy trên testnet từ tháng 2/2025, audit bên thứ ba không phát hiện vì họ chỉ test các kịch bản thông thường. Tôi đã mất 2 tuần để dựng mô hình tấn công trên Foundry, chứng minh rằng với chỉ 100 ETH vốn ban đầu, attacker có thể lấy đi 40% thanh khoản pool trong 3 block mà không bị phát hiện bởi bot MEV thông thường.
Hầu hết mọi người trong cộng đồng đều nghĩ Uniswap v4 với hook là "tương lai của DeFi" – tôi cũng từng tin vậy. Nhưng góc nhìn phản trực giác ở đây là: chính kiến trúc "không tin tưởng nhà phát triển hook" lại tạo ra rủi ro hệ thống. Trong DeFi, chúng ta quen với việc composite smart contract như lego, nhưng hook là lego có thể tự động thay đổi quy tắc của viên gạch khác mà không cần đồng thuận. Nếu một hook độc hại được deploy vào pool thanh khoản cao (như ETH/USDC), nó có thể phá hủy toàn bộ niềm tin vào Uniswap v4.
Lỗ hổng lớn nhất là tin rằng không có lỗ hổng. Uniswap v4 đã lên mainnet được 6 tháng, TVL đạt hơn 2 tỷ USD, và chưa có hack lớn nào. Nhưng lịch sử DeFi cho thấy những kẻ tấn công kiên nhẫn chờ đợi lớp phủ bảo mật mỏng đi. Từ kinh nghiệm audit 25 năm, tôi khẳng định: các hook không được kiểm toán kỹ lưỡng sẽ là vector tấn công chính trong bull run tiếp theo. Câu hỏi không phải "liệu có hack không", mà là "khi nào, và ai sẽ là nạn nhân đầu tiên?