Khi một dự án Layer 2 'ăn cắp' dữ liệu: Phân tích on-chain vụ NoName Rollup
Hook
Hợp đồng thông minh của NoName Rollup (giả định) được triển khai 45 ngày trước. Block đầu tiên của nó chứa một giao dịch đặc biệt: 1 ETH chuyển từ một địa chỉ mới tạo đến một địa chỉ multisig. Không có gì bất thường. Nhưng khi tôi đào sâu vào bytecode của validator contract, tôi phát hiện một hàm withdrawData không có trong whitepaper. Hàm này cho phép admin trích xuất toàn bộ dữ liệu blob từ DA layer bên thứ ba. Một dòng code thừa, cả hệ thống đổ.
Context
NoName Rollup tự xưng là giải pháp Layer 2 siêu nhanh, sử dụng Celestia làm DA layer. Họ huy động được 12 triệu USD từ các quỹ có tiếng. TVL lúc cao nhất đạt 340 triệu USD. Nhưng có một điểm kỳ lạ: họ không công bố mã nguồn của fraud proof contract. Whitepaper chỉ mô tả cơ chế chung, không có chi tiết triển khai. Khi tôi hỏi trên Discord, admin nói “đang audit, sẽ public sau”. Đây là dấu hiệu đỏ kinh điển. Dựa trên kinh nghiệm audit của tôi, bất kỳ dự án nào che giấu smart contract trong giai đoạn tăng trưởng TVL đều có động cơ không minh bạch.
Core: Tháo gỡ có hệ thống
Tôi bắt đầu bằng cách decompile bytecode của contract chính. Sử dụng công cụ phổ biến, tôi thấy một mapping lạ: mapping(uint256 => bytes) private _stolenData. Tên gợi ý rõ ràng. Hàm withdrawData(uint256 index, address recipient) được gắn modifier onlyAdmin. Không có cơ chế timelock. Admin có thể rút bất kỳ dữ liệu blob nào đã được gửi lên Celestia thông qua DA bridge.
Tôi kiểm tra lịch sử giao dịch. Có 15 lần gọi withdrawData kể từ khi triển khai. Tổng cộng 2.4 GB dữ liệu được rút về một địa chỉ ví riêng. Dữ liệu này chứa gì? Tôi tải một mẫu nhỏ (khối 1050) về máy local. Sau khi giải nén, tôi thấy một tệp JSON với các khóa riêng tư của người dùng từ một dự án DeFi khác – dự án “FastLend” đã sập 6 tháng trước. NoName Rollup đã lưu trữ private key của người dùng FastLend dưới dạng dữ liệu DA, với lý do “tối ưu hóa phí”.
Đây không phải là lỗi. Đây là hành vi có chủ ý. Họ dùng Celestia làm nơi chứa dữ liệu nhạy cảm, sau đó âm thầm rút về. Khi tôi tiếp tục xâu chuỗi, tôi phát hiện địa chỉ admin multisig có liên kết với một CTV đã bán tháo token NoName trước khi giá giảm 80%. Một giao dịch đáng ngờ? Nhìn vào timestamp. Đúng 12 giờ trước khi có thông báo audit từ công ty thứ ba, admin đã rút 1.2 GB dữ liệu. Thời gian trùng khớp với lúc họ biết sắp bị phát hiện.
Cơ chế lừa đảo: NoName Rollup quảng cáo “bảo mật dữ liệu người dùng” nhưng thực tế họ đã tạo ra một backdoor để đánh cắp dữ liệu. Họ dùng DA layer làm nơi chứa, biện minh bằng “chi phí thấp”. Nhưng trên thực tế, không có lý do kỹ thuật nào để lưu private key dưới dạng blob. Đây là hành vi cố ý.
Tôi kiểm tra thêm tokenomics. Token NOVA được phát hành với cơ chế rebase. Team nắm 30% không lock. Họ đã unstake toàn bộ vào ngày thứ 20 sau launch, bán qua nhiều ví. Giá giảm 90% sau đó. Kết hợp với phát hiện đánh cắp dữ liệu, đây là một vụ rug pull có tổ chức.
Contrarian: Phần phe bò đúng
Nhưng nếu nhìn từ góc độ lạc quan, công nghệ của họ thực sự có vài điểm sáng. Sequencer của họ xử lý 4000 TPS trong điều kiện test, nhanh hơn Arbitrum. Họ có một đội ngũ developer giỏi – tôi thấy commit code chất lượng cao trong repo công khai. Vấn đề nằm ở governance và thiếu minh bạch. Nếu họ chịu công khai toàn bộ source, thêm timelock và thuê audit độc lập ngay từ đầu, dự án có thể trở thành một trong những L2 hàng đầu.
Tuy nhiên, lòng tham đã phá hỏng tất cả. Khi tôi phỏng vấn một cựu thành viên (giấu tên), anh ta nói: “Chúng tôi biết backdoor đó. Nhưng investor thúc giục tạo revenue, dữ liệu người dùng bán được giá cao hơn phí gas.”
Takeaway: Câu hỏi cho toàn ngành
Dự án này đã sập, nhưng bài học còn đó. Bao nhiêu dự án Layer 2 khác đang giấu backdoor trong hợp đồng? Khi bạn không thể kiểm tra fraud proof contract, thì đó không phải là trustless. Đó là blind trust. Hãy tự hỏi: liệu sequencer của bạn có âm thầm sao chép dữ liệu của bạn không? Câu trả lời nằm trong bytecode, không phải trong whitepaper.