Commit graph

1805 commits

Author SHA1 Message Date
Andrew Poelstra
ca7b7f3810 Merge feb162d500 into merged_master (Bitcoin PR #14696) 2020-11-09 21:20:26 +00:00
Andrew Poelstra
94cf235067 Merge 871d3ae45b into merged_master (Bitcoin PR #16757) 2020-11-09 21:20:25 +00:00
Andrew Poelstra
3465e350be Merge fb4f5beb6e into merged_master (Bitcoin PR #16854) 2020-11-09 21:20:24 +00:00
Andrew Poelstra
5cca042772 Merge 0d20c42a01 into merged_master (Bitcoin PR #16421) 2020-11-09 21:20:22 +00:00
Andrew Poelstra
14b98224c3 Merge ae3e3bd151 into merged_master (Bitcoin PR #16793) 2020-11-09 21:20:21 +00:00
Andrew Poelstra
9cc26a716a Merge 5b2fe5563b into merged_master (Elements PR #642)
FIXME: we disable standardness checks for the non-PAK node in the PAK tests.
This is because of a bug in Elements which causes non-PAK nodes to reject
pegouts for standardness reasons. Need to fix it after the rebase.
2020-11-09 21:20:21 +00:00
Andrew Poelstra
bbfa3115a1 Merge 8e00a68552 into merged_master (Bitcoin PR #16774) 2020-11-09 21:20:21 +00:00
Andrew Poelstra
5115dbbf41 Merge 6519be6054 into merged_master (Bitcoin PR #13868) 2020-11-09 21:20:20 +00:00
Andrew Poelstra
5deb2c636f Merge 1f8378508a into merged_master (Bitcoin PR #15615) 2020-11-09 21:20:19 +00:00
Andrew Poelstra
5f280a6068 Merge 1bf2ff2bf8 into merged_master (Bitcoin PR #16060) 2020-11-09 21:20:15 +00:00
Andrew Poelstra
028f2d94d1 Merge 85883a9f8e into merged_master (Bitcoin PR #16443) 2020-11-09 21:20:14 +00:00
Andrew Poelstra
0657bbeffa Merge 68da54987d into merged_master (Bitcoin PR #16471) 2020-11-09 21:20:09 +00:00
Andrew Poelstra
31aa2513fb Merge d5a54ce8f0 into merged_master (Bitcoin PR #15305) 2020-11-09 21:20:08 +00:00
Andrew Poelstra
83019c2acd Merge d960d5ca99 into merged_master (Bitcoin PR #16362) 2020-11-09 21:20:08 +00:00
Andrew Poelstra
04f0e67e67 Merge 51a6e2c419 into merged_master (Bitcoin PR #15681) 2020-11-09 21:20:07 +00:00
Andrew Poelstra
1e58aac3d1 Merge 8f604361eb into merged_master (Bitcoin PR #16194) 2020-11-09 21:20:06 +00:00
Andrew Poelstra
f7cb3a9645 Merge f373beebbc into merged_master (Bitcoin PR #16344) 2020-11-09 03:58:19 +00:00
Andrew Poelstra
62a63e4c6b Merge 8c69fae944 into merged_master (Bitcoin PR #15457) 2020-11-09 03:58:19 +00:00
Andrew Poelstra
19568c3891 Merge c6e42f1ca9 into merged_master (Bitcoin PR #14193) 2020-11-09 03:58:18 +00:00
Andrew Poelstra
695bf1c24d Merge 332c6134bb into merged_master (Bitcoin PR #15894) 2020-11-09 03:58:16 +00:00
Andrew Poelstra
f60ef72524 Merge 0b68fca700 into merged_master (Bitcoin PR #16092) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
83f93df4d0 Merge e2182b02b5 into merged_master (Bitcoin PR #16171) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
2c4ed107ff Merge c977f2b99d into merged_master (Elements PR #664) 2020-11-06 15:20:14 +00:00
Andrew Poelstra
68d9951825 Merge d0f81a96d9 into merged_master (Bitcoin PR #16129) 2020-11-06 15:20:13 +00:00
Andrew Poelstra
cb15f46946 Merge 5d37c1bde0 into merged_master (Bitcoin PR #15976) 2020-11-06 15:20:12 +00:00
MarcoFalke
fa7eed5be7
doc: Clarify that vpindexToConnect is in reverse order
Also, style-fixups of touched code
2020-11-03 14:02:02 +01:00
MarcoFalke
fa62304c97
Remove dead CheckForkWarningConditionsOnNewFork 2020-11-03 14:01:40 +01:00
Pieter Wuille
525cbd425e Only relay Taproot spends if next block has it active 2020-10-30 15:52:19 -07:00
Andrew Poelstra
a835ebdb2f Merge 1c177c3a00 into merged_master (Bitcoin PR #16015) 2020-10-29 20:55:17 +00:00
Andrew Poelstra
96169f79e3 Merge 7110d455eb into merged_master (Bitcoin PR #12980) 2020-10-29 19:54:46 +00:00
Andrew Poelstra
e6adc4efa2 Merge a822a0e4f6 into merged_master (Bitcoin PR #15999) 2020-10-29 19:17:12 +00:00
Andrew Poelstra
f6f2aefae3 Merge 40c66bb3d1 into merged_master (Bitcoin PR #15855) 2020-10-29 16:50:16 +00:00
Andrew Poelstra
5bf56b8829 Merge 49c1aa5f83 into merged_master (Bitcoin PR #15971) 2020-10-29 04:29:12 +00:00
Andrew Poelstra
c91184f6c2 Merge b2a6b02161 into merged_master (Bitcoin PR #15948) 2020-10-29 02:36:55 +00:00
Andrew Poelstra
2d57dcb681 Merge d7d7d31506 into merged_master (Bitcoin PR #15141) 2020-10-29 02:10:39 +00:00
Andrew Poelstra
cf22dd0930 Merge 12aa2ac988 into merged_master (Bitcoin PR #15323) 2020-10-29 02:07:08 +00:00
Andrew Poelstra
44e5901b98 Merge 2c35fe6238 into merged_master (Bitcoin PR #15849) 2020-10-29 02:06:12 +00:00
Andrew Poelstra
ad0dc00fc2 Merge 3356799ee3 into merged_master (Bitcoin PR #15778) 2020-10-28 23:22:29 +00:00
Andrew Poelstra
e490be0579 Merge d76b72a454 into merged_master (Bitcoin PR #15267) 2020-10-28 22:35:27 +00:00
Andrew Poelstra
e316ed34be Merge ae2c19f578 into merged_master (Bitcoin PR #15655) 2020-10-28 20:52:58 +00:00
Andrew Poelstra
a8581ea138 Merge 6a135fbe5b into merged_master (Bitcoin PR #15638) 2020-10-28 03:16:57 +00:00
Andrew Poelstra
45dad5302b Merge 93623eea71 into merged_master (Bitcoin PR #15623) 2020-10-28 00:09:42 +00:00
Andrew Poelstra
0a64319362 Merge e45b7f20e6 into merged_master (Bitcoin PR #15618) 2020-10-28 00:09:11 +00:00
Andrew Poelstra
7d93f137a0 Merge c033c4b5ce into merged_master (Bitcoin PR #13541) 2020-10-28 00:09:04 +00:00
Andrew Poelstra
1e375568af Merge 2d46f1be0c into merged_master (Bitcoin PR #15118) 2020-10-27 21:52:10 +00:00
Andrew Poelstra
2b24674400 Merge d88f7f8764 into merged_master (Bitcoin PR #15471) 2020-10-27 19:13:32 +00:00
Wladimir J. van der Laan
3caee16946
Merge #19953: Implement BIP 340-342 validation (Schnorr/taproot/tapscript)
0e2a5e448f tests: dumping and minimizing of script assets data (Pieter Wuille)
4567ba034c tests: add generic qa-asset-based script verification unit test (Pieter Wuille)
f06e6d0345 tests: functional tests for Schnorr/Taproot/Tapscript (Pieter Wuille)
3c226639eb tests: add BIP340 Schnorr signature support to test framework (Pieter Wuille)
206fb180ec --- [TAPROOT] Tests --- (Pieter Wuille)
d7ff237f29 Activate Taproot/Tapscript on regtest (BIP 341, BIP 342) (Pieter Wuille)
e9a021d7e6 Make Taproot spends standard + policy limits (Pieter Wuille)
865d2c37e2 --- [TAPROOT] Regtest activation and policy --- (Pieter Wuille)
72422ce396 Implement Tapscript script validation rules (BIP 342) (Johnson Lau)
330de894a9 Use ScriptExecutionData to pass through annex hash (Pieter Wuille)
8bbed4b7ac Implement Taproot validation (BIP 341) (Pieter Wuille)
0664f5fe1f Support for Schnorr signatures and integration in SignatureCheckers (BIP 340) (Pieter Wuille)
5de246ca81 Implement Taproot signature hashing (BIP 341) (Johnson Lau)
9eb590894f Add TaggedHash function (BIP 340) (Pieter Wuille)
450d2b2371 --- [TAPROOT] BIP340/341/342 consensus rules --- (Pieter Wuille)
5d62e3a68b refactor: keep spent outputs in PrecomputedTransactionData (Pieter Wuille)
8bd2b4e784 refactor: rename scriptPubKey in VerifyWitnessProgram to exec_script (Pieter Wuille)
107b57df9f scripted-diff: put ECDSA in name of signature functions (Pieter Wuille)
f8c099e220 --- [TAPROOT] Refactors --- (Pieter Wuille)

Pull request description:

  This is an implementation of the Schnorr/taproot consensus rules proposed by BIPs [340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki), [341](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki), and [342](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki).

  See the list of commits [below](https://github.com/bitcoin/bitcoin/pull/19953#issuecomment-691815830). No signing or wallet support of any kind is included, as testing is done entirely through the Python test framework.

  This is a successor to https://github.com/bitcoin/bitcoin/pull/17977 (see discussion following [this comment](https://github.com/bitcoin/bitcoin/pull/17977#issuecomment-682285983)), and will have further changes squashed/rebased. The history of this PR can be found in #19997.

ACKs for top commit:
  instagibbs:
    reACK https://github.com/bitcoin/bitcoin/pull/19953/commits/0e2a5e448f426219a6464b9aaadcc715534114e6
  benthecarman:
    reACK 0e2a5e4
  kallewoof:
    reACK 0e2a5e448f
  jonasnick:
    ACK 0e2a5e448f almost only looked at bip340/libsecp related code
  jonatack:
    ACK 0e2a5e448f modulo the last four commits (tests) that I plan to finish reviewing tomorrow
  fjahr:
    reACK 0e2a5e448f
  achow101:
    ACK 0e2a5e448f

Tree-SHA512: 1b00314450a2938a22bccbb4e177230cf08bd365d72055f9d526891f334b364c997e260c10bc19ca78440b6767712c9feea7faad9a1045dd51a5b96f7ca8146e
2020-10-15 10:22:35 +02:00
Pieter Wuille
d7ff237f29 Activate Taproot/Tapscript on regtest (BIP 341, BIP 342)
Define a versionbits-based activation for the new consensus rules on regtest.
No activation or activation mechanism is defined for testnet or mainnet.
2020-10-12 17:18:47 -07:00
Johnson Lau
5de246ca81 Implement Taproot signature hashing (BIP 341)
This implements the new sighashing scheme from BIP341, with all relevant
whole-transaction values precomputed once and cached.

Includes changes to PrecomputedTransactionData by Pieter Wuille.
2020-10-12 17:06:38 -07:00
Pieter Wuille
5d62e3a68b refactor: keep spent outputs in PrecomputedTransactionData
A BIP-341 signature message may commit to the scriptPubKeys and amounts
of all spent outputs (including other ones than the input being signed
for spends), so keep them available to signature hashing code.
2020-10-12 02:06:32 -07:00