diff --git a/Cargo.lock b/Cargo.lock index e90d64a1..79433098 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3741,7 +3741,7 @@ dependencies = [ [[package]] name = "zakura-address" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "assert_matches", "bech32", @@ -3755,7 +3755,7 @@ dependencies = [ [[package]] name = "zakura-bellman" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bitvec", "blake2s_simd", @@ -3775,7 +3775,7 @@ dependencies = [ [[package]] name = "zakura-bls12-381" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "criterion 0.3.6", "csv", @@ -3795,7 +3795,7 @@ dependencies = [ [[package]] name = "zakura-equihash" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "blake2b_simd", "corez", @@ -3806,7 +3806,7 @@ dependencies = [ [[package]] name = "zakura-halo2-gadgets" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "arrayvec", "criterion 0.3.6", @@ -3826,14 +3826,14 @@ dependencies = [ [[package]] name = "zakura-halo2-legacy-pdqsort" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "rand 0.10.2", ] [[package]] name = "zakura-halo2-poseidon" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bitvec", "ff", @@ -3843,7 +3843,7 @@ dependencies = [ [[package]] name = "zakura-halo2-proofs" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "assert_matches", "backtrace", @@ -3868,7 +3868,7 @@ dependencies = [ [[package]] name = "zakura-jubjub" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bitvec", "criterion 0.3.6", @@ -3883,7 +3883,7 @@ dependencies = [ [[package]] name = "zakura-keys" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "assert_matches", "bech32", @@ -3920,7 +3920,7 @@ dependencies = [ [[package]] name = "zakura-orchard" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "aes", "bitvec", @@ -3965,14 +3965,14 @@ dependencies = [ [[package]] name = "zakura-pairing" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "group", ] [[package]] name = "zakura-pasta-curves" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bincode", "blake2b_simd", @@ -3995,7 +3995,7 @@ dependencies = [ [[package]] name = "zakura-primitives" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "assert_matches", "blake2b_simd", @@ -4033,7 +4033,7 @@ dependencies = [ [[package]] name = "zakura-proofs" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "blake2b_simd", "byteorder", @@ -4056,7 +4056,7 @@ dependencies = [ [[package]] name = "zakura-protocol" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "corez", "document-features", @@ -4070,7 +4070,7 @@ dependencies = [ [[package]] name = "zakura-reddsa" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bincode", "blake2b_simd", @@ -4096,7 +4096,7 @@ dependencies = [ [[package]] name = "zakura-redjubjub" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bincode", "criterion 0.5.1", @@ -4113,7 +4113,7 @@ dependencies = [ [[package]] name = "zakura-sapling-crypto" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "aes", "bitvec", @@ -4150,7 +4150,7 @@ dependencies = [ [[package]] name = "zakura-sinsemilla" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "criterion 0.4.0", "group", @@ -4161,7 +4161,7 @@ dependencies = [ [[package]] name = "zakura-transparent" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "bip32", "bs58", @@ -4185,7 +4185,7 @@ dependencies = [ [[package]] name = "zakura-zip321" -version = "2.0.0" +version = "2.1.0-rc.0" dependencies = [ "base64", "nom", diff --git a/Cargo.toml b/Cargo.toml index 82157804..07af3568 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ members = [ ] [workspace.package] -version = "2.0.0" +version = "2.1.0-rc.0" authors = [ "Dev Ojha ", "Sean Bowe ", @@ -93,29 +93,29 @@ readme = "crates/README.md" # dependency names members use in code and feature syntax, so several keys # alias the same package (halo2_poseidon/poseidon, sapling, zcash_primitives). [workspace.dependencies] -bellman = { package = "zakura-bellman", version = "2.0.0", path = "crates/bellman", default-features = false } -bls12_381 = { package = "zakura-bls12-381", version = "2.0.0", path = "crates/bls12_381", default-features = false } -equihash = { package = "zakura-equihash", version = "2.0.0", path = "crates/equihash", default-features = false } -halo2_gadgets = { package = "zakura-halo2-gadgets", version = "2.0.0", path = "crates/halo2_gadgets", default-features = false } -halo2_legacy_pdqsort = { package = "zakura-halo2-legacy-pdqsort", version = "2.0.0", path = "crates/halo2_legacy_pdqsort", default-features = false } -halo2_poseidon = { package = "zakura-halo2-poseidon", version = "2.0.0", path = "crates/halo2_poseidon", default-features = false } -halo2_proofs = { package = "zakura-halo2-proofs", version = "2.0.0", path = "crates/halo2_proofs", default-features = false } -jubjub = { package = "zakura-jubjub", version = "2.0.0", path = "crates/jubjub", default-features = false } -orchard = { package = "zakura-orchard", version = "2.0.0", path = "crates/orchard", default-features = false } -pairing = { package = "zakura-pairing", version = "2.0.0", path = "crates/pairing", default-features = false } -pasta_curves = { package = "zakura-pasta-curves", version = "2.0.0", path = "crates/pasta_curves", default-features = false } -poseidon = { package = "zakura-halo2-poseidon", version = "2.0.0", path = "crates/halo2_poseidon", default-features = false } -reddsa = { package = "zakura-reddsa", version = "2.0.0", path = "crates/reddsa", default-features = false } -redjubjub = { package = "zakura-redjubjub", version = "2.0.0", path = "crates/redjubjub", default-features = false } -sapling = { package = "zakura-sapling-crypto", version = "2.0.0", path = "crates/sapling-crypto", default-features = false } -sinsemilla = { package = "zakura-sinsemilla", version = "2.0.0", path = "crates/sinsemilla", default-features = false } -zcash_address = { package = "zakura-address", version = "2.0.0", path = "crates/zcash_address", default-features = false } -zcash_keys = { package = "zakura-keys", version = "2.0.0", path = "crates/zcash_keys", default-features = false } -zcash_primitives = { package = "zakura-primitives", version = "2.0.0", path = "crates/zcash_primitives", default-features = false } -zcash_protocol = { package = "zakura-protocol", version = "2.0.0", path = "crates/zcash_protocol", default-features = false } -zcash_proofs = { package = "zakura-proofs", version = "2.0.0", path = "crates/zcash_proofs", default-features = false } -transparent = { package = "zakura-transparent", version = "2.0.0", path = "crates/zcash_transparent", default-features = false } -zip321 = { package = "zakura-zip321", version = "2.0.0", path = "crates/zip321", default-features = false } +bellman = { package = "zakura-bellman", version = "2.1.0-rc.0", path = "crates/bellman", default-features = false } +bls12_381 = { package = "zakura-bls12-381", version = "2.1.0-rc.0", path = "crates/bls12_381", default-features = false } +equihash = { package = "zakura-equihash", version = "2.1.0-rc.0", path = "crates/equihash", default-features = false } +halo2_gadgets = { package = "zakura-halo2-gadgets", version = "2.1.0-rc.0", path = "crates/halo2_gadgets", default-features = false } +halo2_legacy_pdqsort = { package = "zakura-halo2-legacy-pdqsort", version = "2.1.0-rc.0", path = "crates/halo2_legacy_pdqsort", default-features = false } +halo2_poseidon = { package = "zakura-halo2-poseidon", version = "2.1.0-rc.0", path = "crates/halo2_poseidon", default-features = false } +halo2_proofs = { package = "zakura-halo2-proofs", version = "2.1.0-rc.0", path = "crates/halo2_proofs", default-features = false } +jubjub = { package = "zakura-jubjub", version = "2.1.0-rc.0", path = "crates/jubjub", default-features = false } +orchard = { package = "zakura-orchard", version = "2.1.0-rc.0", path = "crates/orchard", default-features = false } +pairing = { package = "zakura-pairing", version = "2.1.0-rc.0", path = "crates/pairing", default-features = false } +pasta_curves = { package = "zakura-pasta-curves", version = "2.1.0-rc.0", path = "crates/pasta_curves", default-features = false } +poseidon = { package = "zakura-halo2-poseidon", version = "2.1.0-rc.0", path = "crates/halo2_poseidon", default-features = false } +reddsa = { package = "zakura-reddsa", version = "2.1.0-rc.0", path = "crates/reddsa", default-features = false } +redjubjub = { package = "zakura-redjubjub", version = "2.1.0-rc.0", path = "crates/redjubjub", default-features = false } +sapling = { package = "zakura-sapling-crypto", version = "2.1.0-rc.0", path = "crates/sapling-crypto", default-features = false } +sinsemilla = { package = "zakura-sinsemilla", version = "2.1.0-rc.0", path = "crates/sinsemilla", default-features = false } +zcash_address = { package = "zakura-address", version = "2.1.0-rc.0", path = "crates/zcash_address", default-features = false } +zcash_keys = { package = "zakura-keys", version = "2.1.0-rc.0", path = "crates/zcash_keys", default-features = false } +zcash_primitives = { package = "zakura-primitives", version = "2.1.0-rc.0", path = "crates/zcash_primitives", default-features = false } +zcash_protocol = { package = "zakura-protocol", version = "2.1.0-rc.0", path = "crates/zcash_protocol", default-features = false } +zcash_proofs = { package = "zakura-proofs", version = "2.1.0-rc.0", path = "crates/zcash_proofs", default-features = false } +transparent = { package = "zakura-transparent", version = "2.1.0-rc.0", path = "crates/zcash_transparent", default-features = false } +zip321 = { package = "zakura-zip321", version = "2.1.0-rc.0", path = "crates/zip321", default-features = false } # Parsing and encoding dependencies used by ZIP 321 payment requests. base64 = "0.22" diff --git a/crates/bellman/CHANGELOG.md b/crates/bellman/CHANGELOG.md index 5af0cd7a..6263335b 100644 --- a/crates/bellman/CHANGELOG.md +++ b/crates/bellman/CHANGELOG.md @@ -10,6 +10,37 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added a prepared Groth16 batch verifying key that reuses fixed pairing + terms across repeated batches + ([#487](https://github.com/zakura-core/common/pull/487)). +- Added joint verification of two Groth16 batches with prepared keys, + sharing one Miller loop and final exponentiation + ([#496](https://github.com/zakura-core/common/pull/496)). +- Added reusable fixed G2 terms that a Groth16 batch verifying key can borrow + ([#499](https://github.com/zakura-core/common/pull/499)). + +### Changed + +- Sped up single Groth16 proof verification when a prepared verifying key is + reused, especially for proofs with several public inputs + ([#482](https://github.com/zakura-core/common/pull/482)). +- Sped up multicore Groth16 batch verification, especially for batches + smaller than the Rayon thread count + ([#483](https://github.com/zakura-core/common/pull/483)). +- Switched Groth16 proof finalization and ordinary verification to the + explicit variable-time affine conversion hooks. Prover timing can now + depend on witness-derived projective coordinates; batch verification + continues to use its existing conversion for points involving private batch + randomizers + ([#494](https://github.com/zakura-core/common/pull/494)). +- Sped up repeated Groth16 verification with a prepared verifying key, + including prepared batch verifying keys + ([#495](https://github.com/zakura-core/common/pull/495)). + ## [1.0.1] - 2026-08-29 ### Changed diff --git a/crates/bls12_381/CHANGELOG.md b/crates/bls12_381/CHANGELOG.md index ccfb0c8b..011419a8 100644 --- a/crates/bls12_381/CHANGELOG.md +++ b/crates/bls12_381/CHANGELOG.md @@ -10,6 +10,25 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Changed + +- Sped up final exponentiation, and therefore pairings, using variable-time + field inversion. Pairing, final exponentiation, and random target-group + generation now have documented input-dependent timing and are intended for + public inputs such as Groth16 proofs + ([#485](https://github.com/zakura-core/common/pull/485), + [#494](https://github.com/zakura-core/common/pull/494), + [#501](https://github.com/zakura-core/common/pull/501)). +- Sped up prepared multi-pairing Miller loops + ([#489](https://github.com/zakura-core/common/pull/489)). +- Implemented the new affine-conversion hooks with variable-time inversion for + G1 and G2 projective points. Timing can depend on projective coordinates + ([#494](https://github.com/zakura-core/common/pull/494)). +- Sped up Miller loops with reusable prepared G2 points + ([#495](https://github.com/zakura-core/common/pull/495)). + ## [2.0.0] - 2026-09-23 ### Changed diff --git a/crates/equihash/CHANGELOG.md b/crates/equihash/CHANGELOG.md index 27131f3c..1b77d195 100644 --- a/crates/equihash/CHANGELOG.md +++ b/crates/equihash/CHANGELOG.md @@ -10,6 +10,50 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added Equihash verification and the optional Tromp CPU solver as the + `zakura-equihash` package, preserving the `equihash` library target and + upstream `0.3.0` public API + ([#44](https://github.com/zakura-core/common/pull/44)). + +### Changed + +- Raised the minimum supported Rust version from 1.85.1 to 1.91 and adopted + the Zakura Common workspace version and package metadata + ([#44](https://github.com/zakura-core/common/pull/44)). +- Removed the C compiler requirement for the optional `solver` feature by + implementing solution generation in Rust + ([#509](https://github.com/zakura-core/common/pull/509)). +- Reduced CPU time for Equihash `(200, 9)` solution generation through the + optional `solver` feature, with additional fast paths on supported x86-64 + CPUs + ([#502](https://github.com/zakura-core/common/pull/502), + [#504](https://github.com/zakura-core/common/pull/504), + [#506](https://github.com/zakura-core/common/pull/506), + [#508](https://github.com/zakura-core/common/pull/508), + [#509](https://github.com/zakura-core/common/pull/509), + [#510](https://github.com/zakura-core/common/pull/510), + [#512](https://github.com/zakura-core/common/pull/512), + [#513](https://github.com/zakura-core/common/pull/513), + [#515](https://github.com/zakura-core/common/pull/515), + [#516](https://github.com/zakura-core/common/pull/516)). +- `is_valid_solution` now rejects inputs unless `input` and `nonce` together + are a 140-byte Zcash block header and nonce + ([#514](https://github.com/zakura-core/common/pull/514)). +- Sped up `is_valid_solution` by about 1.7–2.9×, using AVX2 or NEON where + available + ([#514](https://github.com/zakura-core/common/pull/514)). + +### Fixed + +- `is_valid_solution` now returns an invalid-parameters error, instead of + panicking, for `(n, k)` with `n > 512` or a collision length outside 8 to + 24 bits + ([#514](https://github.com/zakura-core/common/pull/514)). + ## Record of Fork `zakura-equihash` began as a fork of the `equihash` crate and has been diff --git a/crates/halo2_proofs/CHANGELOG.md b/crates/halo2_proofs/CHANGELOG.md index d6b985d8..eda21930 100644 --- a/crates/halo2_proofs/CHANGELOG.md +++ b/crates/halo2_proofs/CHANGELOG.md @@ -10,6 +10,19 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added the `portable` feature to forward portable Pasta field arithmetic + selection ([#505](https://github.com/zakura-core/common/pull/505)). + +### Changed + +- Sped up cached public-instance commitments in proof batches, improving + large-batch Orchard verification on x86-64 + ([#503](https://github.com/zakura-core/common/pull/503)). + ## [2.0.0] - 2026-09-23 ### Added diff --git a/crates/orchard/CHANGELOG.md b/crates/orchard/CHANGELOG.md index d488d1e4..6f23ad9d 100644 --- a/crates/orchard/CHANGELOG.md +++ b/crates/orchard/CHANGELOG.md @@ -10,6 +10,14 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added the `portable` feature to forward portable Pasta field arithmetic + selection through the proving dependencies + ([#505](https://github.com/zakura-core/common/pull/505)). + ## [2.0.0] - 2026-09-23 ### Added diff --git a/crates/pairing/CHANGELOG.md b/crates/pairing/CHANGELOG.md index 71a6a6ff..f67449c8 100644 --- a/crates/pairing/CHANGELOG.md +++ b/crates/pairing/CHANGELOG.md @@ -10,6 +10,18 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added defaulted `Engine::g1_to_affine_vartime` and + `Engine::g2_to_affine_vartime` hooks for explicit affine conversion with + possible input-dependent timing + ([#494](https://github.com/zakura-core/common/pull/494)). +- Added `MultiMillerLoop::prepare_reusable_g2` for engines that can spend more + preparation time to speed up repeated Miller loops + ([#495](https://github.com/zakura-core/common/pull/495)). + ## [1.0.1] - 2026-08-29 ### Changed diff --git a/crates/pasta_curves/CHANGELOG.md b/crates/pasta_curves/CHANGELOG.md index 1537f7d1..272d3ca3 100644 --- a/crates/pasta_curves/CHANGELOG.md +++ b/crates/pasta_curves/CHANGELOG.md @@ -10,6 +10,24 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added the `portable` feature to disable automatic x86-64 assembly selection + for binaries that may run on older CPUs + ([#505](https://github.com/zakura-core/common/pull/505)). + +### Changed + +- Native x86-64 builds now select the BMI2+ADX Pasta field backend at build + time when the build CPU supports both extensions. Explicit target settings + and cross-compilation remain conservative, and there is no runtime dispatch + ([#505](https://github.com/zakura-core/common/pull/505)). +- Reduced the scratch memory used by batched affine additions in + multi-scalar multiplications + ([#518](https://github.com/zakura-core/common/pull/518)). + ## [2.0.0] - 2026-09-23 ### Added diff --git a/crates/reddsa/CHANGELOG.md b/crates/reddsa/CHANGELOG.md index 86caacae..bc4d193d 100644 --- a/crates/reddsa/CHANGELOG.md +++ b/crates/reddsa/CHANGELOG.md @@ -10,6 +10,16 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Changed + +- Sped up Sapling single signature verification by about 36% when the `alloc` + feature is enabled ([#480](https://github.com/zakura-core/common/pull/480)). +- Sped up empty and single-item signature batch verification. These batches + no longer consume random bytes + ([#498](https://github.com/zakura-core/common/pull/498)). + ## [2.0.0] - 2026-09-23 ### Changed diff --git a/crates/redjubjub/CHANGELOG.md b/crates/redjubjub/CHANGELOG.md index 76f01758..7e6cadb7 100644 --- a/crates/redjubjub/CHANGELOG.md +++ b/crates/redjubjub/CHANGELOG.md @@ -10,6 +10,14 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Changed + +- Sped up empty and single-item batch RedJubjub verification through the + updated RedDSA verifier + ([#498](https://github.com/zakura-core/common/pull/498)). + ## [1.0.1] - 2026-08-29 ### Changed diff --git a/crates/sapling-crypto/CHANGELOG.md b/crates/sapling-crypto/CHANGELOG.md index e1c5a8ff..d95336b5 100644 --- a/crates/sapling-crypto/CHANGELOG.md +++ b/crates/sapling-crypto/CHANGELOG.md @@ -10,6 +10,24 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Added + +- Added reusable prepared keys for Sapling batch validation, avoiding + repeated fixed G2 preparation across validators + ([#491](https://github.com/zakura-core/common/pull/491)). + +### Changed + +- Sped up small mixed Spend and Output proof batches using joint prepared + verification ([#496](https://github.com/zakura-core/common/pull/496)). +- Sped up Sapling Spend nullifier public-input packing + ([#497](https://github.com/zakura-core/common/pull/497)). +- Sped up repeated Sapling batch validation by retaining prepared G2 terms + inside Spend and Output verifying keys + ([#499](https://github.com/zakura-core/common/pull/499)). + ## [1.0.1] - 2026-08-29 ### Changed diff --git a/crates/zcash_primitives/CHANGELOG.md b/crates/zcash_primitives/CHANGELOG.md index bd296163..f31a1e63 100644 --- a/crates/zcash_primitives/CHANGELOG.md +++ b/crates/zcash_primitives/CHANGELOG.md @@ -10,6 +10,13 @@ internal implementation details are not tracked here. ## [Unreleased] +## [2.1.0-rc.0] - 2026-09-27 + +### Changed + +- Switched Equihash verification to the maintained `zakura-equihash` package + ([#44](https://github.com/zakura-core/common/pull/44)). + ## [2.0.0] - 2026-09-23 ### Changed diff --git a/docs/changelog/unreleased/44.md b/docs/changelog/unreleased/44.md deleted file mode 100644 index 241e56bd..00000000 --- a/docs/changelog/unreleased/44.md +++ /dev/null @@ -1,21 +0,0 @@ -## zakura-equihash - -### Added - -- Added Equihash verification and the optional Tromp CPU solver as the - `zakura-equihash` package, preserving the `equihash` library target and - upstream `0.3.0` public API - ([#44](https://github.com/zakura-core/common/pull/44)). - -### Changed - -- Raised the minimum supported Rust version from 1.85.1 to 1.91 and adopted - the Zakura Common workspace version and package metadata - ([#44](https://github.com/zakura-core/common/pull/44)). - -## zakura-primitives - -### Changed - -- Switched Equihash verification to the maintained `zakura-equihash` package - ([#44](https://github.com/zakura-core/common/pull/44)). diff --git a/docs/changelog/unreleased/480.md b/docs/changelog/unreleased/480.md deleted file mode 100644 index 265d689f..00000000 --- a/docs/changelog/unreleased/480.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-reddsa - -### Changed - -- Sped up Sapling single signature verification by about 36% when the `alloc` - feature is enabled ([#480](https://github.com/zakura-core/common/pull/480)). diff --git a/docs/changelog/unreleased/482.md b/docs/changelog/unreleased/482.md deleted file mode 100644 index 67067e16..00000000 --- a/docs/changelog/unreleased/482.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-bellman - -### Changed - -- Sped up single Groth16 proof verification when a prepared verifying key is - reused, especially for proofs with several public inputs - ([#482](https://github.com/zakura-core/common/pull/482)). diff --git a/docs/changelog/unreleased/483.md b/docs/changelog/unreleased/483.md deleted file mode 100644 index 7f601c81..00000000 --- a/docs/changelog/unreleased/483.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-bellman - -### Changed - -- Sped up multicore Groth16 batch verification by adapting Miller-loop work - size to the Rayon pool and batch size - ([#483](https://github.com/zakura-core/common/pull/483)). diff --git a/docs/changelog/unreleased/485.md b/docs/changelog/unreleased/485.md deleted file mode 100644 index d40b2992..00000000 --- a/docs/changelog/unreleased/485.md +++ /dev/null @@ -1,8 +0,0 @@ -## zakura-bls12-381 - -### Changed - -- Sped up final exponentiation using compressed cyclotomic squaring and a - batched inversion at the decompression checkpoints. The variable-time - inversion used by this path was added in #494 - ([#485](https://github.com/zakura-core/common/pull/485)). diff --git a/docs/changelog/unreleased/487.md b/docs/changelog/unreleased/487.md deleted file mode 100644 index 4e414b71..00000000 --- a/docs/changelog/unreleased/487.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-bellman - -### Added - -- Added a prepared Groth16 batch verifying key that reuses fixed pairing - terms across repeated batches - ([#487](https://github.com/zakura-core/common/pull/487)). diff --git a/docs/changelog/unreleased/489.md b/docs/changelog/unreleased/489.md deleted file mode 100644 index c9d64512..00000000 --- a/docs/changelog/unreleased/489.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-bls12-381 - -### Changed - -- Sped up prepared multi-pairing Miller loops by reducing sparse extension-field - products more efficiently ([#489](https://github.com/zakura-core/common/pull/489)). diff --git a/docs/changelog/unreleased/491.md b/docs/changelog/unreleased/491.md deleted file mode 100644 index 84551dff..00000000 --- a/docs/changelog/unreleased/491.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-sapling-crypto - -### Added - -- Added reusable prepared keys for Sapling batch validation, avoiding - repeated fixed G2 preparation across validators - ([#491](https://github.com/zakura-core/common/pull/491)). diff --git a/docs/changelog/unreleased/494.md b/docs/changelog/unreleased/494.md deleted file mode 100644 index 1c3c3580..00000000 --- a/docs/changelog/unreleased/494.md +++ /dev/null @@ -1,30 +0,0 @@ -## zakura-pairing - -### Added - -- Added defaulted `Engine::g1_to_affine_vartime` and - `Engine::g2_to_affine_vartime` hooks for explicit affine conversion with - possible input-dependent timing - ([#494](https://github.com/zakura-core/common/pull/494)). - -## zakura-bls12-381 - -### Changed - -- Sped up final exponentiation with variable-time binary-GCD inversion for - public pairing inputs, and documented the input-dependent timing of pairing, - final exponentiation, and random target-group generation - ([#494](https://github.com/zakura-core/common/pull/494)). -- Implemented the new affine-conversion hooks with variable-time inversion for - G1 and G2 projective points. Timing can depend on projective coordinates - ([#494](https://github.com/zakura-core/common/pull/494)). - -## zakura-bellman - -### Changed - -- Use the explicit variable-time affine conversion hooks for Groth16 proof - finalization and ordinary verification. Prover timing can now depend on - witness-derived projective coordinates; batch verification continues to use - its existing conversion for points involving private batch randomizers - ([#494](https://github.com/zakura-core/common/pull/494)). diff --git a/docs/changelog/unreleased/495.md b/docs/changelog/unreleased/495.md deleted file mode 100644 index 10df47d4..00000000 --- a/docs/changelog/unreleased/495.md +++ /dev/null @@ -1,22 +0,0 @@ -## zakura-pairing - -### Added - -- Added `MultiMillerLoop::prepare_reusable_g2` for engines that can spend more - preparation time to speed up repeated Miller loops - ([#495](https://github.com/zakura-core/common/pull/495)). - -## zakura-bls12-381 - -### Changed - -- Sped up Miller loops with reusable prepared G2 points - ([#495](https://github.com/zakura-core/common/pull/495)). - -## zakura-bellman - -### Changed - -- Sped up repeated Groth16 verification with a prepared verifying key, - including prepared batch verifying keys - ([#495](https://github.com/zakura-core/common/pull/495)). diff --git a/docs/changelog/unreleased/496.md b/docs/changelog/unreleased/496.md deleted file mode 100644 index 6f6afec7..00000000 --- a/docs/changelog/unreleased/496.md +++ /dev/null @@ -1,14 +0,0 @@ -## zakura-bellman - -### Added - -- Added joint verification of two Groth16 batches with prepared keys, - sharing one Miller loop and final exponentiation - ([#496](https://github.com/zakura-core/common/pull/496)). - -## zakura-sapling-crypto - -### Changed - -- Sped up small mixed Spend and Output proof batches using joint prepared - verification ([#496](https://github.com/zakura-core/common/pull/496)). diff --git a/docs/changelog/unreleased/497.md b/docs/changelog/unreleased/497.md deleted file mode 100644 index 1bb3d9ff..00000000 --- a/docs/changelog/unreleased/497.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-sapling-crypto - -### Changed - -- Sped up Sapling Spend nullifier public-input packing - ([#497](https://github.com/zakura-core/common/pull/497)). diff --git a/docs/changelog/unreleased/498.md b/docs/changelog/unreleased/498.md deleted file mode 100644 index 9eef3fec..00000000 --- a/docs/changelog/unreleased/498.md +++ /dev/null @@ -1,15 +0,0 @@ -## zakura-reddsa - -### Changed - -- Sped up empty and single-item signature batch verification. These batches - no longer consume random bytes - ([#498](https://github.com/zakura-core/common/pull/498)). - -## zakura-redjubjub - -### Changed - -- Sped up empty and single-item batch RedJubjub verification through the - updated RedDSA verifier - ([#498](https://github.com/zakura-core/common/pull/498)). diff --git a/docs/changelog/unreleased/499.md b/docs/changelog/unreleased/499.md deleted file mode 100644 index 754a3562..00000000 --- a/docs/changelog/unreleased/499.md +++ /dev/null @@ -1,14 +0,0 @@ -## zakura-bellman - -### Added - -- Added reusable fixed G2 terms that a Groth16 batch verifying key can borrow - ([#499](https://github.com/zakura-core/common/pull/499)). - -## zakura-sapling-crypto - -### Changed - -- Sped up repeated Sapling batch validation by retaining prepared G2 terms - inside Spend and Output verifying keys - ([#499](https://github.com/zakura-core/common/pull/499)). diff --git a/docs/changelog/unreleased/501.md b/docs/changelog/unreleased/501.md deleted file mode 100644 index c6e95ab2..00000000 --- a/docs/changelog/unreleased/501.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-bls12-381 - -### Changed - -- Sped up final exponentiation for pairings and Groth16 verification - ([#501](https://github.com/zakura-core/common/pull/501)). diff --git a/docs/changelog/unreleased/502.md b/docs/changelog/unreleased/502.md deleted file mode 100644 index bd8ac5b0..00000000 --- a/docs/changelog/unreleased/502.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Sped up CPU Equihash solution generation through the optional `solver` - feature ([#502](https://github.com/zakura-core/common/pull/502)). diff --git a/docs/changelog/unreleased/503.md b/docs/changelog/unreleased/503.md deleted file mode 100644 index c17ce382..00000000 --- a/docs/changelog/unreleased/503.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-halo2-proofs - -### Changed - -- Sped up cached public-instance commitments in proof batches, improving - large-batch Orchard verification on x86-64 - ([#503](https://github.com/zakura-core/common/pull/503)). diff --git a/docs/changelog/unreleased/504.md b/docs/changelog/unreleased/504.md deleted file mode 100644 index 0f407714..00000000 --- a/docs/changelog/unreleased/504.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Sped up Linux CPU Equihash solution generation through the optional `solver` - feature ([#504](https://github.com/zakura-core/common/pull/504)). diff --git a/docs/changelog/unreleased/505.md b/docs/changelog/unreleased/505.md deleted file mode 100644 index 6d0f60dd..00000000 --- a/docs/changelog/unreleased/505.md +++ /dev/null @@ -1,29 +0,0 @@ -## zakura-pasta-curves - -### Added - -- Added the `portable` feature to disable automatic x86-64 assembly selection - for binaries that may run on older CPUs - ([#505](https://github.com/zakura-core/common/pull/505)). - -### Changed - -- Native x86-64 builds now select the BMI2+ADX Pasta field backend at build - time when the build CPU supports both extensions. Explicit target settings - and cross-compilation remain conservative, and there is no runtime dispatch - ([#505](https://github.com/zakura-core/common/pull/505)). - -## zakura-halo2-proofs - -### Added - -- Added the `portable` feature to forward portable Pasta field arithmetic - selection ([#505](https://github.com/zakura-core/common/pull/505)). - -## zakura-orchard - -### Added - -- Added the `portable` feature to forward portable Pasta field arithmetic - selection through the proving dependencies - ([#505](https://github.com/zakura-core/common/pull/505)). diff --git a/docs/changelog/unreleased/506.md b/docs/changelog/unreleased/506.md deleted file mode 100644 index ba526fe3..00000000 --- a/docs/changelog/unreleased/506.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation - ([#506](https://github.com/zakura-core/common/pull/506)). diff --git a/docs/changelog/unreleased/508.md b/docs/changelog/unreleased/508.md deleted file mode 100644 index ac6748c9..00000000 --- a/docs/changelog/unreleased/508.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation on AVX-512 CPUs - ([#508](https://github.com/zakura-core/common/pull/508)). diff --git a/docs/changelog/unreleased/509.md b/docs/changelog/unreleased/509.md deleted file mode 100644 index 203568ec..00000000 --- a/docs/changelog/unreleased/509.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-equihash - -### Changed - -- Removed the C compiler requirement and reduced CPU time for the optional - Equihash `(200, 9)` solver by implementing solution generation in Rust - ([#509](https://github.com/zakura-core/common/pull/509)). diff --git a/docs/changelog/unreleased/510.md b/docs/changelog/unreleased/510.md deleted file mode 100644 index 99d3ffaa..00000000 --- a/docs/changelog/unreleased/510.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation - ([#510](https://github.com/zakura-core/common/pull/510)). diff --git a/docs/changelog/unreleased/512.md b/docs/changelog/unreleased/512.md deleted file mode 100644 index 849aff95..00000000 --- a/docs/changelog/unreleased/512.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation - ([#512](https://github.com/zakura-core/common/pull/512)). diff --git a/docs/changelog/unreleased/513.md b/docs/changelog/unreleased/513.md deleted file mode 100644 index e714dc2d..00000000 --- a/docs/changelog/unreleased/513.md +++ /dev/null @@ -1,7 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation with 108-byte - headers on supported x86-64 CPUs - ([#513](https://github.com/zakura-core/common/pull/513)). diff --git a/docs/changelog/unreleased/514.md b/docs/changelog/unreleased/514.md deleted file mode 100644 index 42d5e7c7..00000000 --- a/docs/changelog/unreleased/514.md +++ /dev/null @@ -1,17 +0,0 @@ -## zakura-equihash - -### Changed - -- `is_valid_solution` now rejects inputs unless `input` and `nonce` together - are a 140-byte Zcash block header and nonce - ([#514](https://github.com/zakura-core/common/pull/514)). -- Sped up `is_valid_solution` by about 1.7–2.9×, using AVX2 or NEON where - available - ([#514](https://github.com/zakura-core/common/pull/514)). - -### Fixed - -- `is_valid_solution` now returns an invalid-parameters error, instead of - panicking, for `(n, k)` with `n > 512` or a collision length outside 8 to - 24 bits - ([#514](https://github.com/zakura-core/common/pull/514)). diff --git a/docs/changelog/unreleased/515.md b/docs/changelog/unreleased/515.md deleted file mode 100644 index eb1a7d00..00000000 --- a/docs/changelog/unreleased/515.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation - ([#515](https://github.com/zakura-core/common/pull/515)). diff --git a/docs/changelog/unreleased/516.md b/docs/changelog/unreleased/516.md deleted file mode 100644 index a1ba6be9..00000000 --- a/docs/changelog/unreleased/516.md +++ /dev/null @@ -1,6 +0,0 @@ -## zakura-equihash - -### Changed - -- Reduced CPU time for Equihash `(200, 9)` solution generation - ([#516](https://github.com/zakura-core/common/pull/516)). diff --git a/docs/changelog/unreleased/518.md b/docs/changelog/unreleased/518.md deleted file mode 100644 index e8232d79..00000000 --- a/docs/changelog/unreleased/518.md +++ /dev/null @@ -1,8 +0,0 @@ -## zakura-pasta-curves - -### Changed - -- Reduced affine MSM scratch memory and shortened the dependent path for - batched affine additions. Prepared MSM tables now use cache-line-aware - alignment and bounded prefetch hints on the measured x86-64 CPU/OS feature - profile ([#518](https://github.com/zakura-core/common/pull/518)).