OKB.VN
Cryptography · ZK

ZK Proof là gì
Từ ZK-SNARK đến ZK-STARK

Cơ chế chứng minh không tiết lộ — nền tảng của rollup, privacy và identity trên blockchain

🔐 Mật mã⏱ ~12 phút đọc🔗 OKB.VN🗓 2025

TL;DR – Tóm tắt

Zero-Knowledge Proof (ZKP) là kỹ thuật mật mã cho phép một bên (prover) chứng minh với bên kia (verifier) rằng một tuyên bố là đúng — mà không tiết lộ bất kỳ thông tin nào về tuyên bố đó. ZK-SNARK và ZK-STARK là hai implement phổ biến nhất trong blockchain. Ứng dụng chính: validity proof trong ZK Rollup, privacy transaction, identity verification.

IZero-Knowledge Proof là gì

Zero-Knowledge Proof (bằng chứng không tiết lộ) là khái niệm toán học được Goldwasser, Micali và Rackoff đề xuất năm 1985. Ý tưởng cốt lõi: có thể chứng minh sự thật của một tuyên bố mà không cần tiết lộ thông tin tạo ra tuyên bố đó.

Ví dụ trực quan: Bản đồ màu sắc

Alice tuyên bố có cách tô màu bản đồ sao cho không có hai vùng kề nhau cùng màu (3-coloring). Bob muốn kiểm tra mà không để Alice tiết lộ cách tô. Quy trình: Alice tô màu, che lại; Bob chỉ vào hai vùng kề nhau bất kỳ; Alice lật mở chỉ hai vùng đó — nếu khác màu, Bob tin một phần; lặp lại nhiều lần, xác suất gian lận tiệm cận 0.

Đây là interactive ZKP. Phiên bản non-interactive (không cần giao tiếp qua lại nhiều vòng) là nền tảng của ZK-SNARK và ZK-STARK.

IIBa Tính Chất Cơ Bản

  • Completeness (Đầy đủ): Nếu tuyên bố đúng, prover trung thực luôn thuyết phục được verifier trung thực
  • Soundness (Độ vững): Nếu tuyên bố sai, không có prover gian lận nào có thể thuyết phục verifier (trừ với xác suất negligible)
  • Zero-knowledge: Verifier không học được bất kỳ thông tin nào ngoài việc tuyên bố là đúng

Trong ứng dụng blockchain, ZKP được dùng dưới dạng non-interactive: prover tạo một proof object, verifier (hoặc smart contract trên L1) kiểm tra proof mà không cần tương tác thêm.

IIIZK-SNARK

Succinct Non-interactive ARgument of Knowledge — Argument of Knowledge ngắn gọn, không tương tác.

  • Succinct: Proof size rất nhỏ (~200 bytes), verify nhanh bất kể computation phức tạp
  • Non-interactive: Không cần nhiều vòng tương tác giữa prover và verifier
  • Argument of Knowledge: Prover phải thực sự biết witness (bằng chứng) để tạo proof hợp lệ

Trusted Setup — Điểm yếu của SNARK

Hầu hết ZK-SNARK yêu cầu "trusted setup ceremony" — một quá trình tạo ra các tham số công khai (CRS - Common Reference String). Nếu các tham số này bị compromise (ai đó giữ lại "toxic waste" từ ceremony), họ có thể tạo proof giả.

Giải pháp: multi-party computation ceremony (nhiều bên tham gia; chỉ cần 1 người trung thực là đủ). Ethereum sử dụng Hermez và Perpetual Powers of Tau ceremony. Tuy nhiên, trusted setup vẫn là điểm rủi ro lý thuyết không thể loại bỏ hoàn toàn.

Các biến thể SNARK phổ biến

HệTrusted SetupProof sizeVerify timeDùng bởi
Groth16Per-circuit~200 bytesRất nhanhZcash, nhiều rollup
PLONKUniversal~400 bytesNhanhzkSync, Aztec
KZG (used by PLONK)UniversalNhỏNhanhEthereum blobs
Halo2Không cầnTrung bìnhTrung bìnhZcash Orchard, Scroll

