Skip to content

Python3 extension of Rust implemented multi-party Schnorr signatures.

License

Notifications You must be signed in to change notification settings

namuyan/multi-party-schnorr

 
 

Repository files navigation

Build Status License: GPL v3

Multi Party Schnorr Signatures (python extension)

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 do not contain a network layer (if you are interested, check white-city for ongoing effort, contribtutions are welcome)

Get Started

schnorr_bip_test_vector_2

schnorr_two_party_signing

threshold 3 out of 5 with 4 parties in signing

Install

Please use python3.5 or more
Install by pip pip3 install --user multi-party-schnorr
How to use? please look at examples *.py
Cannot use on windows? please read a issue/39

compressed key prefix

  • 0x02, 0x03, 0x04 => for 1 of 1 single signature
  • 0x05, 0x06, 0x07 => for n of n aggregate signature
  • 0x08, 0x09, 0x0a => for t of n threshold signature

performance

type secp256k1(~0.1.7) libsecp256k1-rs(0.1.8) emerald-city(0.1.9~) test code link
1 of 1 aggregate 112ms 3ms 1ms aggregate_1_of_1.py
n of n aggregate 458ms 7ms 3ms aggregate_n_of_n.py
t of n threshold 2475ms 68ms 33ms thresholdbig_t_of_n.py

Development Process

This contribution workflow is described in CONTRIBUTING.md.

Contact

Feel free to reach out or join the KZen Research Telegram for discussions on code and research.

License

The library is released under the terms of the GPL-3.0 license. See LICENSE for more information.

About

Python3 extension of Rust implemented multi-party Schnorr signatures.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 65.3%
  • Python 34.1%
  • Shell 0.6%