A collection of modular Rust libraries for implementing the Wamu protocol for computation of threshold signatures by multiple decentralized identities.
All crates in this repository are pre-alpha software developed as PoCs (Proofs of Concept) of the Wamu protocol. They have NOT been independently audited and/or rigorously tested yet! They SHOULD NOT BE USED IN PRODUCTION!
NOTE: 🚧 This project is still work in progress, check back over the next few weeks for regular updates.
This repository contains 2 main crates:
This crate implements the core sub-protocols (i.e. share splitting and reconstruction, identity authenticated request initiation and verification, identity challenge, quorum approved request initiation and verification and encrypted backup-based share recovery) as well as types, abstractions and utilities for augmentations (e.g. utilities for initializing and verifying identity rotation, quorum-based share recovery and other decentralized identity authenticated requests) as described by the Wamu protocol.
This crate implements CGGMP20 with augmentations as described by the Wamu protocol.
It uses the Wamu Core (wamu-core) crate for Wamu's core sub-protocols and augmentations, and Webb tool's cggmp-threshold-ecdsa crate for the CGGMP20 implementation that it wraps and augments.
Check the readme of each crate for installation and usage instructions and links to documentation.
- Wamu Core (wamu-core): /crates/core
- Wamu CGGMP (wamu-cggmp): /crates/cggmp
- Wamu Core (wamu-core): https://docs.rs/wamu-core/latest/wamu_core/
- Wamu CGGMP (wamu-cggmp): See instructions in the crate's README
Or you can access documentation locally by running the following command from the project root
cargo doc --no-deps --open
To open crate specific docs, see instructions in the readme in each crate's directory.
You can run unit tests for all the core functionality by running the following command from the project root
cargo test
NOTE: To run only tests for a single crate, add a -p <crate_name>
argument to the above command e.g.
cargo test -p wamu-core
See the /crates/cggmp/examples
directory.
Crate | License |
---|---|
Wamu Core (wamu-core) | Licensed under either MIT or Apache-2.0 license at your option. |
Wamu CGGMP (wamu-cggmp | Licensed under GPL-3.0. |
Crate | Guidelines |
---|---|
Wamu Core (wamu-core) | Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. |
Wamu CGGMP (wamu-cggmp) | Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the GPL-3.0 license, shall be licensed as above, without any additional terms or conditions. |
🌱 Funded by: the Ethereum Foundation.