Valida Compiler Toolchain

Update: Dec 16, 2024

We are excited to announce the 0.7.0-alpha release of the Valida Compiler Toolchain, designed to compile Rust and C programs to run on the Valida zk-VM. This package includes:

  • Valida Rust Compiler: This compiler converts Rust programs to Valida-compatible code.

  • Valida C Compiler: This compiler converts C programs to Valida-compatible code.

  • Valida zk-VM: A virtual machine for executing and verifying Valida programs.


What You Can Do:

With this package, you can:

  1. Compile Rust Programs: Convert your Rust code into Valida-compatible programs using the included Rust to Valida compiler toolchain.

  2. Compile C Programs: Convert your C code into Valida-compatible programs using the included C to Valida compiler.

  3. Run and Verify Programs: Execute your programs on the Valida zk-VM, and create and verify succinct proofs of execution.

  4. Test and Debug: Explore the capabilities and limitations of both the compiler and the VM in this alpha release.


Installation

There are installation methods available for the most widely used platforms, including Windows, Linux, and MacOS. Currently, Docker is required for platforms other than x86_64 Linux. See the installation methods and follow one of them before continuing to the instructions below.


Benchmarks

Here are some reports on benchmarks that we have run comparing the proving performance of Valida to RISC Zero, Jolt and SP1:

These benchmarks indicate that Valida is an industry leading competitor in terms of speed and efficiency of generating succinct knowledge proofs.


Important Caveats

This software is in its alpha stage and has several limitations:

Compiler Limitations:

  • The compiler does not support floating-point operations.

  • 64-bit integers are partially supported. Some arithmetic operations may be buggy.

  • Code which assumes that memory is initialized to zero might not work properly. This includes realloc in the C standard library.

zk-VM Limitations:

  • Some constraints are still missing or incorrect, allowing some false statements to be proven, pending resolution of these issues, which are actively being worked on.

  • The VM does not yet produce zero-knowledge proofs. Support for the zero knowledge property is planned.


Conclusion:

The Valida Compiler Toolchain offers exciting possibilities for compiling and running Rust and C programs on the Valida zk-VM. While this alpha release has limitations, it provides a solid foundation for future developments. We encourage you to test the toolchain, provide feedback, and contribute to its evolution.

For more information or support, visit our website or contact our team directly.

Last updated