Skip to content

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

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
GPL-3.0
LICENSE-GPL
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

wamutech/wamu-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

About

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

Topics

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
GPL-3.0
LICENSE-GPL
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages