Go to file
natalie 2092ccca0d
Add Participant identifier input for Participant CLI (#22)
* Request identifier for Participant (#16)

* Test for error when Identifier has value 0 for participant (#16)

* Add error test for malformed identifier for participant (#16)

* Improve text for participant identifier input request (#16)
2023-06-16 16:17:09 -03:00
.github
participant Add Participant identifier input for Participant CLI (#22) 2023-06-16 16:17:09 -03:00
trusted-dealer Add Participant project (#15) 2023-06-15 13:23:37 -03:00
.gitignore Add Participant project (#15) 2023-06-15 13:23:37 -03:00
Cargo.lock Add Participant project (#15) 2023-06-15 13:23:37 -03:00
Cargo.toml Add Participant project (#15) 2023-06-15 13:23:37 -03:00
LICENSE-APACHE
LICENSE-MIT
Makefile.toml Add Participant project (#15) 2023-06-15 13:23:37 -03:00
README.md Add Participant project (#15) 2023-06-15 13:23:37 -03:00
codecov.yml

README.md

Zcash Foundation FROST Demos

TODO

This will be part of a set of demos and a proof of concept application that uses the FROST libraries and reference implementation. The purpose of these demos is to:

  1. identify gaps in our documentation
  2. provide usage examples for developer facing documentation
  3. provide reference implementations for developers wanting to use FROST in a “real world” scenario.

This demo uses the (Ed25519, SHA-512) ciphersuite. The crate can be found here.

About FROST (Flexible Round-Optimised Schnorr Threshold signatures)

Unlike signatures in a single-party setting, threshold signatures require cooperation among a threshold number of signers, each holding a share of a common private key. The security of threshold schemes in general assume that an adversary can corrupt strictly fewer than a threshold number of participants.

Two-Round Threshold Schnorr Signatures with FROST presents a variant of a Flexible Round-Optimized Schnorr Threshold (FROST) signature scheme originally defined in FROST20. FROST reduces network overhead during threshold signing operations while employing a novel technique to protect against forgery attacks applicable to prior Schnorr-based threshold signature constructions. This variant of FROST requires two rounds to compute a signature, and implements signing efficiency improvements described by Schnorr21. Single-round signing with FROST is not implemented here.

Status ⚠

TODO

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

Developer information

TODO

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)