/mpc-lib

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Fireblocks-MPC

This repository contains Fireblocks' C++ implementation of Secure Multi Party Computation (MPC) algorithms for digital signatures. Covered algorithms include MPC CMP 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
  • libuuid (for tests)
  • libsecp256k1 (for tests, optional)

All required dependencies can be installed with the command:

apt install build-essential libssl-dev uuid-dev libsecp256k1-dev

Building and Testing

Build the library and tests by running:

make

To execute the test suite, run the command:

make run-tests

Usage

A few examples for running a full signing process can be found in the tests section

Security

Please see our dedicated security policy page.

Contributing

Contributions of code and ideas are welcome. Prior to opening a pull request, please carefully review our contribution guidelines.

License

The code in this repository is offered under the terms of the GNU General Public License, as described in the LICENSE file.