Vào tuần trước, tôi nhận được một tin nhắn từ một người bạn đang vận hành node cho một ZK Rollup tại Việt Nam. Anh ấy nói: 'Tiến ơi, tháng này mình lỗ 40% chi phí vận hành so với tháng trước, dù số lượng giao dịch vẫn giữ nguyên.' Lý do? Không phải do giá ETH giảm, mà do chi phí chứng minh (proof generation cost) đã tăng gấp đôi sau một bản nâng cấp giao thức. Điều này khiến tôi nhớ lại một câu nói mà tôi từng đọc trong whitepaper của một dự án ZK: 'Chúng tôi ưu tiên phi tập trung hóa chi phí chứng minh.' Nhưng thực tế, chi phí đó vẫn đang đè nặng lên những operator cá nhân, đặc biệt là ở các thị trường mới nổi như Việt Nam, nơi chi phí điện và phần cứng không hề rẻ.
Sự thật nằm ngoài dữ liệu, trong cấu trúc của nó. Khi nhìn vào bảng điều khiển gas của các ZK Rollup hàng đầu, bạn sẽ thấy một con số rất đẹp: chi phí trung bình cho mỗi giao dịch chỉ 0,01 USD. Nhưng con số đó chỉ là phần nổi của tảng băng. Phần chìm – chi phí chứng minh – được giấu trong lớp 'trusted setup' hay 'prover subsidy' mà các nhà phát triển cung cấp. Trong thị trường gấu hiện tại, khi token của dự án giảm 80%, các khoản trợ cấp đó bị cắt giảm, và operator phải tự gánh toàn bộ chi phí. Đây là lý do tại sao tôi viết bài này: không phải để chỉ trích, mà để giúp các nhà vận hành hiểu rõ bản chất thực sự của gánh nặng này.

Context: Cơ chế chi phí chứng minh trong ZK Rollup
ZK Rollup sử dụng bằng chứng không kiến thức (zero-knowledge proof) để xác thực hàng loạt giao dịch off-chain, sau đó gửi một bằng chứng duy nhất lên Ethereum. Điều này giúp giảm tải cho Layer 1, nhưng lại tạo ra một chi phí ẩn: quá trình tạo bằng chứng (proof generation) yêu cầu tài nguyên tính toán cực kỳ lớn. Mỗi lần operator muốn đóng một batch, họ phải chạy một prover – một chương trình mất hàng chục phút đến vài giờ trên GPU mạnh, hoặc thậm chí hàng giờ trên CPU. Chi phí này bao gồm:
- Điện năng: một GPU prover có thể tiêu thụ 300-500W, chạy liên tục 24/7.
- Khấu hao phần cứng: card đồ họa cao cấp như RTX 4090 có giá khoảng 1500-2000 USD, tuổi thọ 2-3 năm nếu chạy full load.
- Chi phí cơ hội: operator không thể dùng máy cho việc khác trong thời gian tạo proof.
- Phí Ethereum: dù proof nhỏ, nhưng phải gửi lên L1, tốn gas – một khoản phí không nhỏ khi ETH ở mức 2000 USD.
Trong whitepaper của các dự án như zkSync, Scroll, hay Polygon zkEVM, họ thường đưa ra các con số lý thuyết về chi phí chứng minh rất thấp – dưới 0.01 USD mỗi giao dịch. Nhưng những con số đó dựa trên giả định về quy mô lớn, hiệu suất tối ưu, và mức gas ETH rẻ. Trong thực tế, khi số lượng giao dịch trong một batch còn nhỏ (chỉ vài trăm giao dịch), chi phí chứng minh trên mỗi giao dịch có thể lên tới 0.5-1 USD. Đó là lý do tại sao nhiều operator phải chạy lỗ trong giai đoạn đầu.

Core: Phân tích kỹ thuật – mã nguồn và trade-off
Tôi đã dành thời gian reverse-engineer một số prover phổ biến, đặc biệt là của zkSync Era (vì mình có đóng góp mã nguồn mở cho dự án này). Dựa trên kinh nghiệm audit của tôi, tôi phát hiện ra một vấn đề thú vị: chi phí chứng minh không chỉ phụ thuộc vào số lượng giao dịch, mà còn phụ thuộc vào cấu trúc của witness (bằng chứng phụ trợ). Trong zkSync, mỗi giao dịch ERC-20 đơn giản tạo ra một witness có kích thước khoảng 2-3 KB, trong khi một giao dịch swap trên Uniswap có thể tạo ra witness 50-100 KB. Sự chênh lệch này khiến thời gian tạo proof tăng theo cấp số nhân, không phải tuyến tính.

Hãy nhìn vào đoạn mã giả sau (từ một phiên bản cũ của zkSync prover, tôi đã đơn giản hóa):