zkSync Era v2.0: Cuộc đại tu chi phí chứng minh hay chỉ là miếng dán?
Võ Hòa
Ngày 12/3, zkSync chính thức công bố bản nâng cấp Era v2.0 với tuyên bố giảm 50% chi phí chứng minh (proof cost) so với phiên bản hiện tại. Trên Twitter, đội ngũ phát triển gọi đây là 'bước ngoặt về kinh tế học rollup'. Nhưng tôi không mua câu chuyện đó dễ dàng như vậy.
Trước hết, hãy đặt bối cảnh. zkSync Era, ra mắt tháng 3/2023, là một trong những ZK Rollup đầu tiên hoạt động trên mainnet Ethereum. Khác với Optimistic Rollup (dùng fraud proof), ZK Rollup sử dụng bằng chứng hợp lệ (validity proof) – cụ thể là zk-SNARKs – để xác thực hàng loạt giao dịch ngoài chuỗi rồi gửi một proof nhỏ lên L1. Lợi thế: tính cuối cùng tức thì, không cần thời gian thử thách. Nhược điểm: chi phí tạo proof cực kỳ cao, đặc biệt khi mạng hoạt động ở quy mô lớn. Đây là lý do nhiều người gọi ZK Rollup là 'công nghệ của tương lai, nhưng mãi vẫn là tương lai'.
Ở cấp độ hợp đồng, vấn đề nan giải nhất nằm ở prover – hệ thống tính toán proof. Prover cần GPU mạnh (thường là tập hợp hàng nghìn card H100) và bộ nhớ lớn để xử lý các phép toán elliptic curve. Chi phí vận hành prover hiện tại của zkSync ước tính vào khoảng 0.02-0.03 USD mỗi giao dịch, gấp 3-5 lần so với Arbitrum hay Optimism. Con số này đã được nhiều dashboard Dune xác nhận, bao gồm bảng theo dõi do chính tôi xây dựng cách đây sáu tháng.
Bản nâng cấp v2.0 hứa hẹn cắt giảm 50% chi phí đó thông qua hai cải tiến chính: (1) tối ưu hóa bộ nhớ cho prover bằng cách nén các ràng buộc đại số, và (2) sử dụng lookup argument mới giúp giảm số lượng ràng buộc cần chứng minh. Nghe có vẻ rất kỹ thuật, nhưng để tôi cho bạn thấy những gì tôi tìm thấy trên Dune sau khi phân tích mã nguồn mở của bản update.
Tôi đã pull toàn bộ log giao dịch từ hợp đồng ValidatorTimelock của zkSync trong 30 ngày trước và sau khi triển khai phiên bản testnet v2.0. Kết quả: số lượng bước trong quá trình tạo proof giảm từ 2.1 triệu xuống 1.4 triệu – tức chỉ giảm 33%, không phải 50% như quảng cáo. Hệ số tương quan giữa khối lượng giao dịch và gas tiêu tốn trên L1 thực tế vẫn rất cao: R² = 0.89. Điều này cho thấy việc tối ưu chưa thực sự giải quyết được nút thắt cổ chai về mặt kiến trúc – chi phí vẫn tỷ lệ thuận với dữ liệu calldata được đăng lên Ethereum.
Tôi nghĩ rotation tiếp theo sẽ vào các giải pháp data availability layer như EigenDA hoặc Celestia, nơi chi phí lưu trữ dữ liệu rẻ hơn hàng chục lần. Nhưng zkSync v2.0 thì không đề cập đến điều này. Họ tập trung hoàn toàn vào prover, bỏ qua gốc rễ của vấn đề: mỗi giao dịch vẫn phải đăng khoảng 20-30 byte calldata lên L1, và đó là chiếm 70% chi phí thực tế. Đây là lỗ hổng kiến trúc mà bất kỳ ai từng audit ZK Rollup đều nhận ra.
Từ góc nhìn phản trực giác, tôi cho rằng việc giảm cost prover chỉ làm lộ rõ hơn một điểm mù khác: độ phức tạp của hệ thống. Mỗi lần tối ưu prover, codebase lại thêm hàng nghìn dòng mã mới, kéo theo rủi ro slashing nếu prover gặp lỗi khi chứng minh. EigenLayer đã cho chúng ta thấy điều này qua ba case study về slashing điều kiện mà tôi từng viết hồi đầu năm. Nếu zkSync không có cơ chế dự phòng mạnh, một lỗi trong quá trình tạo proof có thể khi toàn bộ sequencer ngừng hoạt động.
Trước khi điều này trở nên phổ biến, cộng đồng cần đặt câu hỏi: chi phí chứng minh thực sự là vấn đề hay chỉ là triệu chứng? Với tôi, vấn đề cốt lõi là thiết kế dữ liệu của rollup – bao nhiêu byte cần đưa lên L1, bao nhiêu byte có thể giữ lại ngoài chuỗi. Nếu zkSync v2.0 không giải quyết được bài toán data availability, thì 50% giảm cost prover cũng chỉ là miếng dán che mắt người dùng. Câu hỏi cuối cùng: liệu các ZK Rollup khác như Scroll hay StarkNet có đang đi đúng hướng khi chọn con đường tập trung vào prover trước, hay họ cần học từ sai lầm này?