Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 2 months ago
JSON representation
Rust implementation of multi-party Schnorr signatures over elliptic curves.
- Host: GitHub
- URL: https://github.com/ZenGo-X/multi-party-schnorr
- Owner: ZenGo-X
- License: gpl-3.0
- Created: 2018-07-08T12:59:40.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-05-24T06:58:31.000Z (over 3 years ago)
- Last Synced: 2024-05-21T13:54:11.437Z (8 months ago)
- Topics: blockchain, cryptocurrency, cryptography, rust, schnorr, schnorr-signatures, secret-shares
- Language: Rust
- Homepage:
- Size: 2.45 MB
- Stars: 166
- Watchers: 15
- Forks: 41
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cryptography-rust - multi-party-schnorr - party Schnorr signatures over elliptic curves. (Cryptography / Digital Signature)
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]