Introducing NovaNet: a zkVM that uses Lasso for speed and Nova for space efficiency.

At ICME, we've been diligently developing a zkVM. Our target platform is WASM due to its portability and extensive language support. Our VM is designed to operate efficiently on constrained devices, such as browsers, and cater to a variety of use-cases, including zkML, web3 infrastructure, and even web2. While the underlying technology and libraries we employ can function beyond the WASM context, we internally refer to it as the 'zkEngine'. Furthermore, we've named the zkWASM-backed network 'NovaNet'. These works will all be open-source in the near future.

Follow the newly created NovaNet Twitter account.

So.. what have we been talking about for all of these months? Avid readers may have seen a theme in our tweets and blog posts. We are huge fans of the simplicity of Nova a ZKP 'folding 'scheme described in detail here and in our blog here.

Nova stands out due to its capability for IVC (Incremental Verifiable Computation), which it delivers with optimal speed and impressive space efficiency — making it highly suitable for zkVM. While many existing zkVM solutions, predominantly those based on STARK, are indeed swift, they often demand specialized hardware. It's an observation that hasn't escaped our notice or that of others in the industry.

We've been attuned to the research on advanced lookup arguments for a while, thanks to our exploration of sum-check based systems. This has always been at the forefront of our minds as the go-to solution for complex challenges such as floating-point numbers in ZK, bitwise opcodes, and the need for straightforward code analysis and reasoning. Lasso and Jolt, two significant works by a16z researcher Justin Thaler and his colleagues, were introduced not too long ago. ICME is keenly interested in both contributing to and building upon the Lasso codebase. Notably, Lasso serves as a front-end, but with a few modifications, we can integrate a different backend.

We have contributed to open-source repos for SuperNova here, for any one out there looking to contribute please do 😊 . Our background working on this repo mixed with our knowledge of Lasso leaves us in a good positioned for creating our Nova/Lasso blend.

MSM only, Sum-check, Multivariate.

Lasso and Nova both utilize a suite of techniques including the sum-check protocol, MSM, and multivariate polynomials. By concentrating our optimization efforts on these techniques, we're able to achieve notable performance improvements in constrained settings like browsers and edge devices. We're currently delving into experimental work with WASM and webGPU. We opt for Lasso when speed is a priority and turn to Nova for space efficiency. Each opcode is meticulously calibrated to meet the specific requirements of consumer hardware. NovaNet can support use-case previously thought impossible or only possible in the distant future.

Why are we doing this?

We have very specific use-case in mind for a prover network that permits for true decentralization across a range of web2 and web3 applications. It avoids the vendor and programming language specific lock-in of many ZK-L2 and ZK-L1 that currently exist, while capturing the value of a world-wide ZKP network. DMs open.

All/most of everything we do is open-sourced. If you are interested in getting involved or want to learn more about zero-knowledge proofs please reach out to us on Twitter.

*Many have posed the question: Why another zkWasm? NovaNet and the ICME zkEngine are not exclusively for 'WASM'. They signify substantial breakthroughs in ZKVM design that possess broad utility. We opted to implement them on WASM initially due to its inherent portability.

Subscribe to ICME

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.