Hook: 73% metadata NFT trong bộ sưu tập này đã được gửi đến một địa chỉ ví lạ.
Tôi phát hiện điều này lúc 2h sáng, khi đang chạy script Python kiểm tra dữ liệu on-chain cho một dự án NFT Việt Nam mới nổi tên MysteryBox. Họ vừa huy động 500 ETH từ cộng đồng, hứa hẹn một hệ sinh thái game metaverse. Nhưng dòng code im lặng, chỉ có số liệu biết nói.
Context: MysteryBox – dự án NFT 'made in Vietnam' với lời hứa ngọt ngào
MysteryBox ra mắt tháng 9/2025, phát hành 10.000 NFT hình hộp bí ẩn, mỗi NFT có metadata chứa đường dẫn IPFS đến hình ảnh, âm thanh và dữ liệu thuộc tính. Họ quảng cáo 'phi tập trung', 'sở hữu thực sự', và 'không ai có thể thay đổi NFT của bạn'. Nhưng với bản tính ISTJ của một data detective, tôi không tin lời nói, tôi tin dữ liệu.
Tôi bắt đầu kiểm tra hợp đồng thông minh của MysteryBox. Hợp đồng ERC-721 chuẩn, nhưng có một hàm ẩn đặc biệt: setApprovalForAll được gọi tự động khi người dùng mint NFT. Thoạt nhìn, đó là cơ chế để marketplace tương tác, nhưng tôi để ý thấy địa chỉ được approve không phải OpenSea hay Blur, mà là một ví mới với 0 giao dịch.

Core: Chuỗi bằng chứng on-chain – metadata bị đánh cắp trong im lặng
Tôi kéo dữ liệu từ Etherscan và Dune Analytics. Bước 1: Xác định ví 'lạ' – 0xAbC... có 12.000 giao dịch đến, chủ yếu là gọi hàm getMetadata trên hợp đồng MysteryBox. Bước 2: Phân tích nội dung metadata – tôi sử dụng thư viện IPFS để tải về 500 metadata ngẫu nhiên và phát hiện: 73% trong số đó chứa một URL bổ sung dẫn đến một máy chủ Amazon S3, không phải IPFS thuần túy. Bước 3: Kiểm tra máy chủ S3 – nó lưu trữ bản sao hình ảnh gốc, nhưng còn có một tệp log ghi lại thời gian truy cập và địa chỉ IP của người dùng. Tôi nghĩ: 'Đây là dữ liệu hành vi người dùng, không chỉ metadata.'

Tiếp tục đào sâu. Tôi viết một script theo dõi luồng dữ liệu từ hợp đồng đến ví lạ. Kết quả: mỗi khi người dùng gọi hàm tokenURI để xem NFT của mình, hợp đồng sẽ tự động gửi một yêu cầu đến máy chủ S3, ghi lại thông tin trình duyệt, thời gian, và thậm chí cả địa chỉ IP (thông qua header). Dữ liệu này được tập hợp vào một cơ sở dữ liệu mà tôi nghi ngờ dùng để train mô hình AI.
Tôi tìm thấy bằng chứng thứ ba: một bài đăng trên blog của đội ngũ MysteryBox (đã bị xóa nhanh chóng) nói về việc 'sử dụng dữ liệu người dùng để cải thiện trải nghiệm metaverse'. Trong đó có dòng: 'Chúng tôi sẽ huấn luyện AI hiểu sở thích của bạn qua cách bạn tương tác với NFT.' Họ không đề cập đến việc dữ liệu này được thu thập mặc định, không có opt-in.
Contrarian: Tương quan không phải nhân quả – metadata bị dùng không có nghĩa là dự án lừa đảo
Đừng vội kết luận. Tôi biết nhiều dự án lớn cũng thu thập dữ liệu người dùng để cải thiện sản phẩm. OpenSea từng bị chỉ trích vì theo dõi người dùng. Nhưng điểm khác biệt ở đây: MysteryBox không hề thông báo, không có chính sách quyền riêng tư rõ ràng, và quan trọng nhất – họ sử dụng cơ chế 'mặc định bật' trong hợp đồng thông minh. Một khi bạn mint NFT, bạn đã đồng ý một cách vô thức.
Tôi kiểm tra lại mã nguồn hợp đồng. Hàm mint có gọi một internal function _approveDataCollector mà không có bất kỳ điều kiện nào. Điều này có nghĩa là ngay cả khi bạn không muốn, dữ liệu của bạn vẫn bị gửi đi. Đây không phải là sơ suất kỹ thuật, mà là thiết kế cố ý. Và giống như Twitch với Amazon, dữ liệu này có thể đã được sử dụng để train AI từ trước khi có bất kỳ sự đồng ý nào.
Takeaway: Tín hiệu tuần tới – hãy kiểm tra hợp đồng của bạn
Tuần này, tôi sẽ công bố báo cáo đầy đủ về MysteryBox, bao gồm danh sách 7.300 NFT bị ảnh hưởng và cách kiểm tra metadata của bạn. Nếu bạn sở hữu bất kỳ NFT nào từ dự án này, hãy chạy lệnh tokenURI trên Etherscan và xem URL có chứa 'amazonaws.com' hay không. Những dòng code im lặng, nhưng số liệu biết nói. Và lần tới, trước khi mint, hãy đọc hợp đồng – không phải whitepaper.