frost-zcash-demo/dkg
dependabot[bot] 23aa8df597
Bump frost-ed25519 from 1.0.0-rc.0 to 1.0.0 (#151)
Bumps [frost-ed25519](https://github.com/ZcashFoundation/frost) from 1.0.0-rc.0 to 1.0.0.
- [Release notes](https://github.com/ZcashFoundation/frost/releases)
- [Commits](https://github.com/ZcashFoundation/frost/compare/frost-ed25519/v1.0.0-rc.0...frost-ed25519/v1.0.0)

---
updated-dependencies:
- dependency-name: frost-ed25519
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 18:23:21 -03:00
..
src update reddsa and remove manual into_positive_y() invocations (#104) 2024-01-05 16:40:32 +00:00
tests Add initial implementation of socket communications to the demo (phase 1) - Coordinator (#89) 2023-11-21 14:56:29 +00:00
Cargo.toml Bump frost-ed25519 from 1.0.0-rc.0 to 1.0.0 (#151) 2024-03-14 18:23:21 -03:00
README.md
tests.rs

README.md

FROST DKG Demo

Overview of demos

Status ⚠

The DKG Demo is a WIP

Usage

NOTE: This is for demo purposes only and should not be used in production.

You will need to have Rust and Cargo installed.

To run:

  1. Clone the repo. Run git clone https://github.com/ZcashFoundation/frost-zcash-demo.git
  2. Run cargo install
  3. Run cargo run --bin dkg

Round 1 send package

The DKG demo will prompt for:

  1. Minimum number of signers (>= 2) i.e. The threshold number of signers for the secret sharing scheme.
  2. Maximum number of signers i.e. the number of shares to generate
  3. An identifier

The dkg CLI will then use that data to generate:

  1. A round 1 package to send to all other signers

Round 2 send packages

The DKG demo will prompt for:

  1. Identifiers of all signers
  2. Their corresponding round 1 package

The dkg CLI will then use that data to generate:

  1. A round 2 package to send to other users

Round 2 receive packages

The DKG demo will prompt for:

  1. Identifiers of all signers
  2. Their corresponding round 2 package

The dkg CLI will then use that data to generate:

  1. A key package
  2. A public key package

Using the output

To generate a key package the participant requires:

  • The signer's identifier
  • The signer's secret share
  • The signer's public key
  • The public signing key that represents the entire group

Developer information

Pre-commit checks

  1. Run cargo make all

Coverage

Test coverage checks are performed in the pipeline. This is configured here: .github/workflows/coverage.yaml To run these locally:

  1. Install coverage tool by running cargo install cargo-llvm-cov
  2. Run cargo make cov (you may be asked if you want to install llvm-tools-preview, if so type Y)