~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/zkwid

0
0
main
33 lines · 1.3 KB Raw History
# 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
```