Skip to content

Commit cf6b0c0

Browse files
docs: add secp256k1-tr to changelog and book (ZcashFoundation#776)
1 parent 94c0042 commit cf6b0c0

File tree

10 files changed

+27
-18
lines changed

10 files changed

+27
-18
lines changed

.github/workflows/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
# Skip ed448 which does not support it.
7070
strategy:
7171
matrix:
72-
crate: [ristretto255, ed25519, p256, secp256k1, rerandomized]
72+
crate: [ristretto255, ed25519, p256, secp256k1, secp256k1-tr, rerandomized]
7373
steps:
7474
- uses: actions/[email protected]
7575
- uses: dtolnay/rust-toolchain@master

README.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
[![CI](https://github.com/ZcashFoundation/frost/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/ZcashFoundation/frost/actions/workflows/main.yml)
44

5-
| Crate | | Crates.io | Documentation |
6-
| ---------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
7-
| Generic FROST implementation | [`frost-core`] | [![crates.io](https://img.shields.io/crates/v/frost-core.svg)](https://crates.io/crates/frost-core) | [![Documentation](https://docs.rs/frost-core/badge.svg)](https://docs.rs/frost-core) |
8-
| Ristretto255 ciphersuite | [`frost-ristretto255`] | [![crates.io](https://img.shields.io/crates/v/frost-ristretto255.svg)](https://crates.io/crates/frost-ristretto255) | [![Documentation](https://docs.rs/frost-ristretto255/badge.svg)](https://docs.rs/frost-ristretto255) |
9-
| Ed25519 ciphersuite | [`frost-ed25519`] | [![crates.io](https://img.shields.io/crates/v/frost-ed25519.svg)](https://crates.io/crates/frost-ed25519) | [![Documentation](https://docs.rs/frost-ed25519/badge.svg)](https://docs.rs/frost-ed25519) |
10-
| Ed448 ciphersuite | [`frost-ed448`] | [![crates.io](https://img.shields.io/crates/v/frost-ed448.svg)](https://crates.io/crates/frost-ed448) | [![Documentation](https://docs.rs/frost-ed448/badge.svg)](https://docs.rs/frost-ed448) |
11-
| P-256 ciphersuite | [`frost-p256`] | [![crates.io](https://img.shields.io/crates/v/frost-p256.svg)](https://crates.io/crates/frost-p256) | [![Documentation](https://docs.rs/frost-p256/badge.svg)](https://docs.rs/frost-p256) |
12-
| secp256k1 ciphersuite | [`frost-secp256k1`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1.svg)](https://crates.io/crates/frost-secp256k1) | [![Documentation](https://docs.rs/frost-secp256k1/badge.svg)](https://docs.rs/frost-secp256k1) |
13-
| Generic Re-randomized FROST | [`frost-rerandomized`] | [![crates.io](https://img.shields.io/crates/v/frost-rerandomized.svg)](https://crates.io/crates/frost-rerandomized) | [![Documentation](https://docs.rs/frost-rerandomized/badge.svg)](https://docs.rs/frost-rerandomized) |
5+
| Crate | | Crates.io | Documentation |
6+
| ------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
7+
| Generic FROST implementation | [`frost-core`] | [![crates.io](https://img.shields.io/crates/v/frost-core.svg)](https://crates.io/crates/frost-core) | [![Documentation](https://docs.rs/frost-core/badge.svg)](https://docs.rs/frost-core) |
8+
| Ristretto255 ciphersuite | [`frost-ristretto255`] | [![crates.io](https://img.shields.io/crates/v/frost-ristretto255.svg)](https://crates.io/crates/frost-ristretto255) | [![Documentation](https://docs.rs/frost-ristretto255/badge.svg)](https://docs.rs/frost-ristretto255) |
9+
| Ed25519 ciphersuite | [`frost-ed25519`] | [![crates.io](https://img.shields.io/crates/v/frost-ed25519.svg)](https://crates.io/crates/frost-ed25519) | [![Documentation](https://docs.rs/frost-ed25519/badge.svg)](https://docs.rs/frost-ed25519) |
10+
| Ed448 ciphersuite | [`frost-ed448`] | [![crates.io](https://img.shields.io/crates/v/frost-ed448.svg)](https://crates.io/crates/frost-ed448) | [![Documentation](https://docs.rs/frost-ed448/badge.svg)](https://docs.rs/frost-ed448) |
11+
| P-256 ciphersuite | [`frost-p256`] | [![crates.io](https://img.shields.io/crates/v/frost-p256.svg)](https://crates.io/crates/frost-p256) | [![Documentation](https://docs.rs/frost-p256/badge.svg)](https://docs.rs/frost-p256) |
12+
| secp256k1 ciphersuite | [`frost-secp256k1`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1.svg)](https://crates.io/crates/frost-secp256k1) | [![Documentation](https://docs.rs/frost-secp256k1/badge.svg)](https://docs.rs/frost-secp256k1) |
13+
| secp256k1 ciphersuite (Taproot) | [`frost-secp256k1-tr`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1-tr.svg)](https://crates.io/crates/frost-secp256k1-tr) | [![Documentation](https://docs.rs/frost-secp256k1-tr/badge.svg)](https://docs.rs/frost-secp256k1-tr) |
14+
| Generic Re-randomized FROST | [`frost-rerandomized`] | [![crates.io](https://img.shields.io/crates/v/frost-rerandomized.svg)](https://crates.io/crates/frost-rerandomized) | [![Documentation](https://docs.rs/frost-rerandomized/badge.svg)](https://docs.rs/frost-rerandomized) |
1415

1516
Rust implementations of ['Two-Round Threshold Schnorr Signatures with FROST'](https://datatracker.ietf.org/doc/draft-irtf-cfrg-frost/).
1617

@@ -59,7 +60,7 @@ of the v0.6.0 release (corresponding to commit 5fa17ed) of the following crates:
5960
- frost-ristretto255
6061

6162
This includes key generation (both trusted dealer and DKG) and FROST signing.
62-
This does not include rerandomized FROST.
63+
This does not include frost-secp256k1-tr and rerandomized FROST.
6364

6465
The parts of the
6566
[`Ed448-Goldilocks`](https://github.com/crate-crypto/Ed448-Goldilocks)

book/src/dev/frost-dependencies-for-audit.md

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ The following crates and dependencies are out of scope for the audit.
4646
| Name | Version | Notes
4747
|------| ------- | -----
4848
| frost-rerandomized | v0.2.0 | To be audited after the security proof is complete.
49+
| frost-secp256k1-tr | N/A | frost-secp256k1 with Taproot support, has not been audited yet.
4950

5051
### `frost-core` Dependencies
5152

book/src/dev/release-checklist.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
5. [Frost re randomized version number](https://github.com/ZcashFoundation/frost/blob/main/frost-rerandomized/Cargo.toml#L8)
2424
6. [Frost ristretto255 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-ristretto255/Cargo.toml#L8)
2525
7. [Frost secp256k1 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-secp256k1/Cargo.toml#L7)
26+
8. [Frost secp256k1 tr version number](https://github.com/ZcashFoundation/frost/blob/main/frost-secp256k1-tr/Cargo.toml#L7)
2627

2728
5. Decide which version to tag the release with (e.g. v0.3.0). Currently we always use the same release number for all crates, but it's possible for them to get out of sync in the future.
2829

@@ -74,7 +75,7 @@
7475

7576
20. Publish it with `cargo publish -p frost-rerandomized`
7677

77-
21. Check if other crates are ready to be published: `for cs in ristretto255 ed25519 secp256k1 p256 ed448; do cargo publish -p frost-$cs --dry-run; done`. Fix any issues if needed.
78+
21. Check if other crates are ready to be published: `for cs in ristretto255 ed25519 secp256k1 secp256k1-tr p256 ed448; do cargo publish -p frost-$cs --dry-run; done`. Fix any issues if needed.
7879

7980
1. If you get an error like this:
8081

@@ -86,20 +87,21 @@
8687

8788
1. Use the same process as described for frost-core above (actions 1 - 3), but you can leave the changelog empty and **uncheck** “Set as the latest release”
8889

89-
23. Publish those crates: `for cs in ristretto255 ed25519 secp256k1 p256 ed448; do cargo publish -p frost-$cs; done`
90+
23. Publish those crates: `for cs in ristretto255 ed25519 secp256k1 secp256k1-tr p256 ed448; do cargo publish -p frost-$cs; done`
9091

9192

9293
## Confirm
9394

94-
24. Check versions in the crates to confirm everything worked: 
95+
24. Check versions in the crates to confirm everything worked:
9596

9697
1. [Frost core](https://crates.io/crates/frost-core/versions)
9798
2. [Frost ed25519](https://crates.io/crates/frost-ed25519/versions)
9899
3. [Frost ed448](https://crates.io/crates/frost-ed448/versions)
99100
4. [Frost p256](https://crates.io/crates/frost-p256/versions)
100101
5. [Frost ristretto255](https://crates.io/crates/frost-ristretto255/versions)
101102
6. [Frost secp256k1](https://crates.io/crates/frost-secp256k1/versions)
102-
7. [Frost rerandomized](https://crates.io/crates/frost-rerandomized/versions)
103+
7. [Frost secp256k1 tr](https://crates.io/crates/frost-secp256k1-tr/versions)
104+
8. [Frost rerandomized](https://crates.io/crates/frost-rerandomized/versions)
103105

104106
25. Let the team know in the #frost slack channel that the release is complete and successful
105107

book/src/tutorial.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ a generic implementation of the protocol, which can't be used directly
55
without a concrete instantiation.
66

77
The ciphersuite crates (`frost-ristretto255`, `frost-ed25519`, `frost-ed448`,
8-
`frost-p256`, and `frost-secp256k1`) provide ciphersuites to use with
9-
`frost-core`, but also re-expose the `frost-core` functions without
8+
`frost-p256`, `frost-secp256k1` and `frost-secp256k1-tr`) provide ciphersuites
9+
to use with `frost-core`, but also re-expose the `frost-core` functions without
1010
generics. If you will only use a single ciphersuite, then we recommend
1111
using those functions, and this tutorial will follow this approach.
1212
If you need to support multiple ciphersuites then feel free to use

book/src/user.md

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@
77
- [frost-p256](https://docs.rs/frost-p256/)
88
- [frost-ristretto255](https://docs.rs/frost-ristretto255/)
99
- [frost-secp256k1](https://docs.rs/frost-secp256k1/)
10+
- [frost-secp256k1-tr](https://docs.rs/frost-secp256k1-tr/)

book/src/user/frost-secp256k1-tr.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{#include ../../../frost-secp256k1-tr/README.md}}
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{#include ../../../../frost-secp256k1-tr/dkg.md}}

frost-core/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Entries are listed in reverse chronological order.
77
* It is now possible to identify the culprit in `frost_core::keys::dkg::part3()`
88
if an invalid secret share was sent by one of the participants (by calling
99
frost_core::Error<C>::culprit()`).
10+
* Added frost-secp256k1-tr crate, allowing to generate Bitcoin Taproot (BIP340/BIP341)
11+
compatible signatures.
1012

1113
## 2.0.0
1214

frost-secp256k1-tr/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ edition = "2021"
44
# When releasing to crates.io:
55
# - Update CHANGELOG.md
66
# - Create git tag.
7-
version = "2.0.0-rc.0"
7+
version = "2.0.0"
88
authors = [
99
"Deirdre Connolly <[email protected]>",
1010
"Chelsea Komlo <[email protected]>",

0 commit comments

Comments
 (0)