Mercury is a client/server implementation of a state chain (whitepaper).
The current 2P-ECDSA uses library multi-party-ecdsa v0.1.0, which depends on rust-paillier v0.1.0. You will notice that rust-paillier contains depreciated code and so will not build. We will eventually update the 2P-ECDSA but for now you must open your local version of the rust-paillier library (as directed to in the error message) and remove/comment the problem line of code.
You will need to use an experimental branch of rust, use rustup to switch to
the nightly branch, and use cargo to build:
rustup default nightly
cargo build
USE AT YOUR OWN RISK, we are not responsible for software/hardware and/or any transactional issues that may occur while using Gotham city.
The project is currently work in progress.
RESTful web service exposing APIs for state chain and general wallet functionality. README
Basic Bitcoin wallet with client side state chain implementation and:
- Key HD key derivation and storage
- View balance and UTXOs
- Send transactions
- For details on Threshold Signatures see Threshold Signatures: The Future of Private Keys
- secp256k1: Rust language bindings for Bitcoin secp256k1 library.
- curv : basic ECC primitives using secp256k1
- rust-paillier: A pure-Rust implementation of the Paillier encryption scheme
- zk-paillier: A collection of zero knowledge proofs using Paillier cryptosystem
- multi-party-ecdsa: Rust implelemtation of Lindell's Crypto17 paper: Fast Secure Two-Party ECDSA Signing
- kms: Two party key managament system (master keys, 2p-HD, shares rotation) for secp256k1 based two party digital sigantures
The comparison was done on an Intel i9-8950HK (2.9GHz) using localhost for server (no real network). The numbers are mean for 20 runs of 2P-ECDSA KeyGen and 50 runs for 2P-ECDSA Signing. Standard deviation is inconsistent but for both implementations it is order of magnitude smaller than mean value.
| Implementation | Gotham city (this repo) | Unbound |
|---|---|---|
| 2P-ECDSA KeyGen | 1.05 s | 0.813 s |
| 2P-ECDSA Signing | 0.153 s | 0.206 s |
Gotham City is released under the terms of the GPL-3.0 license. See LICENSE for more information.
For any questions, feel free to email us.