IVZK-STARK

Scalable Transparent ARgument of Knowledge — Transparent (không cần trusted setup), Scalable (prover time scale tốt hơn với input lớn).

STARK được phát triển bởi StarkWare (Eli Ben-Sasson et al.) và là nền tảng của Starknet và StarkEx. STARK dùng hash functions (như Poseidon, Keccak) thay vì elliptic curve pairing — điều này mang lại hai lợi thế lớn:

  • Không cần trusted setup: Không có toxic waste, không có ceremony risk
  • Post-quantum resistance: Hash functions được cho là an toàn trước quantum computer; elliptic curve (dùng trong SNARK) thì không

Đánh đổi của STARK

  • Proof size lớn hơn nhiều (~50KB–1MB) so với SNARK
  • Verify cost on-chain cao hơn (nhiều gas hơn)
  • Prover time cũng chậm hơn SNARK với circuit nhỏ, nhưng scale tốt hơn với circuit lớn
Recursive STARK: Starknet dùng recursive STARK proof — nhiều proof nhỏ được "gộp" (aggregate) thành một proof lớn để verify trên L1. Điều này giảm chi phí per-transaction đáng kể.

VSo Sánh ZK-SNARK vs ZK-STARK

Tiêu chíZK-SNARKZK-STARK
Trusted setupCần (trừ một số biến thể)Không cần
Proof sizeNhỏ (~200–500 bytes)Lớn (~50KB+)
Verify cost (gas)Thấp (~300K gas)Cao hơn (~3–5M gas)
Prover speedNhanh hơn (circuit nhỏ)Chậm hơn, scale tốt hơn
Quantum-resistantKhông
Toán học nềnElliptic curve pairingHash functions
Audit/toolingNhiều hơn (lâu đời hơn)Ít hơn (mới hơn)
Dùng bởizkSync, Scroll, Polygon zkEVMStarknet, StarkEx

VIỨng Dụng trong Blockchain

1. ZK Rollup — Validity Proof

Ứng dụng lớn nhất hiện nay. Prover tạo validity proof cho mỗi batch giao dịch trên L2. Smart contract trên L1 verify proof — nếu hợp lệ, state root mới được chấp nhận mà không cần execute lại từng giao dịch.

2. Privacy Transaction

Zcash dùng ZK-SNARK (Groth16) để ẩn sender, receiver và amount trong shielded transaction. Aztec Protocol đang xây dựng privacy DeFi trên Ethereum dùng PLONK. Người dùng chứng minh có đủ balance để chuyển mà không tiết lộ số dư thực.

3. Identity và Credential

ZKP cho phép chứng minh "tôi trên 18 tuổi" mà không tiết lộ ngày sinh; "tôi là công dân của quốc gia X" mà không tiết lộ hộ chiếu. Polygon ID, WorldCoin Semaphore, và các dự án zkKYC đang xây dựng hướng này.

4. Blockchain Bridge

ZK bridge (ZK light client) dùng validity proof để xác minh state của một chain khi bridge sang chain khác — bảo mật hơn multisig bridge truyền thống. Succinct Labs và Polyhedra đang xây dựng ZK bridge.

VIIZK-EVM — Thách Thức Kỹ Thuật

EVM không được thiết kế để "proving-friendly". Nhiều opcode của EVM (đặc biệt là precompiles như keccak256, modular exponentiation) rất tốn kém khi express trong ZK circuit.

Hai hướng tiếp cận chính:

  • Prove EVM bytecode trực tiếp: tương thích cao nhưng proof rất nặng (Type 1–2 ZK-EVM)
  • Compile Solidity sang circuit riêng: proof nhẹ hơn nhưng không tương thích bytecode EVM (Type 4 như Starknet Cairo, zkSync)
