OKB.VN
ZK · Cryptography · VM

zkVM là gì?

Zero-Knowledge Virtual Machine — prove bất kỳ computation nào với ZK proof

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

TÓM TẮT

zkVM (Zero-Knowledge Virtual Machine) là máy ảo có thể generate ZK proof cho bất kỳ program nào chạy trong nó. Developer viết chương trình bình thường, zkVM prover generate proof, verifier chỉ cần verify proof nhỏ thay vì re-execute. Ứng dụng chính: ZK Rollup proving, ZK coprocessor, verifiable computation. Các dự án nổi bật: RISC Zero (RISC-V), SP1 (Succinct), Jolt (a16z), Cairo VM (StarkWare).

IzkVM là gì?

zkVM (Zero-Knowledge Virtual Machine) là một máy ảo (virtual machine) được thiết kế để có thể tạo ra ZK proof xác nhận rằng một chương trình đã được thực thi đúng đắn với input và output nhất định — mà không cần verifier phải re-execute toàn bộ chương trình.

Hiểu đơn giản: zkVM làm cho computation "verifiable" với chi phí verify thấp hơn nhiều so với re-execution. Verifier chỉ cần kiểm tra một proof nhỏ (vài KB đến vài trăm KB) thay vì chạy lại toàn bộ program.

Tại sao cần zkVM?

Trước zkVM, để dùng ZK proof bạn phải:

  • Viết program dưới dạng arithmetic circuit — cực kỳ phức tạp và không tự nhiên
  • Mỗi computation khác nhau cần circuit khác nhau
  • Không tái sử dụng được code thông thường

zkVM giải quyết bằng cách: developer viết code bình thường (Rust, C, Python), compile sang ISA mà zkVM hiểu (như RISC-V), zkVM tự động generate proof cho execution. ZK trở nên accessible hơn nhiều cho developer.

Analogy: zkVM giống như compiler nhưng output thêm một ZK proof. "Chương trình này đã chạy đúng với input X và cho ra output Y — tôi có proof toán học, bạn không cần chạy lại."

IICách zkVM hoạt động

Step 1: Program Compilation

Developer viết program bình thường (ví dụ: Rust code kiểm tra Merkle proof, verify transaction batch, compute state transition). Program được compile sang ISA (Instruction Set Architecture) mà zkVM target — thường là RISC-V hoặc một custom ISA.

Step 2: Execution Trace

zkVM "chạy" program và ghi lại execution trace — toàn bộ trạng thái của VM ở mỗi step (register values, memory state, program counter). Execution trace là "bằng chứng" thô của việc program đã chạy như thế nào.

Step 3: Arithmetization

zkVM chuyển đổi execution trace thành một hệ thống polynomial constraints — đây là "arithmetization". Mỗi instruction của RISC-V (ADD, LOAD, STORE, ...) được biểu diễn bằng polynomial equations. Nếu execution trace hợp lệ, tất cả constraints đều satisfied.

Step 4: Proof Generation

ZK proving system (SNARK hoặc STARK) generate proof từ polynomial constraints. Proof này xác nhận rằng có một execution trace thỏa mãn tất cả constraints — tức program đã chạy đúng.

Step 5: Verification

Verifier (thường là smart contract trên Ethereum) verify proof. Verification rất nhanh (vài milliseconds, vài nghìn gas) dù program gốc phức tạp. Đây là "succinct verification" — đặc điểm core của ZK.

Key numbers: Proving một batch 1000 transaction có thể mất 10–60 phút. Verify proof chỉ mất ~200ms và ~500K gas. Ratio proving/verification là 1000x–100000x — đây là sức mạnh của ZK.

IIIzkVM vs zkEVM — Điểm khác biệt

zkEVM là gì?

zkEVM là zkVM chuyên biệt cho EVM (Ethereum Virtual Machine). zkEVM prove execution của EVM bytecode — cho phép chạy Ethereum smart contract và generate ZK proof. Các dự án zkEVM: Polygon zkEVM, zkSync Era (zkEVM type), Scroll, Linea.

So sánh chi tiết

Tiêu chízkEVMzkVM (general)
Target ISAEVM (Ethereum opcodes)RISC-V, custom ISA
Language supportSolidity, Vyper (qua EVM)Rust, C, C++, Go (qua RISC-V compiler)
EVM compatibility✅ Rất cao (near-full)⚠️ Cần compile lại, không compatible trực tiếp
Proving efficiencyKhó hơn (EVM không ZK-friendly)Dễ tối ưu hơn (custom ISA ZK-friendly)
Use case chínhZK Rollup cho Ethereum ecosystemGeneral verifiable computation, coprocessor
Developer UXViết Solidity như thườngViết Rust/C như thường, compile sang zkVM
Dự án nổi bậtPolygon zkEVM, zkSync Era, ScrollRISC Zero, SP1, Jolt, Cairo VM

