Skip to main content

Proof System Overview

When the RISC Zero zkVM executes, it produces a Receipt that serves as a proof of validity of a given Session.

To confirm that a Receipt was honestly generated, use Receipt::verify and supply the ImageID of the code that should have been executed as a parameter.

The Receipt includes a journal, which contains the public outputs of the Session. The contents of the journal are specified by calling env::commit() and env::commit_slice() in the guest code.

In addition to the journal, a receipt makes a number of claims about the program execution. These claims are summarized in the ReceiptMetadata.

A Receipt can take two main forms:

Cryptographically each SegmentReceipt or SuccinctReceipt is a ZK-STARK. The details of the RISC Zero ZK-STARK are described in our ZKP Whitepaper and in this Sequence Diagram.

Learn More

About the zkVM

About STARKs

About RISC Zero