-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Threshold signatures #46
Closed
apoelstra
wants to merge
73
commits into
BlockstreamResearch:secp256k1-zkp
from
apoelstra:2019-01-threshold
Closed
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
e1fb4af
Add 64-bit integer utilities
gmaxwell f126331
Pedersen commitments, borromean ring signatures, and ZK range proofs.
gmaxwell 89e7451
[RANGEPROOF BREAK] Use quadratic residue for tie break and modularity…
apoelstra 023aa86
rangeproof: expose sidechannel message field in the signing API
apoelstra 54fa263
Constant-time generator module
sipa 9b00b61
Expose generator in pedersen/rangeproof API
sipa 2bb5133
rangeproof: several API changes
apoelstra a66ea35
Implement ring-signature based whitelist delegation scheme
apoelstra 94e81a2
add surjection proof module
apoelstra 5ee6bf3
rangeproof: fix memory leak in unit tests
apoelstra c4097f7
surjectionproof: tests_impl.h s/assert/CHECK/g
apoelstra 2cc7f1e
surjectionproof: add API unit tests
apoelstra cd4e438
surjectionproof: rename unit test functions to be more consistent wit…
apoelstra 4617f04
rangeproof: add API tests
apoelstra 56fca50
Fix include/secp256k1_rangeproof.h function argument documentation.
jonasnick c8f54e1
whitelist: fix serialize/parse API to take serialized length
apoelstra 36b100c
Fix checks of whitelist serialize/parse arguments
jonasnick 51fc58a
Add n_keys argument to whitelist_verify
jonasnick 68be611
Fix pedersen_blind_generator_blind_sum return value documentation
jonasnick f1d6e4b
Fix generator makefile
instagibbs e93e886
generator: remove unnecessary ARG_CHECK from generate()
apoelstra a3ad4a8
generator: add API tests
apoelstra 6ceccb7
add whitelist_impl.h to include for dist
instagibbs 6872069
Add whitelisting benchmark
jonasnick f723bf5
Minor bugfix. Wrong length due to NUL character.
datavetaren c908c97
Reject surjection proofs with trailing garbage
real-or-random ab4fbc1
Test for rejection of trailing bytes in surjection proofs
real-or-random 6f14fe4
Test for rejection of trailing bytes in range proofs
real-or-random 8da4328
fix spelling in documentation
instagibbs b387ba0
Expose generator in shared library
FrankC01 cb786d6
rangeproof: add fixed vector test case
apoelstra 65ffea4
rangeproof: check that points deserialize correctly when verifying ra…
apoelstra 2cc4c6f
generator: verify correctness of point when parsing
apoelstra 972d056
rangeproof: verify correctness of pedersen commitments when parsing
apoelstra e32924f
rangeproof: fix serialization of pedersen commintments
apoelstra ea62bfe
add unit test for generator and pedersen commitment roundtripping
apoelstra dec1b9c
Add comment to explain effect of max_n_iterations in surjectionproof_…
jonasnick e9fea74
Add explanation about how BIP32 unhardened derivation can be used to …
jonasnick 0593861
Enable more builds with rest of experimental flags
instagibbs 14769b9
rangeproof: reduce iteration count in unit tests
apoelstra 9a8a71e
use proper types for rangeproof min/max
instagibbs a8ae6ba
add chacha20 function
apoelstra 5d5374f
Add schnorrsig module which implements BIP-schnorr [0] compatible sig…
apoelstra b61a1a9
Add MuSig module which allows creating n-of-n multisignatures and ada…
jonasnick 0ad6b60
Add 3-of-3 MuSig example
jonasnick ff16651
musig: add user documentation
apoelstra cd5ba5c
generator: remove `CHECK` abort calls exposed by public API
apoelstra 865b761
Fix a small typo in the generator parameter name
romanz 86240b2
Clean up ./configure help strings (zkp extensions)
real-or-random 15d9278
Add bench_generator and bench_rangeproof to .gitignore
romanz 898c9f0
Clarify how to derive alternative generator H
jonasnick 4a77633
Improve explanation of key cancellation attack in whitelist.md
jonasnick 250ebb3
work in progress: add _allocate_initialized/destroy funcs
dgpv 6f3b0c0
Improve comments for surctionproof init+alloc/destroy funcs
dgpv 7bc3daa
surjectionproof: add fixed test vectors
apoelstra 290a27b
surjectionproof: add test vectors for "set padding bits"
apoelstra 55311b0
Fix read of wrong buffer (and OOB) in surjectionproof tests
real-or-random 49a1e01
surjectionproof: fix malleability in surjection proof parsing
apoelstra f94d46e
Merge pull request #71 from real-or-random/fix-trailing-test
apoelstra e7f4ff4
Merge pull request #70 from apoelstra/2019-06-surjection-count
apoelstra a118acc
surjectionproof: reduce stack usage
apoelstra d512d78
surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS…
apoelstra 112edb2
allow reducing surjection proof size (to lower generation stack usage)
romanz f7e4d08
surjection proof: Reject proofs with too many used inputs in reduced …
real-or-random 44db4d8
Merge pull request #57 from apoelstra/2019-04-surjectionproof-stack
apoelstra 6303e3b
Fix schnorrsig module after rebase on upstream e541a90e
jonasnick 99e1fb2
Fix musig module after rebase on upstream e541a90e
jonasnick 2f6c335
Merge pull request #72 from jonasnick/fix-upstream-rebase
jonasnick cb8f059
Add fixups from upstream schnorrsig PR
jonasnick 11af701
Merge pull request #58 from jonasnick/schnorrsig-fix
real-or-random 5ae9db6
add threshold signature module
apoelstra 7befb97
f add old markdown file with lagrange algebra, as a reference point
apoelstra f6e4f86
f add design doC
apoelstra File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe call the module thresholdsig for consistency with musig and with the api names?