TÓM TẮT
SNARK (Succinct Non-interactive ARgument of Knowledge): proof nhỏ, verify nhanh, nhưng cần trusted setup. STARK (Scalable Transparent ARgument of Knowledge): không cần trusted setup, quantum-resistant, nhưng proof lớn hơn nhiều. Cả hai đều được dùng trong ZK Rollup production và mỗi cái có trade-off riêng biệt rõ ràng.
INền Tảng Chung — ZK Proof
Zero-Knowledge Proof cho phép Prover chứng minh rằng họ biết một thông tin thỏa mãn điều kiện — mà không tiết lộ bản thân thông tin đó. Trong blockchain, ZK Proof dùng để chứng minh hàng nghìn transaction được thực thi đúng mà Verifier (L1 contract) không cần chạy lại từng transaction.
Ba tính chất cốt lõi của mọi ZK Proof hệ: Completeness (statement đúng thì convince được Verifier), Soundness (Prover gian lận không thể thuyết phục với statement sai), và Zero-Knowledge (Verifier không học được gì ngoài tính đúng của statement). SNARK và STARK đều thỏa mãn cả ba — khác nhau ở cách thực hiện và trade-off kỹ thuật.
IIZK-SNARK: Cơ Chế và Đặc Điểm
SNARK = Succinct Non-interactive ARgument of Knowledge. Succinct có nghĩa proof nhỏ và verify nhanh — đây là ưu điểm lớn nhất của SNARK so với các proof system trước đó.
Cơ chế toán học
SNARK dựa trên pairing-based cryptography và elliptic curve. Computation được convert sang polynomial representation (thường qua R1CS → QAP), sau đó dùng polynomial commitment scheme để tạo proof nhỏ gọn. Verifier chỉ cần kiểm tra vài phép toán elliptic curve pairing.
Các SNARK scheme phổ biến trong blockchain
- Groth16: Proof nhỏ nhất (~200 bytes), verify nhanh nhất. Cần trusted setup riêng cho từng circuit. Dùng trong Zcash.
- PLONK: Universal trusted setup — dùng được cho nhiều circuit. Proof ~400–800 bytes. Dùng trong zkSync, Aztec.
- KZG-based PLONK: Dùng KZG polynomial commitment — proof nhỏ, verify nhanh. Dùng trong Polygon zkEVM, Scroll.
IIIZK-STARK: Cơ Chế và Đặc Điểm
STARK = Scalable Transparent ARgument of Knowledge. Transparent có nghĩa không cần trusted setup — đây là ưu điểm nổi bật nhất. Scalable nghĩa là prover time tăng quasi-linearly với computation size.
Cơ chế toán học
STARK dựa trên hash functions và polynomial IOPs (Interactive Oracle Proofs). Computation được encode trong Algebraic Intermediate Representation (AIR), sau đó dùng FRI (Fast Reed-Solomon IOP) protocol để chứng minh tính đúng của polynomial evaluations. Không dùng elliptic curve — chỉ cần collision-resistant hash function.
Đặc điểm nổi bật
- Transparent: Không cần ceremony, không có secret parameter — mọi thứ public
- Quantum-resistant: Hash-based security không bị phá bởi Shor's algorithm
- Parallelizable prover: Dễ phân tán proving computation
- Dùng bởi: StarkNet, StarkEx (dYdX v3, Immutable X), RISC Zero, Polygon Miden
IVTrusted Setup — Điểm Khác Biệt Cốt Lõi
Đây là sự khác biệt lớn nhất về trust assumption.
SNARK: Cần Trusted Setup Ceremony
Hầu hết SNARK scheme cần một trusted setup ceremony để tạo Structured Reference String (SRS). Trong ceremony, participants tạo "toxic waste" — secret random value. Nếu bất kỳ ai trong ceremony xóa secret của mình, hệ thống an toàn. Nhưng nếu tất cả cấu kết hoặc bị hack, attacker có thể tạo proof giả.
STARK: Không cần Trusted Setup
STARK chỉ dùng cryptographic hash function. Không có ceremony, không có toxic waste, không có secret parameter. Bất kỳ ai cũng có thể verify toàn bộ setup là đúng — đây chính là ý nghĩa của "Transparent". STARK trustless hoàn toàn về setup.
VProof Size và Verification Cost
Proof size ảnh hưởng trực tiếp đến chi phí gas khi verify on-chain Ethereum.
| Scheme | Proof Size | Verification Gas |
|---|---|---|
| Groth16 (SNARK) | ~200 bytes | ~500K gas |
| PLONK (SNARK) | ~400–800 bytes | ~300–600K gas |
| STARK (raw) | 40–200 KB | ~5–15M gas |
| STARK → SNARK wrap | ~200–400 bytes | ~500K gas |
VIProver Time và Complexity
SNARK Prover
Groth16 và PLONK prover có complexity O(n log n) với circuit size n. Cần nhiều RAM vì phải load toàn bộ circuit. GPU acceleration thường cần thiết cho production. Khó phân tán vì circuit phải load toàn bộ vào memory của một máy.
STARK Prover
STARK prover thường chậm hơn SNARK cho cùng computation, nhưng có ưu điểm: dễ parallelizable — proving computation có thể phân tán trên nhiều core và nhiều server. Với computation rất lớn, STARK scale tốt hơn nhờ khả năng horizontal scaling.
Thực tế cả hai đều cần phần cứng chuyên dụng (GPU/FPGA) để generate proof nhanh — đây là lý do "prover market" đang nổi lên như infrastructure quan trọng trong ZK ecosystem.
VIIQuantum Resistance
SNARK: Không quantum-resistant
Hầu hết SNARK dựa trên elliptic curve discrete logarithm problem — máy tính lượng tử chạy Shor's algorithm có thể giải trong polynomial time. Nghĩa là máy tính lượng tử đủ mạnh có thể phá vỡ SNARK security và forge proof giả. Timeframe dự kiến: còn 10–30 năm để có máy tính lượng tử đủ mạnh.
STARK: Quantum-resistant
STARK chỉ dựa trên hash function collision resistance. Không có thuật toán lượng tử nào phá được collision resistance của hash function tốt (chỉ Grover's giảm security xuống một nửa bit — vẫn đủ an toàn nếu dùng hash 256-bit). STARK được coi là post-quantum secure về lý thuyết — ưu điểm dài hạn quan trọng.
VIIIỨng Dụng Trong Blockchain
Dự án dùng ZK-SNARK
- zkSync Era: PLONK-based, EVM-compatible ZK Rollup lớn nhất
- Polygon zkEVM: PLONK + KZG, full EVM equivalence at bytecode level
- Scroll: KZG-based PLONK, bytecode-level EVM compatibility
- Zcash: Groth16, private transaction pioneer
Dự án dùng ZK-STARK
- StarkNet: Full STARK L2, Cairo VM, permissionless deployment
- StarkEx: STARK engine cho dYdX v3, Immutable X, Sorare
- RISC Zero: General-purpose zkVM dùng STARK
- Polygon Miden: STARK-based zkVM với Miden VM
Hybrid approach ngày càng phổ biến: generate với STARK, submit với SNARK wrapper — lấy ưu điểm của cả hai mà giảm nhược điểm.
IXBảng So Sánh Tổng Hợp
| Tiêu chí | ZK-SNARK | ZK-STARK |
|---|---|---|
| Trusted Setup | Cần (ceremony) | Không cần (transparent) |
| Proof size | ~200–800 bytes | ~40–200 KB |
| Verification gas | ~300–600K gas | ~5–15M gas (raw) |
| Quantum resistance | Không | Có |
| Crypto assumption | Elliptic curve DLP | Hash collision resistance |
| Prover scalability | Khó parallel | Dễ parallel |
| EVM compatibility | Tốt (nhiều zkEVM) | Khó hơn (Cairo VM) |
| Dự án nổi bật | zkSync, Polygon zkEVM | StarkNet, StarkEx |
❓ Câu Hỏi Thường Gặp
Trusted Setup. SNARK cần ceremony — nếu compromise thì attacker có thể forge proof. STARK không cần ceremony, chỉ dùng hash function, hoàn toàn trustless. STARK cũng quantum-resistant còn SNARK thì không.
SNARK proof thường 200–800 bytes. STARK proof thường 40–200 KB — lớn hơn khoảng 100–1000 lần. Tuy nhiên StarkWare dùng kỹ thuật recursive STARK→SNARK để giảm proof size khi submit lên Ethereum, lấy được ưu điểm của cả hai.
PLONK (Permutations over Lagrange-bases for Oecumenical Noninteractive arguments) là SNARK scheme với universal trusted setup — dùng được cho nhiều circuit khác nhau mà không cần ceremony riêng. PLONK phổ biến hơn Groth16 trong ZK Rollup vì linh hoạt hơn khi circuit thay đổi theo upgrade.
Chọn SNARK khi: cần proof nhỏ để giảm L1 verification cost, cần EVM compatibility cao, ecosystem tooling quan trọng. Chọn STARK khi: cần trustless hoàn toàn không trusted setup, ưu tiên quantum resistance dài hạn, cần scale prover theo horizontal.