Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jubjub-schnorr: Initial commit #1

Merged
merged 2 commits into from
Jan 8, 2024
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
14 changes: 7 additions & 7 deletions .github/workflows/dusk_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
name: Build Benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- run: cargo bench --no-run --features=double,var_generator

Expand All @@ -28,17 +28,17 @@ jobs:
with:
test_flags: --features=double,var_generator

test_nightly_std_double:
name: Nightly tests std
test_nightly_std_double_compiles:
name: Nightly std feature=double tests compile
uses: dusk-network/.github/.github/workflows/run-tests.yml@main
with:
test_flags: --features=var_generator
test_flags: --features=double --no-run

test_nightly_std_var_generator:
name: Nightly tests std
test_nightly_std_var_generator_compiles:
name: Nightly std feature=var_generator tests compile
uses: dusk-network/.github/.github/workflows/run-tests.yml@main
with:
test_flags: --features=double
test_flags: --features=var_generator --no-run

test_nightly_no_std:
name: Nightly tests no_std
Expand Down
286 changes: 4 additions & 282 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,292 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.18.0] - 2024-01-03

### Changed

- Update `dusk-plonk` -> 0.19
- Update `dusk-poseidon` -> 0.33

## [0.17.0] - 2023-12-13

### Changed

- Move `verify` method to the public key structs [#81]
- Rename `PublicKeyPair` to `PublicKeyDouble` [#110]
- Rename `sign-single` to `sign` [#110]
- Restructure code internally [#110]
- Rename `DoubleSignature` to `SignatureDouble` [#107]
- Rename gadgets [#107]:
- `single_key_verify` -> `verify_signature`
- `double_key_verify` -> `verify_signature_double`
- Replace `HexDebug` trait by `Debug` for `SecretKey` and `PublicKey` [#107]
- Derive `PartialEq` trait instead of implementing it manually [#107]
- Derive `PartialEq` for `PublicKeyDouble` [#107]
- Update `dusk-bls12_381` -> 0.13
- Update `dusk-jubjub` -> 0.14
- Update `dusk-plonk` -> 0.18
- Update `dusk-poseidon` -> 0.32

### Added

- Add `from_raw_unchecked` to `PublicKeyDouble` [#81]
- Add latex documentation of the signature scheme to the README [#110]
- Add `SecretKeyVarGen`, `PublicKeyVarGen` and `SignatureVarGen` [#107]
- Add "double" feature for `SignatureDouble` [#107]
- Add "var_generator" feature for `SignatureVarGen` [#107]
- Add gadget `verify_signature_var_gen` [#107]
- Add `ff` dependency

## [0.16.0] - 2023-11-22

### Added

- Update README with keys structure [#104]
- Add documentation to the new key structs [#105]

### Changed

- Change the NotePublicKey tuple struct to directly be a tuple with two fields [#111]
- Change double and single signature creation to be a method on `NoteSecretKey` [#81]
- Rename internal `key_variants` module to `signatures` [#96]
- Rename the signatures method `to_witness` to `append` [#99]
- Update benchmarks to latest version of plonk [#94]
- Update test structure [#94]
- Move `PublicKeyPair` from `DoubleSignature` to `public_keys` [#95]
- Rename keys: `NoteSecretKey` -> `SecretKey`, `NotePublicKey` -> `PublicKey` [#108]

### Removed

- Hide `(Double)Signature::new()` from the public API [#81]

## [0.15.0] - 2023-11-1

### Added

- Move `SecretKey` & `PublicKey` from dusk_pki and renamed them to `NoteSecretKey` & `NotePublicKey` [#80]
- Add lib and module level documentation [#49]

### Changed

- Rename `double_key::Proof` struct to `double_key::Signature` [#89]
- Deprecate `Proof` public struct [#89]
- Re-export `double_key::Proof` as `DoubleSignature` [#89]

## [0.14.0] - 2023-10-12

### Changed

- Update `dusk-bls12_381` from `0.11` to `0.12`
- Update `dusk-jubjub` from `0.12` to `0.13`
- Update `dusk-pki` from `0.12` to `0.13`
- Update `dusk-poseidon` from `0.30` to `0.31`
- Update `dusk-plonk` from `0.14` to `0.16`

### Added

- Add `ff` dev-dependency

### Removed

- Remove `canonical` and `canonical_derive` dependencies
- Remove `canon` feature

## [0.13.0] - 2023-06-28

### Changed

- Update `dusk-pki` from `0.11` to `0.12`
- Update `dusk-poseidon` from `0.28` to `0.30`
- Update `dusk-plonk` from `0.13` to `0.14`
- Update `rust-toolchain` from `nightly-2022-08-08` to `nightly-2023-05-22`

## [0.12.1] - 2022-12-19

### Added

- Derive `Default` for `Signature` and `Proof`

## [0.12.0] - 2022-10-27

### Changed

- Update `dusk-plonk` from `0.12` to `0.13`
- Update `dusk-poseidon` from `0.26` to `0.28`

## [0.11.1] - 2022-10-19

### Added

- Add support for `rkyv-impl` under `no_std`

## [0.11.0] - 2022-08-17

### Added

- Add `CheckBytes` impl for `rkyv`ed structs
- Add `rkyv` implementations behind feature [#69]

### Changed

- Update dusk-poseidon from `0.23.0-rc` to `0.26`
- Update dusk-pki from `0.9.0-rc` to `0.11`
- Update dusk-plonk from `0.9` to `0.12`
- Update dusk-bls12_381 from `0.8` to `0.11`
- Update dusk-jubjub from `0.10` to `0.12`
- Update canonical from `0.6` to `0.7`
- Update canonical_derive from `0.6` to `0.7`

## Fixed

- Fix KeyPair serialization

## [0.8.0-rc]

### Changed

- Update `dusk-poseidon` from `0.21` to `0.22.0-rc` [#59]
- Update `dusk-pki` from `0.7` to `0.8.0-rc` [#59]

## [0.7.0] - 2021-06-02

### Added

- Add `default-features=false` to `rand_core` [#52]

### Changed

- Update `canonical` from `0.5` to `0.6` [#41]
- Update `dusk-plonk` from `0.6` to `0.8` [#41]
- Update `dusk-poseidon` from `0.18` to `0.21.0-rc` [#41]
- Update `dusk-pki` from `0.6` to `0.7` [#41]
- Change crate name from `schnorr` to `dusk-schnorr` [#41]
- Change default crate featureset to be `alloc`. [#50]

### Removed

- Remove one hashing level for `message` in signature processing [#55]
- Remove `anyhow` from dependencies [#50]

## [0.6.0] - 2021-04-06

### Changed

- Update `dusk-plonk` from `0.6` to `0.7` [#37]
- Update `dusk-poseidon` from `0.19` to `0.20` [#37]

## [0.5.2] - 2021-02-15

### Changed

- Update `dusk-pki` to pull from crates.io

## [0.5.1] - 2021-02-11

### Changed

- Update `dusk-pki` `v0.6.0`

## [0.5.0] - 2021-02-11

### Changed

- Update `poseidon252` to `dusk-poseidon` `v0.18`

## [0.4.1] - 2021-02-09

### Changed

- Bump `dusk-pki` to `v0.5.3`

## [0.4.0] - 2021-01-29
## [0.1.0] - 2024-01-08

### Added

- `PublicKeyPair` attributes R and R_prime exposed as methods
- `Proof::keys` added to fetch `PublicKeyPair`

### Changed

- JubJubScalars renamed from `U` to `u`, as in notation standards
- Bump `poseidon252` to `v0.17.0`
- Bump `dusk-pki` to `v0.5.1`

## [0.3.0] - 2021-01-28

### Added

- Add `dusk_bytes::Serializable` trait to structure
- Add dusk_pki's `SecretKey` and `PublicKey`

### Removed

- Remove manual implementation of `to_bytes` and `from_bytes`
- Remove `SecretKey`, `PublicKey` from `schnorr`
- Remove `Error` schnorr enum

### Changed

- `single_key::SecretKey.sign` method is now `Signature::new`
- `double_key::SecretKey.sign` method is now `Proof::new`
- Change return value of single's key `verify` from `Result` to `bool`
- Change return value of double's key `verify` from `Result` to `bool`
- Update CHANGELOG to ISO 8601
- Bump `poseidon252` to `v0.16.0`
- Bump `dusk-bls12_381` to `v0.6`
- Bump `dusk-jubjub` to `v0.8`
- Bump `dusk-plonk` to `v0.5`
- Bump `canonical` to `v0.5`
- Bump `canonical_derive` to `v0.5`

## [0.2.1] - 2021-01-08

### Fixes

- Fix byte truncation for BLS -> JubJub conversion
- Add initial commit, this package continues the development of [dusk-schnorr](https://github.com/dusk-network/schnorr/) at version `0.18.0` under the new name: jubjub-schnorr

<!-- ISSUES -->
[#111]: https://github.com/dusk-network/schnorr/issues/111
[#110]: https://github.com/dusk-network/schnorr/issues/110
[#108]: https://github.com/dusk-network/schnorr/issues/108
[#105]: https://github.com/dusk-network/schnorr/issues/105
[#104]: https://github.com/dusk-network/schnorr/issues/104
[#99]: https://github.com/dusk-network/schnorr/issues/99
[#96]: https://github.com/dusk-network/schnorr/issues/96
[#95]: https://github.com/dusk-network/schnorr/issues/95
[#94]: https://github.com/dusk-network/schnorr/issues/94
[#89]: https://github.com/dusk-network/schnorr/issues/89
[#81]: https://github.com/dusk-network/schnorr/issues/81
[#80]: https://github.com/dusk-network/schnorr/issues/80
[#69]: https://github.com/dusk-network/schnorr/issues/69
[#59]: https://github.com/dusk-network/schnorr/issues/59
[#55]: https://github.com/dusk-network/schnorr/issues/55
[#52]: https://github.com/dusk-network/schnorr/issues/52
[#50]: https://github.com/dusk-network/schnorr/issues/50
[#49]: https://github.com/dusk-network/schnorr/issues/49
[#41]: https://github.com/dusk-network/schnorr/issues/41
[#37]: https://github.com/dusk-network/schnorr/issues/37

<!-- VERSIONS -->
[Unreleased]: https://github.com/dusk-network/schnorr/compare/v0.18.0...HEAD
[0.18.0]: https://github.com/dusk-network/schnorr/compare/v0.17.0...v0.18.0
[0.17.0]: https://github.com/dusk-network/schnorr/compare/v0.16.0...v0.17.0
[0.16.0]: https://github.com/dusk-network/schnorr/compare/v0.15.0...v0.16.0
[0.15.0]: https://github.com/dusk-network/schnorr/compare/v0.14.0...v0.15.0
[0.14.0]: https://github.com/dusk-network/schnorr/compare/v0.13.0...v0.14.0
[0.13.0]: https://github.com/dusk-network/schnorr/compare/v0.12.1...v0.13.0
[0.12.1]: https://github.com/dusk-network/schnorr/compare/v0.12.0...v0.12.1
[0.12.0]: https://github.com/dusk-network/schnorr/compare/v0.11.1...v0.12.0
[0.11.1]: https://github.com/dusk-network/schnorr/compare/v0.11.0...v0.11.1
[0.11.0]: https://github.com/dusk-network/schnorr/compare/v0.7.0...v0.11.0
[0.7.0]: https://github.com/dusk-network/schnorr/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/dusk-network/schnorr/compare/v0.5.2...v0.6.0
[0.5.2]: https://github.com/dusk-network/schnorr/compare/v0.5.1...v0.5.2
[0.5.1]: https://github.com/dusk-network/schnorr/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/dusk-network/schnorr/compare/v0.4.1...v0.5.0
[0.4.1]: https://github.com/dusk-network/schnorr/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/dusk-network/schnorr/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/dusk-network/schnorr/compare/v0.2.1...v0.3.0
[0.2.1]: https://github.com/dusk-network/schnorr/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/dusk-network/schnorr/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/dusk-network/schnorr/releases/tag/v0.1.0
[Unreleased]: https://github.com/dusk-network/jubjub-schnorr/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/dusk-network/jubjub-schnorr/releases/tag/v0.1.0
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[package]
name = "dusk-schnorr"
version = "0.18.0"
name = "jubjub-schnorr"
version = "0.1.0"
edition = "2021"
readme = "README.md"
repository = "https://github.com/dusk-network/schnorr"
repository = "https://github.com/dusk-network/jubjub-schnorr"
keywords = ["cryptography", "schnorr", "zk-snarks", "zero-knowledge", "signatures"]
categories =["algorithms", "cryptography", "mathematics"]
description = "A pure-Rust implementation of Schnorr signatures with a PLONK circuit module additionally"
Expand Down
Loading