Báo cáo kiểm tra tính toàn vẹn dữ liệu: Dự án ChainGuard bị phát hiện thiếu minh bạch nghiêm trọng

Phan Thế Công nghệ

Hook

Bot chạy đêm, tôi chạy theo logic. Đêm qua, khi phân tích hợp đồng thông minh của dự án ChainGuard, tôi phát hiện một điều kỳ lạ: 95% thông tin đầu vào cho phân tích bảo mật bị thiếu. Không phải do lỗi code, mà do thiết kế cố tình. Một giao thức blockchain tự xưng là "minh bạch hoàn toàn" lại che giấu gần như toàn bộ dữ liệu vận hành. Tôi đã kiểm tra lại ba lần, mỗi lần đều cho cùng kết quả: hệ thống của họ không có cơ chế xác thực dữ liệu đầu vào. Điều này có nghĩa là bất kỳ ai cũng có thể gửi dữ liệu giả mạo vào chuỗi, và không ai kiểm tra được.

Báo cáo kiểm tra tính toàn vẹn dữ liệu: Dự án ChainGuard bị phát hiện thiếu minh bạch nghiêm trọng

Context

ChainGuard là một Layer-2 giải pháp mở rộng quy mô cho Ethereum, ra mắt vào tháng 3 năm 2024. Họ tuyên bố đạt 10.000 TPS với chi phí giao dịch dưới 0,001 USD. Trang web của họ liệt kê 15 đối tác chiến lược, bao gồm một số quỹ đầu tư mạo hiểm nổi tiếng. Tuy nhiên, khi tôi đi sâu vào whitepaper và mã nguồn mở, tôi nhận thấy một vấn đề cơ bản: kiến trúc của họ dựa trên một "trình sắp xếp tập trung" (centralized sequencer) nhưng không công bố bất kỳ thông tin chi tiết nào về cách thức hoạt động. Cụ thể, họ không cung cấp thông số kỹ thuật về cơ chế đồng thuận, không có audit bảo mật độc lập, và không có dữ liệu về lịch sử giao dịch thực tế. Dự án đã huy động được 12 triệu USD trong vòng seed, nhưng không có bất kỳ báo cáo tài chính nào được công bố.

Dựa trên kinh nghiệm audit của tôi, một dự án thiếu minh bạch ở mức độ này thường có hai kịch bản: hoặc họ đang cố tình che giấu lỗ hổng bảo mật, hoặc họ không có đủ năng lực kỹ thuật để xây dựng hệ thống hoàn chỉnh. Cả hai đều là tín hiệu đỏ. Tôi quyết định thực hiện một cuộc kiểm tra tính toàn vẹn dữ liệu (data integrity audit) đối với ChainGuard, sử dụng cùng phương pháp luận tôi đã dùng để phát hiện lỗ hổng trong ICO Status năm 2017.

Báo cáo kiểm tra tính toàn vẹn dữ liệu: Dự án ChainGuard bị phát hiện thiếu minh bạch nghiêm trọng

Core

Tôi bắt đầu bằng cách thu thập tất cả thông tin công khai từ GitHub, Discord, và trang web của dự án. Tôi tạo một bảng kiểm tra gồm 20 trường dữ liệu quan trọng mà bất kỳ dự án blockchain nghiêm túc nào cũng phải công bố. Kết quả thật đáng kinh ngạc:

| Trường dữ liệu | Trạng thái | Mức độ ảnh hưởng | |----------------|------------|------------------| | Mã nguồn hợp đồng thông minh | Có, nhưng thiếu 40% file | Cao | | Kết quả audit bảo mật | Không có | Rất cao | | Lịch sử giao dịch testnet | Không có | Cao | | Thông số kỹ thuật sequencer | Không có | Rất cao | | Danh sách validator | Không có | Cao | | Báo cáo tài chính | Không có | Trung bình | | Tokenomics chi tiết | Có, nhưng mâu thuẫn với whitepaper | Cao | | Lộ trình phát triển | Có, nhưng không có milestone cụ thể | Trung bình |

Tổng cộng, 19/20 trường bị thiếu hoặc không đầy đủ, đạt tỷ lệ thiếu hụt 95%. Đây không phải là sơ suất; đó là một thiết kế có chủ đích. Khi tôi phân tích sâu hơn mã nguồn, tôi phát hiện ra rằng hợp đồng chính của ChainGuard có một hàm setData cho phép người quản trị thay đổi bất kỳ tham số nào mà không cần sự đồng thuận của mạng lưới. Hàm này không có event log, không có cơ chế timelock, và chỉ được bảo vệ bởi một address duy nhất. Điều này có nghĩa là một người có thể âm thầm thay đổi toàn bộ logic của giao thức.

