Ledger and Proof Server
Ledger and Proof Server is a component of the Midnight infrastructure that enables zero-knowledge proof generation, transaction verification, and privacy-preserving transaction processing.
22 January 2025
Midnight 3.0.6 Ledger and Proof Server release notes
Learn about the latest updates and improvements to the Midnight Ledger and Proof Server, including new features, bug fixes, and breaking changes designed to enhance functionality and stability.
New Features
- Introduced
coinCommitment
andcoinNullifier
functions. - Introduced API separating keys from Zswap local state to Zswap packages.
- Catch breaking change in
midnight-storage-0.3
, where the serialization shape ofMap
changed. This required minor version bumps on all types with nestedMap
structures.
Breaking Changes
- Some data structures are no longer directly constructable due to added private fields:
Transaction
is no longer a public structured enum. Its components have been extracted intoStandardTransaction
andClaimMintTransaction
, which are now private.ContractCall
,ContractDeploy
, andMaintenanceUpdate
are now private.- Use the
transaction-construction
feature and its methods to construct transactions.
- Changes in
midnight-storage-0.3
affected serialization, requiring updates for types with nestedMap
structures.
Bug Fixes
- Fixed a security bug in Schnorr proofs using incorrect information in in-memory environments.
- Removed various instances of triggerable panics in the ledger.
- Removed vulnerability in balance checking (breaking change for a minority of transactions).
- Fixed Schnorr proofs not surviving serialization.
- Fixed a security-related issue with Schnorr proofs in in-memory environments.
- Fixed transaction re-serialization issues.
- Fixed WASM
checkProofData
endpoint. - Fixed WASM API
fees
endpoint. - Fixed maintenance update Schnorr proofs not persisting after serialization.
- Fixed debug logging removal from the proof server.