Midnight Releases Ledger 9.1.0.0 for Next Network Hard Fork
The release updates the libraries used to generate and verify zero-knowledge proofs and introduces changes to transaction cost parameters. Some contract developers will need to regenerate verifier keys.
By SongMarketCap
Updated:
Midnight has released Ledger 9.1.0.0, the first full release of the ledger software intended for the network’s next hard fork. The update adds support for ECDSA signatures and introduces changes to proof generation, transaction processing and security validation.
The team also released Proof Server 9.0.0, an off-chain service that generates the zero-knowledge proofs used in Midnight transactions. The ledger release notes do not specify a date for the hard fork.
Updated Proof Libraries and ECDSA Support
The ledger software defines the structure of transactions and the rules for updating the network’s state. Ledger 9.1.0.0 follows a series of release candidates and was promoted from version 9.1.0.0-rc.7 after quality assurance approval.
Its principal change is the move to midnight-zk-stdlib v2 and midnight-circuits v7, libraries used to generate and verify zero-knowledge proofs. These proofs allow information to be verified without revealing the underlying private data. Proofs and verifier keys created with the earlier zk-stdlib v1 remain verifiable under the new release.
Ledger 9 also supports ECDSA signatures, a cryptographic signature standard used by networks including Bitcoin and Ethereum. In addition, the proof server supports zkir v3, a newer version of the intermediate representation used for cryptographic circuits.
The release introduces a system transaction called UnlockToTreasury, which moves funds from a locked pool to the treasury. It also marks the first publication of the ledger 9 Rust packages on crates.io, including the new midnight-ledger-v9 package.
Midnight Updates Transaction Cost Parameters
Ledger 9 introduces an explicit price floor governed by ledger parameters. It also replaces a previous computational cost factor with separate factors for validation, guaranteed application and fallible application of transactions.
Midnight transaction fees are paid using DUST, a network resource generated over time from registered NIGHT tokens. The release changes how DUST registration is accounted for, using the time of the block rather than the time declared in the transaction.
Several fixes address potential failures in wallet state processing and bridge fee processing. The release also carries forward security patches previously delivered to mainnet through Ledger 8.1.2 and 8.1.3, including stricter decoding and validation of data used in contract calls.
[NEWSBREAK]
Verifier Keys and Known Issues for Developers
The updated proof libraries change verifier keys for specific types of circuits. According to the release notes, affected contracts are those using zkir v2 circuits with hash_to_curve or zkir v3 circuits that encode a Jubjub scalar. Their verifier keys need to be regenerated; v0 and v1 keys remain unchanged.
Tools that construct or serialize ledger parameters must include the new price floor and cost factors. Code that manually constructs signing envelopes must also move to the shared construction method.
The release notes list two known defects. A contract call that spends a shielded coin and writes change back can be rejected for exceeding its gas budget on a chain with a nonempty commitment tree. A separate issue can cause a contract call paid with exactly one DUST spend to fail a time-to-dismiss check; the notes identify using two or more DUST spends as a way to avoid that issue.
Ledger 9 packages are published under the npm scope @midnightntwrk. The previous @midnight-ntwrk scope continues to receive releases for now.