Mỗi lần biên dịch lại là mỗi lần thả mồi mới.
Tuần trước, tôi lướt qua hợp đồng của một fan token mới – ARG2025 – được quảng cáo là “World Cup edition”. Chỉ cần nhìn vào hàm transfer là thấy ngay mùi quen thuộc: fee-on-transfer không được xử lý trong logic pool Uniswap V3. Một lỗi cổ điển, nhưng đội ngũ phát triển vẫn mắc. Tôi không ngạc nhiên. Mỗi khi World Cup đến gần, làn sóng token thể thao lại tràn vào, và với nó là hàng tá lỗ hổng được “thả mồi” cho bất kỳ ai biết đọc bytecode.
### Context: Cơn sốt fan token mùa World Cup Argentina vừa đánh bại Anh trong trận bán kết, Messi ghi bàn quyết định, và cộng đồng fan trên toàn cầu vỡ òa. Trên thị trường crypto, ARG fan token – do Socios phát hành năm 2022 – tăng vọt 45% chỉ trong 24 giờ. Nhưng điều tôi quan tâm không phải là biểu đồ giá, mà là cách các token này vận hành ở tầng giao thức. Fan token thường là ERC-20 đơn giản, nhưng khi được tích hợp vào DEX, yield farming, hoặc thậm chí là các sàn giao dịch tập trung, chúng bộc lộ hàng tá điểm mù.
Trong trường hợp ARG2025 – một token mới được tạo ra bởi một nhóm không rõ danh tính – tôi phát hiện ra rằng nhóm phát triển đã copy-paste mã từ một token hoa hồng (fee-on-transfer) cũ từ năm 2021, nhưng quên mất rằng Uniswap V3 sử dụng cơ chế tick và phí riêng. Kết quả? Bất kỳ ai swap token này trên pool V3 đều có thể bị mất tiền do số dư không đồng bộ.
### Core: Phân tích lỗ hổng – tick không phải là bạn của fee token Để hiểu rõ, hãy nhìn vào mã. Một token fee-on-transfer thường trừ một phần trăm khi chuyển, sau đó gửi số còn lại. Trong Uniswap V2, điều này được xử lý bằng cách cập nhật số dư trước khi tính toán đầu ra. Nhưng V3 có thêm lớp Tick và Position, nơi thanh khoản được tập trung. Nếu token chuyển vào pool ít hơn dự kiến (vì bị trừ phí), một phần thanh khoản sẽ bị mắc kẹt vĩnh viễn – cái mà dân audit gọi là “stuck liquidity”.
Tôi đã thử nghiệm trên một fork local của Ethereum mainnet với ARG2025. Kết quả: - Người dùng A swap 1000 token → pool nhận 950 (bị trừ 5% phí). - Hợp đồng pool ghi nhận số dư tăng 1000 (do token chuyển đến), nhưng thực tế chỉ có 950. - Swap ngược lại sẽ tính toán dựa trên số dư ảo, dẫn đến thiếu hụt và revert.

Lỗi này không mới. Tôi đã cảnh báo nó từ năm 2020 khi fork Uniswap V2 và phát hiện lỗi tương tự trên token hoa hồng. Bản chất vẫn vậy: các nhóm phát triển vẫn không học từ lịch sử. Mỗi lần biên dịch lại là mỗi lần thả mồi mới.
### Contrarian: Fan token càng hot, rủi ro càng cao Bạn nghĩ rằng fan token là cách “dân chủ hóa” sự hâm mộ? Sai. Chúng thực sự là một bề mặt tấn công mới cho những kẻ exploit. Khi cộng đồng đổ xô mua token vì Messi ghi bàn, thanh khoản trên DEX thường mỏng. Lợi dụng điều đó, hacker có thể dùng một lượng nhỏ token để trigger lỗi fee-on-transfer, làm pool mất cân bằng, sau đó dump token đã pump – một phiên bản tinh vi của sandwich attack.
Điểm mù ở đây là: hầu hết các dự án fan token không thuê auditor. Chi phí audit một hợp đồng đơn giản có thể từ 20.000 USD đến 50.000 USD. Nhóm phát triển thường nghĩ “chỉ là token fan, không có nhiều TVL nên an toàn”. Nhưng khi TVL đạt hàng triệu USD trong một đêm nhờ sự kiện thể thao, thì lỗ hổng đã tồn tại sẵn.
### Takeaway: Dự báo lỗ hổng – mùa World Cup là mùa của những cú “rug pull” có tổ chức Dựa trên kinh nghiệm audit của tôi, tôi dự đoán trong vòng 30 ngày tới, ít nhất 3 fan token liên quan đến World Cup sẽ bị exploit hoặc rug pull. Dấu hiệu: đội ngũ ẩn danh, mã nguồn đóng, và không có audit công khai. Nếu bạn đang hold fan token, hãy kiểm tra xem hợp đồng có bất kỳ logic fee hay owner có khả năng mint vô hạn không.
World Cup luôn mang đến cảm xúc mạnh mẽ – nhưng trên blockchain, cảm xúc là thứ dễ bị thao túng nhất. Messi có thể ghi bàn, nhưng code của bạn thì không. Và lần tới khi bạn thấy một token mới với cái tên “Argentina2025”, hãy nhớ: mỗi lần biên dịch lại là mỗi lần thả mồi mới.