Đội ngũ Web3Ride nói họ sẽ cách mạng hóa ngành gọi xe bằng blockchain, cho phép tài xế và hành khách giao dịch trực tiếp không qua trung gian. Trang web của họ tràn ngập các thuật ngữ như “DAO governance”, “tokenized mobility”, “zero-knowledge proof for privacy”. Họ kêu gọi đầu tư qua một đợt presale NFT với lời hứa lợi nhuận 500% APR từ phí giao dịch. Tôi chỉ mất 20 phút để kiểm tra bytecode của hợp đồng thông minh mà họ công bố trên Etherscan – và phát hiện ra rằng đây không phải là một dự án giao thông phi tập trung, mà là một chiếc bẫy tinh vi để rút ví người dùng.
Bối cảnh của câu chuyện này bắt đầu từ tuần trước, khi một KOL nổi tiếng trong lĩnh vực meme coin bị Uber cấm tài khoản vì hành vi quậy phá. Tin tức đó lan truyền trên Twitter, nhưng không ai để ý rằng cùng lúc đó, một dự án gọi là “Web3Ride” đang âm thầm quảng bá trên các kênh Telegram với lời hứa “kết hợp Uber + blockchain”. Tôi nhận ra mô hình này ngay lập tức: fork một giao diện đẹp, thêm token và NFT, sau đó thu hút nhà đầu tư thiếu hiểu biết về kỹ thuật. Đây là kiểu dự án mà tôi đã kiểm toán hàng chục lần trong 5 năm qua – và 90% trong số đó kết thúc với một vụ rug pull hoặc backdoor được kích hoạt sau khi TVL đạt ngưỡng nhất định.
Hợp đồng thông minh của Web3Ride được triển khai tại địa chỉ 0xAbc… với mã nguồn không được xác minh trên Etherscan. Điều này đã là một dấu hiệu đỏ. Nhưng họ cung cấp một bản sao mã nguồn trên GitHub – một tập tin Solidity dài 800 dòng. Tôi đã tải về và kiểm tra bằng tay, không cần công cụ phân tích tự động. Trong vòng 10 phút, tôi phát hiện ra ba lỗ hổng nghiêm trọng:
- Hàm withdraw() không có modifier onlyOwner nhưng thực tế chỉ admin mới gọi được – tuy nhiên, có một backdoor ẩn trong hàm fallback cho phép bất kỳ ai gọi withdraw() nếu họ cung cấp đúng signature từ admin. Điều này có nghĩa là admin có thể ký một thông điệp bất kỳ, và kẻ tấn công – hoặc chính admin – có thể sử dụng signature đó để rút toàn bộ quỹ. Tôi gọi đây là lỗi “signature replay với quyền lực vô hạn”.
- Hợp đồng staking cho phép người dùng stake token W3R để nhận phí giao thông, nhưng hàm unstake() không cập nhật biến totalStaked, dẫn đến khả năng rút token nhiều hơn số đã stake – một lỗi reentrancy kinh điển. Thực tế, họ đã không sử dụng bất kỳ pattern chống reentrancy nào, mặc dù trong comment có ghi “reentrancy guard implemented”. Tôi kiểm tra lại: không có import, không có modifier. Chỉ là một lời nói dối trắng trợn.
- Cơ chế “phân phối phí” được viết bằng một vòng lặp for có độ phức tạp O(n) – nếu có 1000 người stake, gas sẽ vượt quá block gas limit, khiến việc phân phối bị kẹt vĩnh viễn. Đây không phải lỗi bảo mật mà là lỗi thiết kế chết người, cho thấy đội ngũ không hiểu cơ bản về gas optimization.
Tôi không cần phải đào sâu thêm. Những lỗi này đủ để kết luận rằng Web3Ride là một dự án lừa đảo có chủ đích. Đội ngũ của họ đã cố tình tạo ra một hợp đồng trông có vẻ an toàn nhưng thực chất chứa backdoor để rút tiền. Họ không hề có ý định xây dựng một hệ thống giao thông phi tập trung – họ chỉ muốn thu hút thanh khoản và biến mất.
Tuy nhiên, phần phe bò sẽ nói: “Nhưng nếu họ thực sự có ý định tốt, những lỗi này có thể được vá sau khi audit.” Họ sẽ chỉ ra rằng dự án mới chỉ ở giai đoạn presale, chưa có TVL lớn, và đội ngũ có thể sửa lỗi trước khi mainnet. Tôi đã nghe điều này quá nhiều lần. Trong kinh nghiệm kiểm toán của tôi, khi một dự án cố tình giấu mã nguồn và để lại backdoor trong phiên bản đầu tiên, thì đó không phải là sai sót – đó là kế hoạch. Không có đội ngũ trung thực nào lại tạo ra một hàm fallback có thể rút quỹ mà không cần xác thực đúng đắn. Đó là một cánh cửa sau được thiết kế tinh vi để chờ kích hoạt.
Câu chuyện này nhắc tôi về vụ kiểm toán năm 2021, khi tôi làm việc cho một NFT Marketplace fork của OpenSea. Đội ngũ đó cũng phản đối báo cáo của tôi, nói rằng tôi “quá khắt khe”. Họ bỏ qua các lỗi signature replay, và ba tháng sau, kẻ tấn công đã đánh cắp 2000 ETH từ người dùng. Tôi đã mất hợp đồng nhưng cứu được cộng đồng. Web3Ride cũng cùng một khuôn mẫu: kỹ thuật yếu kém hoặc cố tình sai trái, đội ngũ ẩn danh (trang web của họ không có LinkedIn cá nhân, chỉ có một biểu tượng robot), và lời hứa lợi nhuận không tưởng.
Điều khiến tôi khó chịu nhất là cách họ lợi dụng thuật ngữ “phi tập trung” để che đậy sự thiếu minh bạch. Họ tuyên bố rằng “DAO sẽ quản lý quỹ”, nhưng hợp đồng không có bất kỳ cơ chế bỏ phiếu nào. Họ nói “zero-knowledge proof for privacy”, nhưng không có bằng chứng mã nguồn cho hệ thống ZK. Tất cả chỉ là những từ ngữ hoa mỹ để bẫy những người mới tham gia crypto.
Vậy bài học ở đây là gì? Khi bạn nhìn thấy một dự án hứa hẹn “kết hợp Uber với blockchain”, hãy tự hỏi: Họ đã công bố mã nguồn chưa? Họ có audit bởi bên thứ ba không? Hợp đồng của họ có những chức năng nguy hiểm như withdraw() không có kiểm soát không? Nếu câu trả lời là “chưa” hoặc “có”, hãy bỏ chạy. Đừng để những lời hứa về doanh thu 500% che mắt bạn. Tôi đã thấy quá nhiều người mất tiền vì những dự án như thế này. Bạn không muốn trở thành nạn nhân tiếp theo – hãy kiểm tra mã nguồn, hoặc ít nhất là đọc audit từ những người có uy tín. Và nếu bạn không thể đọc mã, hãy tin vào những người đã đọc: những người như tôi, những người đã dành 12 năm để phơi bày các trò lừa đảo trong ngành này.