-
Aggregated Signatures: {n,n} scheme based on simple_schnorr_multi_signatures_with_applications_to_bitcoin and the scheme for discrete-logs (section 5) from compact_multi_signatures_for_smaller_blockchains
-
not implement
Multi-signature scheme based on Micali-Ohta-Reyzin: Accountable-Subgroup Multisignatures. This code is being used currently for 2p-Schnorr key management. -
Threshold Schnorr scheme based on provably secure distributed schnorr signatures and a {t,n} threshold scheme. For more efficient implementation we used the DKG from Fast Multiparty Threshold ECDSA with Fast Trustless Setup. 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.
-
The implementations aim to be bip-schnorr compliant.
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)
threshold 3 out of 5 with 4 parties in signing
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
0x02, 0x03, 0x04
=> for 1 of 1 single signature0x05, 0x06, 0x07
=> for n of n aggregate signature0x08, 0x09, 0x0a
=> for t of n threshold signature
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 |
This contribution workflow is described in CONTRIBUTING.md.
Feel free to reach out or join the KZen Research Telegram for discussions on code and research.
The library is released under the terms of the GPL-3.0 license. See LICENSE for more information.