Jonas Nick
d112f5b035
Replace taproot_tweak_pubkey assertion with exception and add it to taproot_tweak_seckey too
2020-01-19 14:47:33 -08:00
Jonas Nick
afa5519ade
Add taproot_tweak_pubkey and taproot_tweak_privkey functions to bip-taproot wallet section
2020-01-19 14:47:33 -08:00
Jonas Nick
e1d7da3796
Add is_quad function to bip-schnorr reference code
2020-01-19 14:47:33 -08:00
Jonas Nick
fe8f5f68ca
Standardize on secret key in bip-schnorr
2020-01-19 14:47:33 -08:00
Jonas Nick
05cc92b9ad
Add x() and y() functions for points to bip-schnorr
2020-01-19 14:47:33 -08:00
Jonas Nick
1c8bdd75a5
Remove 0xc1
2020-01-19 14:47:33 -08:00
Anthony Towns
cf8233d39e
separate p2sh wrapped security rationale
2020-01-19 14:47:33 -08:00
Anthony Towns
7c6ee49c03
typo
2020-01-19 14:47:33 -08:00
Pieter Wuille
2202615b7c
Fixups
2020-01-19 14:47:33 -08:00
Pieter Wuille
4087834c73
Move/reword tagged hashes motivation
2020-01-19 14:47:33 -08:00
Pieter Wuille
499106c57b
Rework resource limits section
2020-01-19 14:47:33 -08:00
Pieter Wuille
972136beb6
Remove P2SH support
2020-01-19 14:47:33 -08:00
Elichai Turkel
8ea6798a9d
Euler's Criterion prime only nit
2020-01-19 14:47:33 -08:00
JamesC
f5c728ff82
Removed reference to 0xc1 leaf version.
...
No longer necessary with 32B pubkeys.
2020-01-19 14:47:33 -08:00
Bryan Bishop
b78b6de4fd
bip-taproot: fix small typo (is does not)
2020-01-19 14:47:33 -08:00
Jonas Nick
65a4f1deb8
Mention SHA256 block size
...
Rebased by Pieter Wuille
2020-01-19 14:47:33 -08:00
Pieter Wuille
8886eb4071
Address some nits
2020-01-19 14:47:33 -08:00
Jonas Nick
a5112f9f01
Move plain public key in output rationale to design section
...
Rebased by Pieter Wuille
2020-01-19 14:47:33 -08:00
Tim Ruffing
2b987b5711
Rework Applications section
2020-01-19 14:47:33 -08:00
Jonas Nick
204b7f13a0
Prescribe that a taproot output key should always have a taproot commitment
2020-01-19 14:47:33 -08:00
Tim Ruffing
29037bd123
Add a footnote about 32-byte security
2020-01-19 14:47:33 -08:00
Anthony Towns
4491902569
note about pubkey collision
2020-01-19 14:47:33 -08:00
Anthony Towns
0d04e41e2f
key gen, verify, sign in intro
2020-01-19 14:47:33 -08:00
Anthony Towns
8ffea86023
use p for taproot internal key
2020-01-19 14:47:33 -08:00
Anthony Towns
4e13ec7301
make secret key a 32-byte array called sk, introduce pubkey()
2020-01-19 14:47:33 -08:00
Anthony Towns
a3f74a204e
pk not p
2020-01-19 14:47:33 -08:00
Anthony Towns
efa556aa06
public keys aren't identical
2020-01-19 14:47:33 -08:00
Jonas Nick
8fd629c3f9
Fix privkey negation in taproot_sign_key
2020-01-19 14:47:33 -08:00
Jonas Nick
cc962bf84f
Address sipa's comments
2020-01-19 14:47:33 -08:00
Jonas Nick
c33c7d0a0c
Tag signature hashes, improve rationale and update test vectors
2020-01-19 14:47:33 -08:00
Jonas Nick
7f3611d239
Use a tagged hash in bip-schnorr nonce derivation
2020-01-19 14:47:33 -08:00
Jonas Nick
ba748dcd93
Use key path spend terminology more consistently in taproot/tapscript
2020-01-19 14:47:33 -08:00
John Newbery
680af7db4c
Return a point from lift_x()
2020-01-19 14:47:33 -08:00
John Newbery
bba0bad5e8
Define c in lift_x(x)
2020-01-19 14:47:33 -08:00
John Newbery
1c6b104597
Replace 'quadratic residue of...'
2020-01-19 14:47:33 -08:00
Jonas Nick
16073d0c20
Clarify how to disable key path spending
2020-01-19 14:47:33 -08:00
Jonas Nick
f3bef4f459
Address sipa's feedback
2020-01-19 14:47:33 -08:00
Jonas Nick
a67e5e323c
Update bip-schnorr/test-vectors.py
...
Co-Authored-By: Tim Ruffing <tim@timruffing.de>
2020-01-19 14:47:33 -08:00
Jonas Nick
5da30bd568
Update bip-schnorr.mediawiki
...
Co-Authored-By: Tim Ruffing <tim@timruffing.de>
2020-01-19 14:47:33 -08:00
Jonas Nick
303ff5fb26
Address Tim's comments
2020-01-19 14:47:33 -08:00
Jonas Nick
08e1b3da74
Use short public keys for taproot output keys
2020-01-19 14:47:33 -08:00
Jonas Nick
e084aafb8b
Switch to 32 byte public keys in bip-schnorr
2020-01-19 14:47:33 -08:00
Jonas Nick
1a4b08ab72
Fix point_from_bytes in bip-schnorr reference implementation
2020-01-19 14:47:33 -08:00
Jonas Nick
b2e6d11a6e
Clarify diagram
2020-01-19 14:47:33 -08:00
Dmitry Petukhov
953dd23665
taproot_output_script: first returned byte should be OP_1 (0x51)
...
If we look at
def IsPayToTaproot(script):
return len(script) == 35 and script[0] == OP_1 and script[1] == 33 and script[2] >= 0 and script[2] <= 1
First byte is is checked for OP_1. OP_1 is 0x51
But the example code in this BIP returns
`bytes([0x01, 0x21, output_pubkey[0] & 1]) + output_pubkey[1:]`
First byte 0x01, but it should be 0x51
2020-01-19 14:47:33 -08:00
Mark B Lundeberg
b65cd69467
remove duplicate warning
...
Though perhaps, the emphasis is warranted given its importance. :-)
2020-01-19 14:47:33 -08:00
Jonas Nick
eb96be7a9d
Clarify what 'reduced' means in tests and use word 'message' instead of 'message hash'
2020-01-19 14:47:33 -08:00
Pieter Wuille
c7d7034b16
Add taproot/tapscript bips drafts
2020-01-19 14:47:33 -08:00
Pieter Wuille
6e77233b57
Add draft for Schnorr BIP
...
Includes squashed contributions by GitHub users jonasnick,
real-or-random, AustinWilliams, JustinTArthur, ysangkok,
RCassatta, Sjors, tnakagawa, and guggero.
2020-01-19 14:47:33 -08:00
Pieter Wuille
ffa91573d2
Merge pull request #186 from sipa/202001_commonsighash
...
Abstract out common signature message calculation
2020-01-16 13:04:36 -05:00