Tôi lập tức kiểm tra lịch sử giao dịch trên mainnet. Sử dụng Etherscan, tôi truy vấn tất cả các giao dịch từ contract của ChainGuard. Kết quả: chỉ có 12 giao dịch trong 3 tháng, tất cả đều từ cùng một địa chỉ – địa chỉ của team. Không có người dùng thực nào. Điều này xác nhận nghi ngờ của tôi: ChainGuard chưa bao giờ thực sự hoạt động trên mainnet; họ chỉ đang chạy một mạng thử nghiệm nội bộ và tuyên bố đó là sản phẩm chính thức.

Phân tích kỹ thuật sâu hơn. Tôi viết một script Python để mô phỏng hành vi của sequencer tập trung của họ, dựa trên mã nguồn có sẵn. Tôi phát hiện ra rằng sequencer có thể sắp xếp lại các giao dịch tùy ý, một lỗ hổng kinh điển trong các Layer-2 chưa trưởng thành. Tệ hơn, nó không có cơ chế chống lại front-running. Bất kỳ ai có quyền truy cập vào sequencer đều có thể đánh cắp tiền của người dùng thông qua sandwich attack. Tôi ước tính rằng nếu dự án này được triển khai rộng rãi, người dùng có thể mất tới 30% số dư trong vòng một tuần do các cuộc tấn công như vậy.

Điểm mù bảo mật mà họ cố tình che giấu. Trong whitepaper, họ tuyên bố sử dụng công nghệ "zero-knowledge rollup" nhưng mã nguồn không hề có bất kỳ proof nào. Tôi kiểm tra thư viện zk-SNARKs mà họ claim là sử dụng – thư viện đó thậm chí không tồn tại trên npm. Đây là một dấu hiệu rõ ràng của việc nói dối về năng lực kỹ thuật. Khi tôi đặt câu hỏi trên Discord, tôi bị ban ngay lập tức. Bot chạy đêm, tôi chạy theo logic, và logic của tôi chỉ ra rằng đây là một vụ lừa đảo tinh vi.

Contrarian

Ngược lại với suy nghĩ thông thường rằng các dự án lớn, được đầu tư bởi quỹ mạo hiểm uy tín, thì an toàn. ChainGuard đã nhận được đầu tư từ một quỹ có tên trong top 10, nhưng điều đó không có nghĩa là họ đã thẩm định kỹ thuật. Quỹ đầu tư thường chỉ quan tâm đến tokenomics và khả năng tăng giá, không phải mã nguồn. Điểm mù ở đây là: cộng đồng crypto vẫn có xu hướng tin tưởng vào thương hiệu hơn là bằng chứng kỹ thuật. Tôi đã thấy điều này nhiều lần trong 10 năm qua. Năm 2017, Status ICO cũng có vẻ ngoài hào nhoáng, nhưng tôi phát hiện lỗ hổng staking chỉ sau 6 tuần phân tích. ChainGuard cũng vậy: họ có website đẹp, đội ngũ được quảng bá rầm rộ, nhưng bên trong là một mớ code rác không thể kiểm toán.

Một góc nhìn phản trực giác khác: việc thiếu dữ liệu không phải là điểm yếu, mà là chiến lược. Bằng cách không công bố audit, họ tránh được trách nhiệm pháp lý. Bằng cách không công bố lịch sử giao dịch, họ ngăn chặn bất kỳ ai phân tích hành vi của họ. Đây là một dạng "security by obscurity" có chủ đích. Nhưng trong blockchain, obscurity không phải là security; nó là điểm chết người. Tôi đã từng chứng kiến một dự án tương tự sụp đổ chỉ sau một đêm vì một lỗi trong sequencer mà không ai phát hiện kịp.

Takeaway

Dự án ChainGuard đang chuẩn bị cho vòng gọi vốn Series A với mục tiêu 50 triệu USD. Dựa trên phân tích của tôi, tôi dự đoán rằng nếu họ không công bố audit độc lập và mở toàn bộ mã nguồn trong vòng 30 ngày tới, họ sẽ mất 90% cộng đồng hiện tại. Câu hỏi đặt ra là: liệu các quỹ đầu tư có đủ tỉnh táo để đọc báo cáo này? Hay họ sẽ tiếp tục bơm tiền vào một dự án đang chảy máu dữ liệu? Tôi không có câu trả lời, nhưng bot của tôi đã ghi lại tất cả. Và tôi sẽ tiếp tục theo dõi.

Bài học rút ra: Trong bear market, sống sót quan trọng hơn lợi nhuận. Hãy kiểm tra tính toàn vẹn dữ liệu của bất kỳ giao thức nào trước khi gửi tiền vào. Nếu một dự án không thể cung cấp 80% dữ liệu đầu vào cần thiết cho phân tích, đó là dấu hiệu bạn nên rời đi. Bot chạy đêm, tôi chạy theo logic. Và logic của tôi nói rằng: ChainGuard là một cái bẫy.


Bài viết này dựa trên phân tích kỹ thuật độc lập, không phải lời khuyên đầu tư. Tác giả không nắm giữ token ChainGuard.