OKB.VN
ZK · Cryptography Comparison

ZK-SNARK vs ZK-STARK

Trusted setup, proof size, quantum resistance và ứng dụng thực tế trong ZK Rollup

⏱ 13 phút đọc🎯 Advanced📅 2025

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ả.

Ví dụ thực tế: Powers of Tau ceremony của Ethereum có hàng nghìn người tham gia toàn cầu. Zcash tổ chức ceremony đặc biệt với camera ghi hình và tự tiêu hủy hardware. Đây là cách giảm thiểu rủi ro — cần tin vào ít nhất 1 người trong ceremony đã hành động trung thực.

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.

SchemeProof SizeVerification 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
Giải pháp thực tế của StarkWare: Dùng STARK để generate proof (tận dụng no trusted setup và scalability), sau đó wrap bằng SNARK nhỏ để submit lên Ethereum. Kỹ thuật này — "recursive STARK→SNARK" — lấy được ưu điểm của cả hai hệ thống.

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-SNARKZK-STARK
Trusted SetupCầ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 resistanceKhông
Crypto assumptionElliptic curve DLPHash collision resistance
Prover scalabilityKhó parallelDễ parallel
EVM compatibilityTốt (nhiều zkEVM)Khó hơn (Cairo VM)
Dự án nổi bậtzkSync, Polygon zkEVMStarkNet, 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.

📚 Khám phá thêm theo chủ đề
113 bài phân tích kỹ thuật — Blockchain Infrastructure từ nền tảng đến nâng cao
📋 Xem tất cả bài viết →