# zkwid-zkvm RISC Zero host for zkwid: `prove(ProveInput)` returns `bincode(Receipt)`, and `verify(receipt)` checks it against `image_id()` and returns the `Journal`. - `core/` holds the shared `ProveInput` and `Journal` types. - `guest/` is the zkVM program `zkwid-guest`. It measures every stage with SHA-256, runs stage 0 (the shim) in wasmi 0.31 with the `env.keygen` import, and commits the `Journal`. ## Features | Feature | Effect | |---|---| | `prove` | Enables `prove` (`risc0-zkvm/prove`) | | `disable-dev-mode` | Rejects `RISC0_DEV_MODE` fake receipts (`risc0-zkvm/disable-dev-mode`) | Without features, the crate only verifies receipts. ## zkVM - Guest build: about 1.5 minutes from clean with the RISC Zero toolchain (rust 1.97.0), and about 30 seconds after a guest source change. - Cycles for the test shim plus one extra stage: 236318 user cycles in 1 segment (po2 19). - k256 uses the RISC Zero accelerated fork (`k256/v0.13.4-risczero.1`, with the patched `crypto-bigint` and `sha2`), wired up through `[patch.crates-io]` in `guest/Cargo.toml`. Dev-mode round trip with fake receipts: ```sh RISC0_DEV_MODE=1 cargo test -p zkwid-zkvm --features prove -- --nocapture ``` Real succinct proof: ```sh cargo test -p zkwid-zkvm --features prove --release -- --ignored real_proof --nocapture ```