Skip to content

Commit

Permalink
update README and FROST book
Browse files Browse the repository at this point in the history
  • Loading branch information
StackOverflowExcept1on committed Oct 9, 2024
1 parent f3df4ed commit a1a76b1
Show file tree
Hide file tree
Showing 10 changed files with 23 additions and 18 deletions.
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

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

| Crate | | Crates.io | Documentation |
| ---------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| Crate | | Crates.io | Documentation |
| ---------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| secp256k1 ciphersuite (EVM) | [`frost-secp256k1-evm`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1-evm.svg)](https://crates.io/crates/frost-secp256k1-evm) | [![Documentation](https://docs.rs/frost-secp256k1-evm/badge.svg)](https://docs.rs/frost-secp256k1-evm) |
| 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) |

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

Expand Down Expand Up @@ -59,7 +59,9 @@ of the v0.6.0 release (corresponding to commit 5fa17ed) of the following crates:
- frost-ristretto255

This includes key generation (both trusted dealer and DKG) and FROST signing.
This does not include rerandomized FROST.
This does not include frost-secp256k1-evm and rerandomized FROST.
However, frost-secp256k1-evm should be safe as it is a copy of frost-secp256k1
with one difference: it uses the keccak256 hash instead of sha256.

The parts of the
[`Ed448-Goldilocks`](https://github.com/crate-crypto/Ed448-Goldilocks)
Expand Down
1 change: 1 addition & 0 deletions book/src/dev/frost-dependencies-for-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ The following crates and dependencies are out of scope for the audit.
| Name | Version | Notes
|------| ------- | -----
| frost-rerandomized | v0.2.0 | To be audited after the security proof is complete.
| frost-secp256k1-evm | N/A | Copy of frost-secp256k1 with keccak256 hash, has not been audited yet.

### `frost-core` Dependencies

Expand Down
8 changes: 4 additions & 4 deletions book/src/dev/release-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
4. [Frost p256 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-p256/Cargo.toml#L8)
5. [Frost re randomized version number](https://github.com/ZcashFoundation/frost/blob/main/frost-rerandomized/Cargo.toml#L8)
6. [Frost ristretto255 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-ristretto255/Cargo.toml#L8)
7. [Frost secp256k1 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-secp256k1/Cargo.toml#L7)
7. [Frost secp256k1 evm version number](https://github.com/ZcashFoundation/frost/blob/main/frost-secp256k1-evm/Cargo.toml#L7)

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.

Expand Down Expand Up @@ -74,7 +74,7 @@

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

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.
21. Check if other crates are ready to be published: `for cs in ristretto255 ed25519 secp256k1-evm p256 ed448; do cargo publish -p frost-$cs --dry-run; done`. Fix any issues if needed.

1. If you get an error like this:

Expand All @@ -86,7 +86,7 @@

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”

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


## Confirm
Expand All @@ -98,7 +98,7 @@
3. [Frost ed448](https://crates.io/crates/frost-ed448/versions)
4. [Frost p256](https://crates.io/crates/frost-p256/versions)
5. [Frost ristretto255](https://crates.io/crates/frost-ristretto255/versions)
6. [Frost secp256k1](https://crates.io/crates/frost-secp256k1/versions)
6. [Frost secp256k1 evm](https://crates.io/crates/frost-secp256k1-evm/versions)
7. [Frost rerandomized](https://crates.io/crates/frost-rerandomized/versions)

25. Let the team know in the #frost slack channel that the release is complete and successful
Expand Down
2 changes: 1 addition & 1 deletion book/src/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ a generic implementation of the protocol, which can't be used directly
without a concrete instantiation.

The ciphersuite crates (`frost-ristretto255`, `frost-ed25519`, `frost-ed448`,
`frost-p256`, and `frost-secp256k1`) provide ciphersuites to use with
`frost-p256`, and `frost-secp256k1-evm`) provide ciphersuites to use with
`frost-core`, but also re-expose the `frost-core` functions without
generics. If you will only use a single ciphersuite, then we recommend
using those functions, and this tutorial will follow this approach.
Expand Down
2 changes: 1 addition & 1 deletion book/src/user.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
- [frost-ed448](https://docs.rs/frost-ed448/)
- [frost-p256](https://docs.rs/frost-p256/)
- [frost-ristretto255](https://docs.rs/frost-ristretto255/)
- [frost-secp256k1](https://docs.rs/frost-secp256k1/)
- [frost-secp256k1-evm](https://docs.rs/frost-secp256k1-evm/)
1 change: 1 addition & 0 deletions book/src/user/frost-secp256k1-evm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{#include ../../../frost-secp256k1-evm/README.md}}
1 change: 1 addition & 0 deletions book/src/user/frost-secp256k1-evm/dkg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{#include ../../../../frost-secp256k1-evm/dkg.md}}
1 change: 0 additions & 1 deletion book/src/user/frost-secp256k1.md

This file was deleted.

1 change: 0 additions & 1 deletion book/src/user/frost-secp256k1/dkg.md

This file was deleted.

2 changes: 2 additions & 0 deletions frost-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Entries are listed in reverse chronological order.
implementations are probably just empty structs. The bound makes it possible
to use `frost_core::Error<C>` in `Box<dyn std::error::Error>`.
* Added getters to `round1::SecretPackage` and `round2::SecretPackage`.
* Added a new ciphersuite `frost-secp256k1-evm` that uses the secp256k1
elliptic curve with hash keccak256.

## 2.0.0-rc.0

Expand Down

0 comments on commit a1a76b1

Please sign in to comment.