Tiến độ: Năm 2023–2024, nhiều Type 2 ZK-EVM đã lên mainnet (Scroll, Polygon zkEVM, Linea). Proving time giảm từ hàng giờ xuống còn vài phút nhờ cải tiến hardware prover và thuật toán.

VIIIGiới Hạn Hiện Tại

  • Prover cost: Generate ZK proof tốn nhiều CPU/GPU — hiện vẫn cần hardware chuyên dụng, dẫn đến prover centralization
  • Proving time: Dù đã cải thiện, vẫn mất vài phút đến vài giờ cho batch lớn
  • Audit complexity: ZK circuit rất khó audit — lỗi trong circuit có thể cho phép tạo proof giả mà không ai phát hiện
  • Trusted setup risk: Vẫn là vấn đề với SNARK-based system
  • Quantum threat (dài hạn): SNARK dùng elliptic curve — nếu quantum computing đủ mạnh (không trong tương lai gần), cần migrate sang STARK hoặc post-quantum scheme

IXKết luận

ZK Proof là một trong những đổi mới mật mã quan trọng nhất trong blockchain. Từ concept lý thuyết năm 1985, nó đã trở thành nền tảng kỹ thuật của ZK Rollup — hiện đang xử lý hàng tỷ đô la TVL trên Ethereum L2.

  • ZK-SNARK: proof nhỏ, verify nhanh, cần trusted setup, không quantum-resistant
  • ZK-STARK: không trusted setup, quantum-resistant, proof lớn hơn, verify tốn gas hơn
  • Ứng dụng: rollup validity proof, privacy, identity, bridge
  • Giới hạn hiện tại: prover cost, EVM compatibility, circuit audit complexity
Tham khảo thêm: Bài Blockchain Infrastructure phân tích finality và Data Availability trong ngữ cảnh sử dụng ZK proof.

XZK-EVM — Phân Loại Type 0 Đến Type 4

Vitalik Buterin đề xuất phân loại ZK-EVM theo mức độ compatibility với Ethereum EVM — từ hoàn toàn tương thích đến chỉ tương thích về ngôn ngữ:

TypeMô tảProving timeVí dụ
Type 1Ethereum-equivalent: prove Ethereum block nguyên bản. Mọi EVM contract chạy không sửa đổi.Rất chậm (hours)PSE zkEVM, Taiko
Type 2EVM-equivalent: tương thích hoàn toàn ở bytecode level, có thể thay đổi một số chi tiết nội bộ.Chậm (phút–giờ)Scroll, Polygon zkEVM
Type 2.5Như Type 2 nhưng gas cost khác Ethereum (một số precompile đắt hơn)Trung bìnhzkSync Era
Type 3Almost EVM-equivalent: hầu hết contract chạy được, một số precompile không hỗ trợNhanh hơnNhiều ZK-EVM giai đoạn early
Type 4High-level language equivalent: compile Solidity/Vyper sang ZK-friendly bytecode. Không tương thích EVM bytecode.Nhanh nhấtStarkNet (Cairo), zkSync (LLVM)

Đánh đổi: Type 1–2 có developer experience tốt nhất (deploy Solidity trực tiếp) nhưng proving cost cao, throughput thấp. Type 4 có proving cost thấp nhất, throughput cao nhất nhưng developer phải học ngôn ngữ mới hoặc dùng transpiler.

XIZK Trong Ứng Dụng Thực Tế

ZK Proof không chỉ dùng trong rollup — đây là primitive cryptography có nhiều ứng dụng rộng hơn:

Identity và Privacy

  • zkKYC: Prove rằng bạn đã pass KYC với cơ quan thẩm quyền mà không tiết lộ identity — chỉ prove "tôi là người đã được verify". Worldcoin (World ID) dùng ZK để prove humanity mà không tiết lộ iris data.
  • Age verification: Prove bạn trên 18 tuổi mà không cần tiết lộ ngày sinh hay tên.
  • Tornado Cash: ZK proof để break transaction link — prove ownership của UTXO mà không tiết lộ nguồn gốc. (Bị OFAC sanctioned 2022)

