Skip to content

starkoracles/zkos

Repository files navigation

zkOS - a new cross-proof-system execution layer

Twitter URL

What is a zkOS?

A zkOS takes a different approach to most infrastructure projects we are currently seeing. Instead of building a vertical ecosystem, we believe that creating an open layer will enable faster growth and will enable zk to become mainstream faster. We see our zkOS evolving into a protocol which will serve a multitude of core functions necessary for deploying any zk-based dApp:

  • Scale - We want to allow apps to achieve scale and cost-effectiveness, by allowing different apps to collaborate and aggregate their proofs into a single final proof to be posted on chain.
  • Interoperability - We are in the early innings of innovation in zk. We believe that creating a unified API for zk will encourage the creation of different approaches which will fit different problems.
  • Batteries included - Most zk libraries aren't ready to deployment, we would like to make it easy and quick to reach production, without needing to rebuild everything yourself.

It is important to note this code is unaudited and is NOT ready for production use. We are working very closely with several auditors to turn this prototype into something production ready.

What is included?

We chose to showcase how powerful this approach can be by leveraging two leading (and fully open source) implementations -- Winterfell and Risc0. Our main example showcases how two Fibonacci proofs (generated by Winterfell) are verified within a Risc0 zkVM. This example shows a roadmap for achieving interoperability and scale -- we can verify zk proofs coming from different systems and aggregate them into a single final proof which can be verified on-chain.

Roadmap

Milestone Goal
Risc0 recursion Unlocks multi-layer recursion
Deployment of WASM verifier Start experimenting with on-chain proofs
Solidity verifier for Risc0 EVM on-chain proofs
Miden support Allow full cross-VM interoperability
Integrate MUL Goldilocks accelerator Performance

Benchmarks

(To be added)

Quickstart

  • Ensure you've cloned the repo with all submodules
  • Install rustup
  • This project uses a nightly version of Rust. The rust-toolchain file will be used by cargo to automatically install the correct version.
  • cd zkos
  • cargo run --release -- please note, compilation time will be high (around 20 minutes on MacBook M1) due to Risc0 circuit size configuration. For development use-cases, feel free to modify the build configuration to 12.

Security parameters

The default implementation generates proofs with 82bit security. This is relatively slow to run (around 4 minutes), for development use-cases, feel free to use the cmd parameters to lower security to run faster. Please refer to security analysis (from ethSTARK paper).

Profiling the execution trace

(To be added)