Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ZenGo-X/multi-party-schnorr

Rust implementation of multi-party Schnorr signatures over elliptic curves.
https://github.com/ZenGo-X/multi-party-schnorr

blockchain cryptocurrency cryptography rust schnorr schnorr-signatures secret-shares

Last synced: about 1 month ago
JSON representation

Rust implementation of multi-party Schnorr signatures over elliptic curves.

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.com/ZenGo-X/multi-party-schnorr.svg?branch=master)](https://travis-ci.com/zengo-x/multi-party-schnorr)
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

Multi Party Schnorr Signatures
=====================================
This library contains several Rust implementations of multi-signature Schnorr schemes.
Generally speaking, these schemes can be classified into:
1. {n,n}-multi-signature scheme. These schemes require that all parties engage in cooperation to issue the signature.
2. {t,n}-threshold-signature schemes (TSS). These schemes require that any subset of at least t+1 parties engage in cooperation to issue a valid signature.

## Different protocol implementation
This repo implements different Schnorr multi-signature schemes. There is tradoffs between these schemes with respect to type, performance, communications rounds and security assumptions.
We use abbreviations DLP, ROM, ASM for respectively, discrete log problem, random oracle model, algebraic group model.

| protocol | Type | Rounds | Assumptions | comments |
| ----------| --------|-------|----------| --- |
| Boneh, et al.(MuSig) [2] (section 5)| {n,n} | 3 | DLP, ROM | fixes the security proof of [1]
| Nick, et al.(MuSig2) [3] | {n,n} | 2 | DLP, ROM, AGM | improvement on [2]
| Micali, et al. [4] | {n,n} | 3 | DLP, ROM |
| Stinson-Strobl [5] | {t,n} | 3 | DLP, ROM | See (*)

(*) For more efficient implementation we used the DKG from [Fast Multiparty Threshold ECDSA with Fast Trustless Setup](http://stevengoldfeder.com/papers/GG18.pdf). The cost is robustness: if there is a malicious party out of the n parties in DKG the protocol stops and if there is a malicious party out of the t parties used for signing the signature protocol will stop

**Disclaimers**:

(1) This code should not be used for production at the moment.

(2) This code is not secure against side-channel attacks

(3) The code does not contain a network layer (if you are interested, check [white-city](https://github.com/KZen-networks/white-city) for ongoing effort, contribtutions are welcome)

Contact
-------------------
Feel free to [reach out](mailto:[email protected]) or join the ZenGo X [Telegram](https://t.me/joinchat/ET1mddGXRoyCxZ-7) for discussions on code and research.

License
-------
The library is released under the terms of the GPL-3.0 license. See [LICENSE](LICENSE) for more information.

## References

[1]

[2]

[3]

[4]

[5]