Phân Tích Hook của Uniswap v4: Thiết Kế Kiến Trúc, Lỗ Hổng Phổ Biến và Thực Hành Phòng Ngừa
Kể từ khi Uniswap v4 ra mắt mainnet, cơ chế Hook đã trở thành một trong những đổi mới được chú ý nhất trong DeFi. Bài viết này phân tích kiến trúc Hook của Uniswap v4, các lỗ hổng bảo mật phổ biến và thực hành phòng ngừa.
Trọng tâm của v4 là hợp đồng PoolManager đơn lẻ và mô hình unlock/callback. Mọi thay đổi trạng thái pool phải thông qua PoolManager.unlock(), với ràng buộc then chốt là NonzeroDeltaCount phải bằng 0 khi kết thúc giao dịch. Mỗi pool được liên kết với một hợp đồng Hook cố định, được PoolManager gọi lại tại các điểm sự kiện quan trọng (ví dụ: beforeSwap, afterAddLiquidity). Quyền hạn của Hook được mã hóa trong 14 bit thấp của địa chỉ triển khai, đòi hỏi phải tính toán cẩn thận bằng công cụ như HookMiner.
Bài viết chỉ ra nhiều lỗ hổng và điểm rủi ro tiềm ẩn:
- **Kiểm soát truy cập thiếu sót:** BaseHook ban đầu chỉ bảo vệ unlockCallback(), để các hàm hook khác (beforeSwap, afterSwap...) không có bảo vệ, cần được triển khai thủ công.
- **Ràng buộc pool lỏng lẻo:** PoolManager không giới hạn việc một Hook có thể được sử dụng cho nhiều pool. Hook cần tự triển khai whitelist hoặc cơ chế ràng buộc đơn pool trong beforeInitialize.
- **Async/Custom Curve Hook rủi ro cao:** Hook có thể chặn toàn bộ số lượng swap (bằng cách trả về delta phủ định), thay thế hoàn toàn logic swap gốc của Uniswap, trở thành một hợp đồng tài chính tự trị cần được kiểm toán cực kỳ nghiêm ngặt.
- **Kế toán Delta chỉ đảm bảo "bảo toàn", không đảm bảo "chính xác":** NonzeroDeltaCount == 0 đảm bảo sổ sách cân bằng cuối kỳ, nhưng không ngăn nội dung sổ sách bị thao túng độc hại.
- **Nhầm lẫn loại token:** Khi giao thức cho phép người dùng tạo thị trường, việc xác thực ngữ nghĩa token là bắt buộc, không thể chỉ dựa vào kiểm tra interface.
Sự cố bảo mật của Cork Protocol được nêu làm ví dụ, cho thấy sự phức tạp trong kiểm toán Hook v4: mỗi Hook là một vùng tin cậy độc lập, và việc kiểm toán phải bao quát toàn bộ "giao thức con" tương tác phức tạp, chứ không chỉ riêng mã hợp đồng Hook. Sự thay đổi này đòi hỏi nâng cấp phương pháp luận từ cả phía dự án và nhà kiểm toán.
marsbit2 ngày trước 08:08