Skip to content
Closed
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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Add `Composer::component_mul_generator_pair`, which multiplies two
generators by one scalar decomposed once [#1015]

### Changed

- Parallelize construction of the verifier pairing inputs with Rayon when `std` is enabled, retaining the serial `no_std` path [#1001]
Expand Down Expand Up @@ -843,6 +848,7 @@ is necessary since `rkyv/validation` was required as a bound.
- Proof system module.

<!-- ISSUES -->
[#1015]: https://github.com/dusk-network/plonk/issues/1015
[#1011]: https://github.com/dusk-network/plonk/issues/1011
[#1006]: https://github.com/dusk-network/plonk/issues/1006
[#1004]: https://github.com/dusk-network/plonk/issues/1004
Expand Down
8 changes: 5 additions & 3 deletions src/composer/constraint_system/ecc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,10 @@ impl WitnessPoint {
/// Decoding bytes into an affine point or binding a point to a commitment
/// does **not** establish subgroup membership on its own: decoding only
/// guarantees an on-curve point, and a commitment only binds the value.
/// [`Composer::component_mul_generator`] does return the typed point: it
/// validates its generator to be of exact prime order, so every multiple of
/// it lies in the subgroup.
/// [`Composer::component_mul_generator`] and
/// [`Composer::component_mul_generator_pair`] do return the typed point: they
/// validate their generators to be of exact prime order, so every multiple of
/// them lies in the subgroup.
///
/// The prime-order subgroup contains the identity, so a torsion-free point
/// may still be the identity — consumers that must rule it out have to
Expand All @@ -76,6 +77,7 @@ impl WitnessPoint {
/// [`Composer::component_neg_point`]: crate::prelude::Composer::component_neg_point
/// [`Composer::component_select_identity`]: crate::prelude::Composer::component_select_identity
/// [`Composer::component_mul_generator`]: crate::prelude::Composer::component_mul_generator
/// [`Composer::component_mul_generator_pair`]: crate::prelude::Composer::component_mul_generator_pair
#[derive(Debug, Clone, Copy)]
pub struct TorsionFreeWitnessPoint(WitnessPoint);

Expand Down
Loading
Loading