Skip to content

Latest commit

 

History

History

cggmp

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Wamu CGGMP

A Rust implementation of CGGMP20 with augmentations as described by the Wamu protocol for computation of threshold signatures by multiple decentralized identities.

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.

⚠️ Security Warning

This crate is pre-alpha software developed as a PoC (Proof of Concept) of the Wamu protocol. It has NOT been independently audited and/or rigorously tested yet! It SHOULD NOT BE USED IN PRODUCTION!

NOTE: 🚧 This project is still work in progress, check back over the next few weeks for regular updates.

Implementation

This crate is a PoC (Proof of Concept) implementation of the Wamu protocol and uses a fork of Webb tool's cggmp-threshold-ecdsa crate for the CGGMP20 implementation with the following modifications/additions:

PoC implementation specific limitations, issues and deviations from CGGMP20

NOTE: There's an ongoing collaborative effort to resolve cggmp-threshold-ecdsa's deviations from CGGMP20 (see tangle-network/cggmp-threshold-ecdsa#37 for details and progress).

Installation

Run the following Cargo command in your project directory

cargo add wamu-cggmp --git https://github.com/wamutech/wamu-rs.git

Documentation

You can access documentation locally by running the following command from the project root

cargo doc --no-deps -p wamu-cggmp --open

Testing

You can run unit tests for all the core functionality by running the following command from the project root

cargo test -p wamu-cggmp

Examples

See the /crates/cggmp/examples directory.

License

Licensed under GPL-3.0.

Contribution

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.