Khi nào dùng zkEVM vs zkVM?

zkEVM: khi cần Ethereum compatibility — deploy contract Solidity, integrate với Ethereum toolchain (Hardhat, Foundry), user có sẵn MetaMask. zkVM: khi cần prove arbitrary computation không phải EVM — off-chain computation, verifiable data processing, cross-chain proof, privacy-preserving computation.

IVCác dự án zkVM nổi bật

RISC Zero

RISC Zero là zkVM nổi tiếng và mature nhất (2022). Target ISA: RISC-V. Prover viết bằng Rust, compile sang RISC-V, RISC Zero generate STARK proof. Developer có thể dùng Rust ecosystem đầy đủ (crates, libraries). Use cases: ZK coprocessor (Bonsai network), verifiable AI inference, cross-chain bridges.

RISC Zero Bonsai: cloud proving service, developer submit computation, Bonsai generate proof on-demand.

SP1 (Succinct Labs)

SP1 (2024) là zkVM được Succinct Labs build, cũng target RISC-V. Điểm nổi bật: prover cực nhanh nhờ optimizations, open-source, developer-friendly. SP1 được Succinct Labs dùng để build ZK light client bridges (OP Succinct, SP1 Helios). Được coi là faster alternative to RISC Zero cho production use cases.

Jolt (a16z crypto)

Jolt (2024) từ a16z crypto research là zkVM dùng novel "lookup arguments" approach — Lasso polynomial commitment. Claim: 5–10x nhanh hơn previous zkVM approaches. Vẫn trong research/early development phase nhưng có potential lớn về proving speed.

Cairo VM (StarkWare)

Cairo là custom ISA được StarkWare design đặc biệt để ZK-friendly (STARK-friendly). Program Cairo compile sang Cairo bytecode, Cairo VM prove execution. StarkNet smart contract viết bằng Cairo. Efficient hơn RISC-V prove vì ISA designed for ZK, nhưng developer cần học Cairo language riêng.

Nexus VM

Nexus (2024) là zkVM hướng đến "zkVM as world computer" — target một máy tính ảo minimal. Còn trong research phase.

Xu hướng 2024–2025: Proving speed là cuộc đua chính. RISC Zero, SP1, Jolt đều claim improvements đáng kể. Real-time proving (proving nhanh hơn execution) là holy grail — khi đạt được, zkVM có thể prove mọi computation real-time mà không cần batching delay.

VzkVM trong ZK Rollup

zkVM là "engine" của ZK Rollup

ZK Rollup cần prove rằng hàng nghìn transaction đã được process đúng. zkVM là engine làm điều này. Batch transaction → feed vào zkVM → zkVM generate proof → proof submit lên Ethereum → Ethereum verify proof.

zkEVM-based Rollup

Polygon zkEVM, Scroll, Linea dùng zkEVM để prove EVM execution. Họ có thể chạy Solidity smart contract giống Ethereum, generate proof cho execution. Phù hợp cho general-purpose L2 cần EVM compatibility.

Custom zkVM-based Rollup

StarkNet dùng Cairo VM — custom ISA, không EVM compatible trực tiếp. Trade-off: Cairo VM efficient hơn để prove, nhưng developer cần learn Cairo. zkSync Era dùng hybrid: EVM-compatible frontend + custom ZK circuit backend.

Proving Infrastructure

ZK Rollup cần massive proving infrastructure. zkSync Era dùng GPU clusters để generate proof. Polygon zkEVM dùng specialized prover clusters. Proving là bottleneck và cost center chính của ZK Rollup — đây là lý do proving optimization (faster zkVM) quan trọng.

VIZK Coprocessor Pattern

ZK Coprocessor là gì?

ZK Coprocessor là pattern dùng zkVM để compute off-chain, sau đó submit proof lên on-chain contract để verify. Smart contract không cần tự compute — chỉ cần verify proof. Điều này cho phép smart contract "outsource" heavy computation mà vẫn giữ được bảo mật.

Use case điển hình

  • On-chain AI: Prove rằng AI model đã được chạy với input X và cho output Y (không reveal model weights)
  • Historical data: Prove rằng một account đã hold token trên block N (prove historical state mà không cần query archive node on-chain)
  • Complex DeFi logic: Oracle compute phức tạp off-chain, smart contract chỉ verify proof
  • Privacy: Prove identity, credit score, eligibility mà không reveal underlying data

Dự án ZK Coprocessor

RISC Zero Bonsai: Cloud ZK coprocessor, smart contract gọi proof generation service. Axiom: ZK coprocessor để query Ethereum historical state on-chain. Risc Zero zkVM + Foundry: Prove Rust program, verify in Solidity contract.

Paradigm shift: ZK Coprocessor mở ra khả năng "trustless off-chain computation" — smart contract có thể dùng result của computation phức tạp (AI, ML, cryptography) mà không cần on-chain execution, vẫn đảm bảo correctness bằng ZK proof.

