Blog by Oleg Fomenko

Valida vs RISC0 benchmarks

The following post introduces my results on benchmarking ZKVMs from RISC0 and Valida. Valida caught my eye because of the declarations of the fastest existing ZKVM (but still not fully constrained haha). Here we go with my results:

  1. Evaluation of the 46th Fibonacci element:

    • RISC0 9.102s (prove + verify)
    • Valida 1.41s (1.075s prove + 0.266s verify)
  2. Evaluating Pedersen commitment with Rust k256 library:

  let private_key = Scalar::from(12345678909876554321u128);
  let amount = Scalar::from(12345u64);
  let g = k256::ProjectivePoint::GENERATOR;
  let h = g.mul(k256::Scalar::from(12345u32));
  let commitment = g.mul(private_key).add(h.mul(amount));
  • RISC0 24m18.388s (prove + 0.5s verify)
  • Valida 15m31.673s (prove + 0.379s verify)

In conclusion, we can see that Valida is probably faster, but only 9 times for Fibonacci and 1.6 times for k256 library. Also, RISC0 can successfully generate proofs using only 20GB RAM while Valida requires 120GB RAM for k256 benchmark.