Skip to main content
Version: 0.21

zkVM Overview

WARNING: This software is still experimental, we do not recommend it for production use.

The RISC Zero zero-knowledge virtual machine zkVM (zkVM) lets you prove correct execution of arbitrary Rust code. By allowing users to build zero-knowledge applications that leverage existing Rust packages, the RISC Zero zkVM makes it quick and easy to build powerful verifiable software applications.

To learn more about what this enables, check out our use cases page.

If you're ready to start building, check out our zkVM Quick Start and our zkVM example applications.

What are the components of a zkVM application?

The core of a zkVM application is the guest program. The guest program is the part of the application that gets proven.

To prove correct execution of the guest program:

  1. The guest program is compiled to an ELF binary.
  2. The executor runs the ELF binary and records the session.
  3. The prover checks and proves the validity of the session, outputting a receipt.

Note: You only need to worry about the details of step 2 & step 3 if you're running the zkVM on your own hardware. See Host Code 101 for more details on these steps. If you're using Bonsai for remote proving, you won't need to write host code.

From Guest Code to Receipt

Anyone with a copy of the receipt can verify the guest program's execution and read its publicly shared outputs. The verification algorithm receives an ImageID as a parameter; the ImageID serves as a cryptographic identifier for the expected ELF binary.

Deploying a zkVM Application

Once you've built a zkVM application, you can generate proofs on your own machine(s) or you can make requests to Bonsai to generate proofs as needed.

For local proof generation, we recommend a machine with at least 16GB of RAM. Options for generating proofs using GPU acceleration and skipping proof generation are documented in the feature flags.

Next Steps

Ready to start building zkVM applications?
Check out zkVM Quickstart & Guest Code 101.

Want to browse some examples?
Check out the zkVM example applications.

Curious about performance?
Check the performance benchmarks page.

Looking for information about remote proving?
Check out Bonsai.

Looking for information about blockchain integration?
Check out our Bonsai on Eth page.