The Nexus zero-knowledge virtual machine is a modular, extensible, prover-optimized, fully-specified zkVM written in Rust, focused on performance and security.

Nexus zkVM v0.3.1 is the current stable release, implementing the Nexus zkVM 3.0 machine.

Proving Computation

The Nexus zkVM can prove any computation. For any Rust program, such as:

#![cfg_attr(target_arch = "riscv32", no_std, no_main)]

use nexus_rt::println;

fn fib(n: u32) -> u32 {
    match n {
        0 => 0,
        1 => 1,
        _ => fib(n - 1) + fib(n - 2),
    }
}

#[nexus_rt::main]
fn main() {
    let n = 7;
    let result = fib(n);
    assert_eq!(result, 13);
    println!("fib({}) = {}", n, result);
}

the zkVM can generate a succinct, efficiently verifiable proof of its correct execution.

To get started with the Nexus zkVM, check out the Getting Started page.

The Nexus zkVM is in an experimental stage and is not currently recommended for production use.

The Nexus Ethos: Assurance through Open Science

We believe a zkVM must provide an efficient proving mechanism without compromising on security and correctness. A zkVM cannot provide provide transparency without being transparent itself. Every component of a zkVM should be powered by fully and publicly specified cryptographic components, with careful analysis of security and performance.

The Nexus zkVM features no code obfuscation, no proprietary components, and no closed-source code.

Modular and Extensible

The Nexus zkVM is designed to be modular and extensible, with highly optimized isolated components. Configured out of the box with thoroughly-analyzed, sensible defaults (such as the choice of prover and the memory model) that will work for most users, developers can feel confident in the security and performance of the zkVM whatever their application.

That said, the Nexus zkVM is also designed to be extensible. Source-available code and consistent development by the Nexus team enables support for new languages, new precompiles, and new provers as the state-of-the-art advances, all with no vendor lock-in.

Was this page helpful?