v0.18.0
Our 0.18 release upgrades the Bonsai SDK with Groth16 SNARK seals for better on-chain verification, better error handling, and more. In the zkVM, this release separates host and guest build toolchains and also supports reproducibly building the same ImageID for the same zkVM code by using a consistent Docker environment.
Thank you to community members @austinabell and @winor30 for their contributions to this release!
Important and Breaking Changes
- Separate host and guest build toolchains, allowing the use of different versions of
rustc
for host and guest code. This has allowed us to move the default host toolchain to thestable
channel. The guest toolchain remains on a nightly release of 1.69. - Add
cargo risczero build
command to build zkVM guest programs using a Docker container, which enables ImageIDs to remain consistent across builds. See #799 for details. - Bonsai Ethereum contracts now use Forge as a subprocess, so building Bonsai code will now require installing Foundry tools.
- Bonsai SDK:
upload_img
andupload_img_file
no longer returnImageIdExists
errors. Instead they return a boolean,true
if the image exists on the server. - Bonsai SDK: Bonsai now returns Groth16 SNARK seals as well as the journal and
post_state_digest
for easy on-chain verification. - Expand Prover support to better work with remote provers like Bonsai.
- Fix bug #820, correcting iterative calls to SHA2
- Add 128 bits of entropy to the memory state, addressing a potential privacy issue where the
SystemState
root in theReceiptMetadata
was not guaranteed to be a hiding commitment.
What's Changed
- Update factors README to match 0.17 by @pdg744 in #787
- aligning quick start by @pdg744 in #789
- fixing references to host code by @pdg744 in #790
- update groth16 control ID to 0.17 by @capossele in #797
- Recover non processed blocks after websocket connection loss by @Cardosaum in #762
- Move bootstraps over to xtask by @flaub in #791
- Add start of ExternalProver by @flaub in #801
- Reproducible builds via Docker by @capossele in #799
- Fix #800 by @flaub in #803
- Include tools in build-toolchain by @flaub in #804
- Print VerificationError message instead of variant by @rlukata in #809
- Reorg to support client/server architecture by @flaub in #808
- Refactor Bonsai as workspace and use Foundry as external dependency by @nategraf in #810
- Support for stable host toolchain by @flaub in #817
- Support for devcontainers: Fix #815 by @flaub in #819
- Re-enable the Governance Example test with zkVM Integration by @nategraf in #823
- feat(crate-validator): Add domain-specific crates by @Cardosaum in #792
- zkp: HAL cleanups and perf bump by @flaub in #826
- crate validator: run cargo risczero install by @SchmErik in #830
- Make easier to update the RISC Zero verifier contract upon version bump by @capossele in #831
- zkvm: Protobuf based client/server IPC by @flaub in #814
- crate validator: harden cargo risczero install by @SchmErik in #838
- fix: multi-package guest-list generation by @hashcashier in #839
- Update prost requirement from 0.11 to 0.12 by @dependabot in #837
- Update prost-build requirement from 0.11 to 0.12 by @dependabot in #836
- Add entropy to memory state to protect privacy by @nategraf in #812
- Fix full segment bug by @capossele in #844
- fix: include debug error message for unspecified error by @austinabell in #846
- Exports needed for recursion by @flaub in #847
- Added state and error_msg to bonsai-sdk by @mothran in #843
- Remove Bonsai SDK ImageIdExists error by @mothran in #848
- Add no_std support for risc0-binfmt by @flaub in #857
- Make Control Id Parameters to Constructor by @jjtny1 in #813
- Add a description of Step 2 by @winor30 in #793
- Bonsai: Migrate SnarkProof types to match backend by @mothran in #853
- Expose
host::api::Connector
to users by @tzerrell in #864 - (Ready to land with v0.18.0) Re-naming
factors
-->hello-world
; moving tutorial out of readme by @pdg744 in #765 - Update docs for 0.18 by @tzerrell in #868
- risc0-binfmt: use no_std for anyhow and elf by @SchmErik in #869
- Added
--po2
flag toloop.rs
by @mothran in #858 - Rename DynProverImpl to ProverServer by @flaub in #871
- Additional documentation on reproducible builds by @heavypackets in #872
- Bump version to 0.18.0 by @flaub in #874
New Contributors
- @jjtny1 made their first contribution in #813
- @winor30 made their first contribution in #793
- @heavypackets made their first contribution in #872
Full Changelog: v0.17.0...v0.18.0