Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 24 additions & 24 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ members = [
]

[workspace.package]
version = "2.0.0"
version = "2.1.0-rc.0"
authors = [
"Dev Ojha <ValarDragon@users.noreply.github.com>",
"Sean Bowe <ewillbefull@gmail.com>",
Expand All @@ -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"
Expand Down
31 changes: 31 additions & 0 deletions crates/bellman/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
19 changes: 19 additions & 0 deletions crates/bls12_381/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
44 changes: 44 additions & 0 deletions crates/equihash/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 13 additions & 0 deletions crates/halo2_proofs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading
Loading