Skip to content

Latest commit

 

History

History
80 lines (49 loc) · 4.8 KB

README.md

File metadata and controls

80 lines (49 loc) · 4.8 KB

Wamu

A collection of modular Rust libraries for implementing the Wamu protocol for computation of threshold signatures by multiple decentralized identities.

⚠️ Security Warning

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.

Architecture

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.

Installation and Usage

Check the readme of each crate for installation and usage instructions and links to documentation.

Documentation

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.

Testing

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

Examples

See the /crates/cggmp/examples directory.

License

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.

Contribution

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.

Acknowledgements

🌱 Funded by: the Ethereum Foundation.