ZK trong Interoperability

  • ZK Light Client Bridge: Prove finality của block trên chain nguồn bằng ZK proof — không cần trust committee (xem bài Blockchain Bridge)
  • zkIBC: IBC (Inter-Blockchain Communication) với ZK proof thay vì light client truyền thống — giảm on-chain verification cost

ZK trong Game và NFT

Dark Forest (game on-chain) dùng ZK để hide vị trí player — prove "tôi ở trong vùng có thể tấn công" mà không tiết lộ tọa độ chính xác. Đây là "fog of war" on-chain đầu tiên — không thể thực hiện nếu không có ZK.

XIIGiới Hạn Kỹ Thuật Hiện Tại

ZK Proof vẫn có những giới hạn quan trọng cần thừa nhận:

Giới hạnMô tảHướng giải quyết
Proving timeGenerate ZK proof cho complex EVM execution mất 1–30 phútGPU prover, recursive proof, parallel proving
Proving costChi phí phần cứng để generate proof cao — $0.001–$0.01 per txHardware acceleration (FPGA, ASIC), circuit optimization
Circuit complexityMọi computation phải "arithmetized" — một số operation rất đắt trong circuit (modular exponentiation)Custom precompile, lookup table
Trusted setup (SNARK)ZK-SNARK cần trusted setup ceremony — nếu ceremony bị compromise, toàn bộ system bị phá vỡDùng ZK-STARK (không cần trusted setup), hoặc ceremony đủ lớn
Recursion overheadRecursive proof (prove proof của proof) cần overhead computeFolding schemes (Nova, HyperNova)

Frontier 2024–2025 trong ZK: folding schemes (Nova/HyperNova) cho phép accumulate nhiều proof mà không cần verify từng cái — giảm proving cost theo bậc. Circle STARKs (Polygon) cải thiện efficiency của STARK. Hardware acceleration (Ingonyama, Cysic) đang build ASIC prover riêng — có thể giảm proving time xuống dưới 1 giây cho nhiều workload.

Câu Hỏi Thường Gặp

Về mặt lý thuyết, ZK Proof dựa trên các bài toán toán học khó (discrete logarithm, pairing). Xác suất tạo fake proof hợp lệ cực kỳ thấp (negligible). Rủi ro thực tế hơn là bug trong circuit implementation hoặc trusted setup bị compromise.

ZK-STARK dùng hash function (SHA-256 hoặc tương tự) thay vì elliptic curve — không bị ảnh hưởng bởi Shor's algorithm của quantum computer. ZK-SNARK dùng elliptic curve pairing — về lý thuyết dễ bị tấn công bởi quantum computer đủ mạnh.

Verification thường nhanh hơn proving hàng nghìn lần. Proving một batch 1000 transaction có thể mất vài phút, nhưng verify proof đó trên Ethereum chỉ tốn ~300.000 gas (~$5-10). Đây là lý do ZK phù hợp cho rollup: prove off-chain đắt, verify on-chain rẻ.

📚Tài liệu tham khảo

  1. Goldwasser, S., Micali, S. & Rackoff, C. (1985). The Knowledge Complexity of Interactive Proof Systems. STOC '85.
  2. Groth, J. (2016). On the Size of Pairing-based Non-interactive Arguments. EUROCRYPT 2016.
  3. Ben-Sasson, E. et al. (2018). Scalable, transparent, and post-quantum secure computational integrity. IACR ePrint 2018/046.
  4. Gabizon, A., Williamson, Z. & Ciobotaru, O. (2019). PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge.
  5. Buterin, V. (2022). The different types of ZK-EVMs. vitalik.ca
  6. StarkWare (2021). Recursive STARKs. starkware.co
📚 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 →