https://github.com/fireblocks/mpc-lib
https://github.com/fireblocks/mpc-lib
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/fireblocks/mpc-lib
- Owner: fireblocks
- License: gpl-3.0
- Created: 2023-08-02T14:15:30.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-05T15:16:43.000Z (6 months ago)
- Last Synced: 2025-04-02T06:08:21.627Z (about 2 months ago)
- Language: C++
- Size: 516 KB
- Stars: 198
- Watchers: 15
- Forks: 127
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Fireblocks-MPC
This repository contains Fireblocks' C++ implementation of Secure Multi Party Computation (MPC) algorithms for digital signatures. Covered algorithms include [MPC CMP](https://eprint.iacr.org/2020/492) for ECDSA signatures (online and offline variants), online EdDSA signatures and offline asymmetric EdDSA.
It takes the form of a library (`libcosigner`) containing the algorithms and supporting cryptographic routines, as well as an extensive test suite also serving as an integration example.
## Quick Start
### Prerequisites
This version of the code targets *Ubuntu Linux 20.04 LTS* release.
The libraries and headers of the following dependencies are required:* OpenSSL version 1.1.1 or higher
* libuuid (for tests)
* libsecp256k1 (for tests, optional)All required dependencies can be installed with the command:
```sh
apt install build-essential libssl-dev uuid-dev libsecp256k1-dev
```### Building and Testing
Build the library and tests by running:
```sh
mkdir build; cd build; cmake ..; make
```To execute the test suite, run the command from the same build folder:
```sh
make test
```## Usage
A few examples for running a full signing process can be found in the [tests section](https://github.com/fireblocks/mpc-lib/tree/main/test/cosigner)
## Security
Please see our dedicated [security policy](SECURITY.md) page.
## Contributing
Contributions of code and ideas are welcome. Prior to opening a pull request, please carefully review our [contribution guidelines](CONTRIBUTING.md).
## License
The code in this repository is offered under the terms of the GNU General Public License, as described in the [LICENSE](LICENSE) file.