⚠️ Disclaimer ⚠️
This version is intended for production use and the project is currently undergoing security and correctness audits.
Although extensive testing and validation have been performed, additional bugs or vulnerabilities may still be discovered. Users should evaluate the software according to their own requirements and use it at their own discretion and responsibility.
Feedback and bug reports are highly appreciated and help improve the reliability of the project.
Summary
- Improved distributed proving robustness and liveness
- Executor architecture refactor
- New cryptographic capabilities and optimizations
- Enhanced SDK and developer experience
- Extended guest portability and multi-target support
- Setup generation and proving key tooling
- Performance and memory usage improvements
- Moving to Poseidon1 as default Merkle tree hash
- Soundness fixes
- Added test-artifacts to self-diagnosis and benchmarking the entire stack
- Developer CLI tools have moved to the new
cargo-zisk-devcommand.
Distributed Proving Robustness
Several improvements were introduced to increase stability and fault tolerance in distributed proving environments.
- Improved coordinator and worker liveness.
- Fixed worker recovery and reconnection scenarios.
- Resolved multiple MPI-related deadlock conditions.
- Improved ROM Histogram synchronization between processes.
- Added better diagnostics and error reporting.
- Improved setup lifecycle handling.
Executor and State Machine Architecture
This release introduces a major internal refactor aimed at simplifying the codebase and improving maintainability.
- Refactored the executor into clearer execution, planning and witness-generation stages.
- Simplified precompile integration through a unified architecture.
- Refactored Main and ROM state machines with improved error handling and validation.
- Simplified virtual tables and state machine definitions.
- Improved range-check APIs.
- Reduced dependency footprint across the workspace.
Cryptography
New cryptographic functionality and optimizations have been added.
- Added BLS12-381 signature verification.
- Added aggregate BLS signature verification support.
- Added hash-to-curve test vectors.
- Optimized secp256k1 and secp256r1 operations.
- Added parallel proof verification.
SDK and Developer Experience
Developer tooling and APIs have been refined.
- Improved SDK ergonomics.
- Simplified stream and stdin usage.
- Renamed deprecated APIs while preserving compatibility.
- Improved panic diagnostics and error messages.
- Fixed build flag handling and CI issues.
- Improved documentation and examples.
Guest Platform Improvements
Guest execution support has been significantly expanded.
- Made
ziskosfullyno_stdcompatible. - Introduced the
zisk_guestconfiguration model. - Added support for additional RISC-V targets.
- Improved static library support.
- Improved compatibility with different guest environments.
Setup Generation and Proving Tooling
This release introduces significant improvements to setup generation and proving key management.
- Reimplemented setup generation in Rust and integrated it into
cargo-zisk. - Added setup packaging and publishing scripts.
- Added proving key caching support.
Performance Improvements
Several optimizations reduce memory consumption and improve execution efficiency.
- Reduced memory usage during chunk replay and witness generation.
- Improved Main and ROM state machine implementations.
- Optimized ROM Histogram trace handling.
- Improved internal jump handling.
- Improved support for RISC-V FENCE instructions.
Adding Poseidon1 as an alternative proving hash function
- Set Poseidon1 as the default Merkle tree hash function rather than Poseidon2 due to recent attacks.
- Updated setup generation and proving components to use Poseidon1 by default.
Soundness fixes
- Fixed multiplication sign handling and overflow corner cases.
- Fixed
LT_ABS_NPbinary operation corner case used by division. - Fixed
mem_alignstate machine step handling. - Fixed soundness and correctness issues in
zisklib. - Fixed
poseidonstate machine soundness. - Stricted bus arguments selectors and multiplicites.