We are announcing OpenVM 2.1 Preview, an early look at the next version of OpenVM. This release adds 64-bit RISC-V support to OpenVM and introduces full compatibility with the Ethereum Foundation's proposed RV64IM_Zicclsm target for zkVMs. It also introduces substantial performance improvements driven by a new execution approach based on portable native recompilation, allowing OpenVM 2.1 Preview to prove mainnet blocks in real time on only 4 GPUs, a 2x improvement compared to OpenVM 2.0.
OpenVM 2.1 Preview is available under MIT and Apache 2.0 dual-license on GitHub. We are shipping this preview release now to give a snapshot of ongoing performance improvements for OpenVM and to allow developers to start building against the 64-bit toolchain. It has not gone through our production security pipeline including audits or formal verification, and we continue to recommend OpenVM 2.0 for production use.
Real-Time Ethereum Proving on 4 GPUs
OpenVM 2.1 Preview proves Ethereum mainnet blocks in real time (defined as proving blocks within Ethereum’s block time) on 4 5090 GPUs, with a p99 proving time of 9.7s, an average of 5.0s, and a max of 12.1s over 7,200 blocks starting from block 24,000,000. This cuts hardware requirements in half from OpenVM 2.0, making real-time proving more accessible.

On 16 GPUs, OpenVM 2.1 Preview delivers a p99 time of 3.7s and an average of 2.4s. This represents a roughly 1.7x improvement over OpenVM 2.0, which proves at a p99 time of 6.3s over the same stretch of blocks. We are demonstrating the performance of this 16-GPU cluster live on EthProofs, submitting proofs for every mainnet block.

For mainnet block 21,000,000, our long-running benchmark, OpenVM 2.1 Preview shows continued performance velocity by reducing proving time to 1.8s, a 148x improvement in the 18 months since our original v0.1 release.

All performance figures represent end-to-end proving time of STARK proofs on bare-metal clusters of 5090 GPUs with 100 bits of provable security and proof sizes under 300kB. Full benchmark details are here.
Shifting to 64-bit RISC-V and Compliance with the Ethereum Foundation’s zkVM Target
OpenVM now supports the 64-bit RISC-V target rv64im_zicclsm, which was standardized as the build target for zkVMs proving Ethereum by the zkEVM team at the Ethereum Foundation. In addition to the rv64im base providing 64-bit integer instructions including multiplication, it adds support for the zicclsm extension, which handles misaligned memory accesses to support languages like Go whose compilers emit such instructions.
Converging on this common target allows OpenVM to more easily support guest programs from a variety of programming languages, including Rust, C++, and Go. Of particular interest are guest programs from existing Ethereum clients. We also found that moving to a 64-bit word size reduced proving cost for the Ethereum workload, possibly due to more efficient handling of the 256-bit EVM word size. Finally, supporting zicclsm makes OpenVM robust to unaligned accesses which can be emitted by a variety of compilers and programming languages.
Native Execution
OpenVM 2.1 Preview introduces a new execution approach based on portable native recompilation: the prover lifts the guest executable into an intermediate representation consisting of portable C and compiles it into a native library that runs directly on the host CPU. This allows OpenVM execution to run at near-native speeds.
This differs from the previous single-pass ahead-of-time (AOT) execution approach in OpenVM 2.0, which is also the approach taken by most other zkVMs. By compiling the portable C emitted by the system rather than directly translating the RISC-V binary to assembly, the new execution approach avoids the need to write raw assembly, allows for optimizations made by the C compiler, and makes the execution cross-platform instead of limited to a single assembly format.

To illustrate the resulting performance gains, we benchmarked execution for a Reth-based OpenVM guest program for stateless Ethereum execution on Ethereum block 24,000,000 using only pure 64-bit RISC-V and no other OpenVM extensions for acceleration. We compared performance of the native recompiler, the fast interpreter (used in pre-2.0 OpenVM releases), and native host. The native recompiler executes 1.65B host instructions, which is fewer than the 2.17B guest instructions of this workload. As shown in the diagram above, it runs 34x faster than the fast interpreter, with only 3x overhead compared to the host CPU (which is allowed to use platform-specific optimizations like SIMD).
Learn more about OpenVM 2.1 Preview
OpenVM 2.1 Preview is open source under the MIT and Apache 2.0 licenses. For the full release, please check it out on GitHub. To follow along or get involved, join us on Telegram or X.