github 0xPolygonHermez/zisk v0.18.0

2 hours ago

⚠️ Disclaimer: Software Under Development ⚠️

This software is currently under active development and has not been audited for security or correctness.

Please be aware of the following:

  • The software is not fully tested.
  • Do not use it in production environments until a stable production release is available. 🚧
  • Additional functionalities and optimizations are planned for future releases.
  • Future updates may introduce breaking backward compatible changes as development progresses.

If you encounter any errors or unexpected behavior, please report them. Your feedback is highly appreciated in improving the software.

Summary:

  • Improved distributed proving resilience and deployment
  • zkVM Standards I/O interface support
  • no_std compatibility for ziskos on the ZisK target
  • Non-Rust guest program compatibility fixes
  • NativeAOT and unaligned memory access fixes
  • Verifier improvements
  • Build, CLI and tooling improvements
  • Multiple stability, liveness and correctness fixes

Note
Due to several fixes included in this release, a new proving key (setup) has been generated to reflect the updated constraints and system behavior.


Distributed Proving & Runtime Resilience

This release improves the reliability of distributed proving workflows and runtime recovery.

Key improvements:

  • Improved distributed deployment and cluster configuration
  • Added worker recovery handling for hint failures and recoverable execution errors
  • Added soft-reset support for ASM children, avoiding unnecessary full respawns
  • Improved cleanup of shared memory and orphaned ASM processes
  • Fixed coordinator deadlocks, liveness issues and MPI hint handling
  • Added retry logic for flushing and writing hint data
  • Increased ring buffer size to 128 MB

zkVM Standards I/O Interface

ZisK now implements the zkVM Standards I/O interface, improving compatibility with standard zkVM guest integrations.

Key additions:

  • Added standard read_input and write_output APIs
  • Added zkvm_io.h and matching Rust implementations
  • Integrated the I/O header into bindgen generation
  • Added compile-time ABI checks for the standard interface
  • Routed commit_slice through the standard output writer

no_std ziskos Support

ziskos is now no_std compatible for the ZisK target.

Key changes:

  • Removed unintended std dependencies from zkVM builds
  • Split host-only and zkVM dependencies
  • Made zkvm-interface and zisk-definitions compatible with no_std
  • Added a ZisK-target panic handler
  • Migrated the workspace from bincode v1 to v2 to support no_std usage
  • Added CI checks to ensure libziskos.a does not include unwanted std objects

Non-Rust Guest Program Compatibility

This release includes several fixes for guest programs written in languages such as C, C++, Go, .NET/NativeAOT and Zig.

Key fixes:

  • Fixed unaligned memory access handling
  • Fixed cross-word-boundary reads
  • Fixed 8-byte alignment checks
  • Fixed bus accounting for sub-word operations
  • Fixed NativeAOT alignment processing issues
  • Improved support for proving NativeAOT-based applications

Verifier Improvements

This release includes several verifier-related fixes and optimizations.

Key changes:

  • Updated the Solidity verifier version
  • Fixed malformed proof handling to prevent panics
  • Removed unnecessary casting between u8 and u64
  • Added no_std support for the verifier

Arithmetic & Constraint Fixes

This release includes important soundness and constraint fixes.

Key changes:

  • Fixed final lt_flag verification in ArithEq and ArithEq384
  • Optimized the implementation to save one witness column
  • Fixed invalid values causing global constraint failures
  • Fixed memory and alignment-related constraint violations

Build, CLI & Tooling

Several improvements were added across installation, build workflows and developer tooling.

Key changes:

  • Fixed GPU program setup and GPU binary generation
  • Built GPU binaries using CUDA_ARCHS="major"
  • Added compatible NVIDIA driver detection in ziskup
  • Fixed ziskup plonk
  • Fixed program setup recalculation in CLI calls
  • Added support for building multiple programs in the same workspace
  • Fixed SDK rebuild and determinism-related issues
  • Fixed guest panic handling and Unix tests
  • Updated documentation to match distributed installation

Don't miss a new zisk release

NewReleases is sending notifications on new releases.