Một giao thức ZK-rollup vừa gọi vốn 100 triệu USD từ a16z và Paradigm. Nhưng khi tôi đào sâu vào mã nguồn, tôi thấy thứ gì đó khiến tôi đặt câu hỏi: Liệu tiền có che được lỗ hổng?

Đây là ProofFlow – Layer2 hứa hẹn throughput 10.000 TPS với chi phí gas cực thấp. Đội ngũ từ Polyhedra và có cả nhà nghiên cứu từ Ethereum Foundation. Tin tức xuất hiện đầu tháng này, gây sốt trên Crypto Twitter. Nhưng hãy nhìn vào code.
ProofFlow dùng zk-STARK với proof aggregation. Kiến trúc khá chuẩn: sequencer nhận giao dịch, tạo block, sau đó prover tạo proof và gửi lên Ethereum. Điểm đặc biệt: họ tự hào về "proof timeout" – một cơ chế cho phép người dùng thoát nếu prover không hoàn thành proof trong thời gian nhất định. Ý tưởng hay, nhưng triển khai thì sao?
Tôi mất 3 giờ để chạy phân tích tĩnh trên repo. Hàm submitProof trong ProofVerifier.sol không có deadline check. Không có block.timestamp so sánh với challengePeriod. Kẻ tấn công có thể gửi proof cũ sau 7 ngày, và hệ thống vẫn chấp nhận, bỏ qua tính cuối cùng (finality). Trong báo cáo audit của tôi cho một cầu nối permissioned hồi 2025, tôi từng phát hiện lỗi tương tự: thiếu timeout dẫn đến mất 10 triệu USD tiềm năng.
Tôi test với Echidna – fuzzer tìm ra lỗi reentrancy trong callback của ERC-721? Không, lần này là logic timeout. Mô phỏng kịch bản: sequencer bị tấn công, prover ngừng hoạt động. Người dùng chờ 7 ngày, nhưng gọi finalize không thành công vì proof vẫn có thể bị thay thế bằng phiên bản cũ. Kết quả: funds stuck. Tôi gửi bug report cho team ProofFlow qua Discord. Họ trả lời: "Đây là tính năng, không phải bug." Họ nói rằng họ sẽ thêm checkpoint thủ công từ multisig. Điều này làm tôi nhớ đến những dự án từng nói "chúng tôi sẽ fix sau mainnet".

Gas rẻ không đồng nghĩa với an toàn. Lời hứa "best route" của DEX aggregator là ảo tưởng đối với retail: MEV bot trích xuất giá trị nhiều hơn nhiều so với phí tiết kiệm được. Cũng vậy, ProofFlow thu hút vốn khổng lồ nhờ câu chuyện về hiệu suất, nhưng lại lơ là bảo mật cốt lõi. Nhiều người nghĩ Layer2 có fraud proof là an toàn, nhưng thực tế, điểm mù nằm ở chỗ: proof không có hạn sử dụng.
Hãy tự hỏi: Nếu một giao thức có thể chấp nhận proof bất kỳ lúc nào, làm sao bạn biết trạng thái của mình không bị rollback? Đó là lý do 90% các “Bitcoin Layer2” tự xưng thực chất là dự án Ethereum đổi thương hiệu để câu view; cộng đồng Bitcoin thực thụ không công nhận chúng. Với ProofFlow, cộng đồng ZK cũng nên cảnh giác.
Động lực thực sự của thanh toán crypto tại các nước đang phát triển không phải lý tưởng blockchain; mà là lạm phát tiền tệ địa phương buộc người ta tìm phương án sinh tồn. Layer2 cũng vậy: sự quan tâm đến throughput thấp không đến từ nhu cầu thực, mà từ hype đầu tư. ProofFlow cần chứng minh an toàn trước khi nói đến tốc độ.
Dựa trên kinh nghiệm audit của tôi, một dự án không chịu sửa lỗi cơ bản trước mainnet sẽ gặp vấn đề lớn khi scale. Tôi sẽ theo dõi họ. Còn bạn, hãy kiểm tra mã nguồn trước khi deposit.