VIITrade-off và Thách thức

Proving Speed — Bottleneck chính

Proving một program complex mất từ minutes đến hours. Đây là bottleneck lớn nhất của zkVM và ZK Rollup. Giải pháp đang được research: parallel proving (nhiều machines prove cùng lúc), recursive proving (prove proof của proof), hardware acceleration (FPGA, ASIC prover).

Developer Experience

Viết ZK-compatible code vẫn có constraints: không phải mọi computation đều efficient để prove. Loops phức tạp, dynamic memory allocation có thể tốn nhiều proving resources. Developer cần hiểu về proving overhead để tối ưu code.

Memory Model

zkVM memory model khác regular VM: mỗi memory access có overhead về proving. RISC-V memory model không naturally ZK-friendly — cần nhiều constraints để prove random access. Các zkVM khác nhau có các approaches khác nhau để giảm memory proving overhead.

ISA Design Trade-off

RISC-V: developer-friendly (standard ISA, nhiều tools), nhưng proving overhead cao hơn custom ISA. Custom ISA (Cairo): proving efficient hơn, nhưng ít tooling hơn, developer cần learn. Không có giải pháp tốt nhất về mọi mặt.

Maturity: zkVM ecosystem vẫn còn early. RISC Zero và SP1 là mature nhất nhưng vẫn có breaking changes. Jolt còn trong research. Dùng cho production cần audit cẩn thận. Proving bugs có thể dẫn đến invalid proof được accept — security critical.

VIIITương lai zkVM

Real-time Proving

Holy grail: prove computation real-time (nhanh hơn execution). Hiện tại proving chậm hơn execution 100–10000x. Với hardware acceleration (FPGA, ASIC), parallelism và algorithm improvements, proving có thể đạt <1s latency. Điều này loại bỏ batching requirement của ZK Rollup.

Universal zkVM

Vision: một zkVM có thể prove mọi computation — từ WebAssembly đến RISC-V đến EVM — với unified proof format. Verifier trên Ethereum có thể verify proof từ bất kỳ computation nào. Điều này tạo ra "universal ZK layer" cho toàn bộ web3.

zkVM + AI

Proving AI inference là use case đang nổi. Model weights là "program", input là data, zkVM prove inference đúng đắn. Ứng dụng: verifiable AI prediction on-chain, trustless AI oracle, privacy-preserving AI (prove output without revealing input).

Proving Market

Decentralized proving networks đang được build: nhiều provers cạnh tranh để generate proof nhanh nhất với giá thấp nhất. ZK Rollup và coprocessor "outsource" proving ra market thay vì tự chạy proving infrastructure. Scroll, Taiko đang experiment với decentralized proving.

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

VM thông thường (EVM, JVM) execute program và cho ra output. zkVM làm thêm: nó generate ZK proof chứng minh rằng execution đúng đắn với input và output đó. Ai cũng có thể verify proof mà không cần re-execute. zkVM về cơ bản là VM + ZK proving system tích hợp.

Cả hai đều target RISC-V ISA và cho phép viết Rust. Điểm khác: RISC Zero dùng STARK (Plonky2) làm proving backend, mature hơn (2022), có Bonsai cloud proving service. SP1 (2024) từ Succinct Labs, claim faster proving nhờ optimizations khác nhau, open-source từ đầu. Cả hai đều production-ready nhưng SP1 mới hơn và có proving performance cải thiện.

Có, nhưng cực kỳ tốn kém về compute và time. Một inference của GPT-2 (small model) có thể mất nhiều giờ để prove bằng zkVM. Các team đang nghiên cứu ZK-friendly AI architectures và hardware acceleration để giảm proving cost. Đây là active research area năm 2024–2025.

Cairo VM dùng custom ISA (Cairo) được thiết kế đặc biệt để ZK-friendly — proving efficient hơn nhưng developer cần học Cairo language mới. RISC Zero dùng RISC-V standard ISA — developer dùng Rust/C thông thường, but proving less efficient. Cairo tối ưu cho StarkNet ecosystem; RISC Zero phù hợp cho general-purpose verifiable computation.

📚Tài liệu tham khảo

  1. RISC Zero. RISC Zero zkVM Documentation. dev.risczero.com
  2. Succinct Labs. SP1 — A RISC-V zkVM. docs.succinct.xyz
  3. Setty, S. & Lee, J. (2023). Jolt: SNARKs for Virtual Machines via Lookups. eprint.iacr.org/2023/1217
  4. StarkWare. Cairo Documentation. docs.cairo-lang.org
  5. Boneh, D. et al. (2022). Building Efficient ZK-SNARKs for VMs. Various ZKProof workshops
  6. zkSync. ZK Stack Architecture. docs.zksync.io
📚 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
🔐 ZK & Cryptography — Mật mã học 6 bài
📋 Xem tất cả bài viết →