Một giao thức Layer2 mới vừa gọi vốn 15 triệu USD từ các quỹ hàng đầu, cam kết giảm gas phí 90% so với Arbitrum. Whitepaper dày 40 trang, có phần chứng minh hình thức đẹp mắt. Nhưng tôi mất 3 tiếng đào sâu code prototype, và phát hiện ra điều mà không ai trong vòng seed round để ý: cơ chế đồng thuận DPoS lai zk của chúng là một cái bẫy tập trung hóa. Đây không phải lỗi sơ suất. Đây là thiết kế cố ý.
ZkRoll X tự nhận là giải pháp L2 cho gaming, hỗ trợ 10,000 TPS. Whitepaper dùng thuật ngữ "zk-optimistic parallel challenge" – nghe cao siêu, nhưng thực chất là lợi dụng niềm tin mù quáng vào zero-knowledge. Họ mô tả một sequencer đa node, nhưng hợp đồng thông minh chỉ đọc chữ ký từ một danh sách được hardcode từ lúc triển khai. Tôi kiểm tra mạng testnet hiện tại: chỉ có 1 sequencer hoạt động. Whitepaper hứa sẽ có 5 sequencer, nhưng không có cơ chế nào buộc họ phải mở rộng. Đó là lỗ hổng đồng thuận.
Từ kinh nghiệm audit EOS năm 2017, tôi biết DPoS dẫn đến tập trung. ZkRoll X không khác. Họ dùng DPoS để bầu sequencer, nhưng token quyền lực lại tập trung trong tay 4 ví – đều là địa chỉ của đội ngũ và các quỹ. Thử nghiệm my gửi lệnh challenge đúng protocol: bị từ chối vì sequencer hiện tại không hỗ trợ. Code có hàm challengeFraud() nhưng luôn trả về false nếu người gọi không phải sequencer. Lỗi này có thể sửa, nhưng họ không sửa.

Gas rẻ hơn, nhưng lỗ hổng vẫn còn. ZkRoll X chạy rẻ vì chỉ có 1 sequencer xử lý. Nhưng nếu sequencer đó bị tấn công DDoS, cả mạng ngừng hoạt động. Không có fallback. Không có cơ chế escape hatch thực sự – chỉ có một hàm withdrawEmergency() nhưng yêu cầu chữ ký từ 2/3 quorum sequencer. Mà quorum chỉ có 1 người. Nghịch lý: càng tập trung, càng rẻ, càng dễ tấn công.
Phân mảnh thanh khoản không phải vấn đề thực. Các VC kêu gào về phân mảnh giữa các L2, nhưng vấn đề thực là bảo mật kém. ZkRoll X hứa hẹn kết nối Arbitrum qua bridge, nhưng bridge của họ chỉ là một contract đơn giản dùng multisig 3/5 – 2 trong số đó do đội ngũ ZkRoll X kiểm soát. Đây là lỗ hổng đã từng hạ gục Wormhole. Tôi đã viết trong báo cáo nội bộ năm 2022: bridge multisig là vector tấn công ưa thích của hacker.
Bear market? Cơ hội đào sâu zk. Năm 2022, khi mọi người chạy khỏi thị trường, tôi dành 8 tháng nghiên cứu Plonk protocol. Tôi biết zk không phải thần dược. ZkRoll X dùng zk-SNARKs nhưng không có trusted setup đúng cách – ceremony của họ chỉ có 3 người tham gia, tất cả đều là thành viên đội ngũ. Trong zk, security assumption phải dựa trên tính đúng đắn của setup. Với 3 người, collusion risk gần như 100%. Nhưng whitepaper bỏ qua phần này.
Layer2 à? Đọc lại code đã. Tôi clone repo của ZkRoll X trên GitHub. Có commit tự hào: "Optimize gas 20%" – nhưng thực ra họ xóa bỏ một số check safety. Cụ thể, họ bỏ check validateMerkleProof() trong processTransaction() để tiết kiệm gas. Kết quả: attacker có thể gửi giao dịch trùng lặp mà không bị phát hiện. Tôi báo lỗi này qua issue, nhưng họ close và gắn label "not planned". Đây không phải tính năng. Đây là lỗ hổng nghiêm trọng.

Cơ hội? Có. Nếu họ sửa 3 vấn đề: mở code sequencer đa node thay vì single, thêm escape hatch không cần trusted quorum, và setup trusted ceremony thực sự với nhiều người tham gia. Nhưng tôi không kỳ vọng. Các dự án L2 huy động vốn thường chạy theo narrative hơn là bảo mật.
Tóm lại, ZkRoll X là case study kinh điển về gap giữa marketing và thực tế kỹ thuật. Whitepaper đẹp, toán học đúng, nhưng implement sai. Tôi không lạc quan, cũng không bi quan. Tôi chỉ ghi nhận dữ liệu. Còn bạn, hãy tự đọc code – đừng tin vào bất kỳ tuyên bố nào chưa qua audit độc lập.
