Tuần trước, một dự án DeFi Việt Nam mất 500 ETH — tương đương 1.5 triệu USD — chỉ sau 3 block. Nhóm phát triển đổ lỗi cho hacker. Tôi đọc contract, và thấy lỗi nằm ngay trong hàm withdraw. Đây không phải là lỗi của hacker. Là lỗi của chính họ.
Thị trường tăng đang kéo theo làn sóng dự án mới. Nhóm dev non trẻ, áp lực thời gian, và tham vọng ra mắt nhanh. Họ fork code từ Uniswap V2, thêm vài tính năng, deploy lên mainnet mà không qua audit độc lập. Kết quả: 500 ETH bay màu. Tôi đã cảnh báo điều này từ năm 2020 — khi tôi phát hiện lỗi reentrancy trong pool thanh khoản của YieldFarm. Lỗi tương tự, chỉ khác tên dự án.
Hợp đồng thông minh của dự án này sử dụng mô hình pull-over-push — người dùng gọi hàm withdraw, contract kiểm tra số dư, chuyển token, rồi cập nhật state. Nhưng thứ tự sai. Hacker chỉ cần deploy một contract tấn công, gọi withdraw, nhận ETH, kích hoạt fallback, gọi lại withdraw trước khi state được cập nhật. Reentrancy cổ điển. Dự án đã không implement reentrancy guard, một pattern đã tồn tại từ thời Ethereum đầu tiên. Lỗi ICO 2017? Tôi đã thấy trước điều đó.
Tôi đã phân tích transaction của hacker. Chỉ mất 3 block để rút hết pool. Công cụ phân tích static của tôi — mà tôi phát triển từ năm 2021 — có thể phát hiện lỗi này trong 10 giây. Nhóm dev chắc chắn không chạy bất kỳ fuzz test nào. Họ dựa hoàn toàn vào testnet manual, nơi chỉ có 10 user. Họ nghĩ rằng 'kiểm tra thủ công' là đủ. Sai lầm chết người.
Điều đáng nói: thị trường tăng đang che giấu rủi ro này. Khi giá token lên, không ai quan tâm đến bảo mật. Các dự án huy động triệu USD chỉ dựa trên whitepaper đẹp và roadmap vẽ. Tôi đã thấy pattern này nhiều lần. Năm 2017, TokenFlow gần như mất 500 ETH vì lỗi phân phối token mà tôi phát hiện. Họ may mắn vì audit được thực hiện trước ICO. Dự án lần này không có audit.
Niềm tin rằng 'hợp đồng thông minh là code không thể sửa' dẫn đến chủ quan. Nhưng thực tế, 90% lỗi DeFi là do logic sai, không phải do EVM hay Solidity. Reentrancy là lỗi đơn giản nhất, nhưng vẫn xuất hiện thường xuyên. Tôi viết framework audit DeFi từ năm 2020 để tự động hóa việc phát hiện các pattern lỗi phổ biến. Từ đó, tôi audit hơn 200 dự án, và chưa năm nào không gặp lỗi reentrancy. Năm nay, trong thị trường tăng, tần suất tăng gấp đôi.
Tôi không khuyên tất cả dự án đều phải audit. Nhưng nếu bạn deploy contract chứa hàng triệu USD, bạn cần ít nhất chạy fuzz test, static analysis, và kiểm tra bởi một auditor độc lập. Chi phí audit rẻ hơn nhiều so với mất 500 ETH. Và nếu bạn không có tiền audit, bạn không nên deploy. Blockchain không tha thứ cho sự cẩu thả.
Câu chuyện lần này kết thúc bằng một tweet từ nhóm dev: 'Chúng tôi sẽ refund cho người dùng.' Nhưng refund từ đâu? Quỹ dự án đã cạn. Họ kêu gọi cộng đồng donate. Điều này cho thấy một thực tế: họ không hiểu rủi ro ngay từ đầu. Họ nghĩ rằng bạn có thể build một protocol an toàn chỉ với enthusiasm. Sai. Bảo mật là discipline, không phải cảm xúc.
Vậy đâu là takeaway? Nếu bạn đang FOMO đầu tư vào một dự án DeFi Việt Nam, hãy đọc contract trước. Nếu bạn không đọc được, hãy tìm người audit. Và nếu dự án không publish audit report, hãy nghi ngờ. Tôi đã thấy hàng chục dự án sụp đổ vì một dòng code sai. 500 ETH chỉ là phần nổi của tảng băng. Năm 2025, khi ETF được chấp thuận và tổ chức tham gia, rủi ro còn lớn hơn. Tôi vừa hoàn thành audit cho một quỹ đầu tư lớn — họ yêu cầu tôi phát triển tool fuzz testing tự động cho staking contract. Tổ chức hiểu rủi ro. Còn retail investor, họ chỉ FOMO.
Hỡi các dev trẻ Việt Nam: nếu bạn không audit contract, bạn đang đốt tiền của người khác. Và nếu bạn deploy mà không có reentrancy guard, bạn đang — theo cách nói kỹ thuật — chơi với lửa. Tôi đã thấy đủ lửa để biết nó nóng thế nào. Lỗi ICO 2017? Tôi đã thấy trước điều đó. Và tôi vẫn thấy nó lặp lại. Đã đến lúc bạn phải dừng lại và kiểm tra code.