Venus Tutorial
Venus is a high-performance zkVM (Zero-Knowledge Virtual Machine) developed by Cysic Labs. It generates zero-knowledge proofs of arbitrary program execution, allowing developers to prove the correctness of a computation without revealing its internal state. Venus is designed to make verifiable computation practical at scale, with first-class support for hardware acceleration across GPU, FPGA, and ASIC backends.
Why Venus?
- High-performance proving -- low-latency proof generation tuned for production workloads.
- Compute-backend specialization -- GPU is a default build target, with FPGA acceleration kernels (Goldilocks field arithmetic, NTT, Poseidon2, Merkle tree, FRI, expression evaluation) targeting AMD UltraScale+ and Versal HBM devices, and an ongoing ASIC-oriented zkVM acceleration design.
- Rust-based zkVM -- write guest programs in idiomatic Rust; no recompilation across different programs.
- Standardized prover interface -- usable as a standalone service, a library, or via JSON-RPC / gRPC / CLI.
- Distributed proving -- coordinator/worker model that scales out across machines.
- Hints stream -- offload expensive cryptographic operations outside the VM and feed the results back as verifiable data.
- Open source -- dual-licensed under Apache 2.0 and MIT.
Documentation
This tutorial walks through installing Venus, writing zkVM programs, executing them, and generating proofs end-to-end:
- Installation -- prerequisites and source build via the Venus
Makefile. - Quickstart -- clone, set up, prove, and verify with the bundled
zec-rethguest. - Writing Programs -- author Rust programs targeting Venus, manage I/O, and tune execution.
- Precompiles -- accelerate cryptographic primitives via system precompiles.
- Distributed Execution -- scale proof generation across multiple machines.
- Hints Stream -- offload heavy operations outside the VM and stream results back in.
Disclaimer
Venus is currently under active development and has not been audited for security or correctness. The software is not fully tested; do not use it in production environments until a stable production release is available. macOS proof generation is not yet optimized; some proofs may take longer to generate.
If you encounter any errors or unexpected behavior, please file an issue at cysic-labs/venus.
Acknowledgements
Venus builds on top of foundational work from the ZisK project by 0xPolygonHermez, and from the Plonky3 team. Venus is dual-licensed under Apache 2.0 / MIT.