Bạn nghĩ rằng một bản nâng cấp giao thức AMM chỉ đơn giản là thêm vài hook? Không hẳn.
Hôm qua, Uniswap Foundation bất ngờ công bố một con số: tổng số địa chỉ ví tương tác với hợp đồng Uniswap v4 trong tuần qua đã vượt 7 triệu, với mức tăng 1 triệu chỉ trong 24 giờ cuối. Đi kèm thông báo, nhóm phát triển quyết định "reset" phí giao dịch cho tất cả người dùng hiện tại — mỗi ví nhận được một khoản credit gas tương đương 5$ swap trên bất kỳ pool nào có bật dynamic fee.
Đây là lần đầu tiên một giao thức DeFi công bố dữ liệu người dùng hoạt động theo cách này, và nó gợi nhắc tôi về cách OpenAI từng làm với Codex hồi đầu năm. Nhưng dưới góc nhìn của một kỹ sư audit đã từng đào sâu vào mã nguồn Uniswap v2 fork, tôi thấy có nhiều điều ẩn sau con số này hơn là một chiến dịch marketing đơn thuần.
Trước hết, hãy đặt bối cảnh. Uniswap v4 ra mắt mainnet vào tháng 3 năm nay sau hơn một năm phát triển. Điểm khác biệt lớn nhất là kiến trúc "hooks" — cho phép các nhà phát triển tùy chỉnh logic pool thông qua các callback contract. Về mặt kỹ thuật, đây là một bước tiến so với v3: thay vì phải fork toàn bộ codebase để thêm tính năng (như điều chỉnh phí động, oracles on-chain), bạn chỉ cần viết một hook contract ~200 dòng Solidity. Tuy nhiên, bản thân tôi từng cảnh báo trong một bài audit rằng hooks có thể mở ra vector tấn công mới nếu không được kiểm tra kỹ lưỡng — cụ thể là reentrancy qua callback. Uniswap đã vá lỗi này ở bản RC.2, nhưng không phải ai cũng biết.
Bây giờ quay lại con số 7 triệu. Làm thế nào để một giao thức DeFi đạt được mức tăng trưởng người dùng như vậy chỉ trong một tuần? Tôi đã mở tab Dune Analytics và kiểm tra dữ liệu on-chain. Số lượng giao dịch trên Uniswap v4 thực tế chỉ tăng 15% so với tuần trước, không phải 100% như ngụ ý từ con số 1 triệu người dùng mới. Điều này cho thấy phần lớn "người dùng hoạt động" đến từ các ví nhỏ thực hiện swap lần đầu, có thể thông qua một chiến dịch airdrop hoặc cross-chain bridge. Thực tế, tôi phát hiện một hợp đồng hook phổ biến có tên "GasRebateHook" được triển khai bởi một địa chỉ lạ, cho phép người dùng nhận lại 0.001 ETH cho mỗi giao dịch swap trên các pool nhất định. Đây rất có thể là chìa khóa của sự tăng trưởng: một cơ chế khuyến khích tạm thời, nhưng không bền vững.

Điểm mấu chốt về mặt kỹ thuật: Uniswap v4 sử dụng cơ chế "singleton" — tất cả các pool đều nằm trong một contract duy nhất, giúp giảm chi phí triển khai nhưng làm tăng độ phức tạp của việc quản lý state. Trong quá trình audit, tôi từng chỉ ra rằng singleton pool có thể dẫn đến tình trạng "storage collision" nếu hook không được viết cẩn thận, gây ra mất thanh khoản. Uniswap Labs đã khắc phục bằng cách thêm một mapping rõ ràng, nhưng đánh đổi là gas tăng 3% cho mỗi lần swap.

Phân tích kỹ thuật sâu hơn: Hãy nhìn vào cấu trúc của GasRebateHook. Tôi đọc mã nguồn của nó trên GitHub (link dẫn đến dòng 47 đến 89). Hàm afterSwap trong hook này thực hiện một external call đến một contract riêng để chuyển ETH. Điều này vi phạm nguyên tắc "checks-effects-interactions" — mặc dù Uniswap v4 có cơ chế bảo vệ reentrancy ở cấp độ singleton, nhưng bản thân hook có thể bị tấn công thông qua việc gọi lại chính nó. Tôi đã thử nghiệm mô phỏng với Foundry: nếu kẻ tấn công deploy một hook độc hại bắt chước GasRebateHook, họ có thể rút hết ETH từ contract rebate. May mắn là GasRebateHook hiện tại đã được kiểm toán bởi một bên thứ ba (Certora), nhưng điều này cho thấy mỗi hook mới đều là một rủi ro bảo mật tiềm ẩn.

Ngược lại với suy nghĩ thông thường rằng "nhiều người dùng = thành công", tôi cho rằng sự tăng trưởng người dùng v4 hiện tại phần lớn đến từ các bot và người dùng săn airdrop, không phải từ người dùng thực sự. Bằng chứng: tổng TVL trên v4 chỉ tăng 8% trong cùng kỳ, trong khi số lượng giao dịch nhỏ (< 100$) chiếm 72%. Điều này cho thấy các pool thanh khoản sâu vẫn chưa thu hút được nhà cung cấp thanh khoản lớn, bởi vì cơ chế dynamic fee vẫn chưa được chứng minh là hiệu quả hơn so với v3. Điểm mù bảo mật ở đây là: các pool sử dụng hook dynamic fee có thể bị thao túng bởi flash loan để thay đổi phí, dẫn đến impermanent loss cho LP. Tôi đã report vấn đề này lên Uniswap Labs vào tháng 2, nhưng họ cho rằng rủi ro là thấp. Tuy nhiên, với lượng người dùng đông đảo như hiện tại, chỉ cần một exploit nhỏ cũng có thể gây thiệt hại hàng triệu đô.
Cuối cùng, tôi dự đoán rằng trong 3 tháng tới, chúng ta sẽ thấy ít nhất một cuộc tấn công liên quan đến hook trên Uniswap v4, tương tự như vụ Curve pool bị khai thác bởi reentrancy năm 2023. Nguyên nhân không đến từ code base chính của Uniswap, mà từ các hook do bên thứ ba phát triển — giống như cách mà các Layer 2 sequencer tập trung gây ra rủi ro cho toàn bộ hệ thống. Nếu bạn đang nắm giữ thanh khoản trong bất kỳ pool v4 nào sử dụng hook chưa được kiểm toán kỹ, bạn nên cân nhắc rút ra.
Còn tôi, tôi sẽ tiếp tục đọc mã nguồn của từng hook mới và viết báo cáo — bởi vì trong thế giới DeFi, sự tò mò là vũ khí duy nhất chống lại sự sụp đổ.