a0a768009e
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: actions/checkout 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> |
||
---|---|---|
.github | ||
coordinator | ||
dkg | ||
participant | ||
tests | ||
trusted-dealer | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
Makefile.toml | ||
README.md | ||
codecov.yml |
README.md
Zcash Foundation FROST Demos
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:
- identify gaps in our documentation
- provide usage examples for developer facing documentation
- 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.
Projects
This repo contains 4 projects:
Status ⚠
Trusted Dealer demo - WIP DKG demo - WIP Coordinator demo - WIP Participant demo - 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:
- Clone the repo. Run
git clone https://github.com/ZcashFoundation/frost-zcash-demo.git
- Run
cargo install
and in separate terminals:
3. Run cargo run --bin trusted-dealer
or cargo run --bin dkg
4. Run cargo run --bin coordinator
5. Run cargo run --bin participants
. Do this in separate terminals for separate participants.
Developer Information
Pre-commit checks
- 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:
- Install coverage tool by running
cargo install cargo-llvm-cov
- Run
cargo make cov
(you may be asked if you want to installllvm-tools-preview
, if so typeY
)