dash/test/functional/test_framework
Wladimir J. van der Laan 0da4f596bb
Merge #13452: rpc: have verifytxoutproof check the number of txns in proof structure
d280617bf569f84457eaea546541dc74c67cd1e4 [qa] Add a test for merkle proof malleation (Suhas Daftuar)
ed82f1700006830b6fe34572b66245c1487ccd29 have verifytxoutproof check the number of txns in proof structure (Gregory Sanders)

Pull request description:

  Recent publication of a weakness in Bitcoin's merkle tree construction demonstrates many SPV applications vulnerable to an expensive to pull off yet still plausible attack: https://bitslog.wordpress.com/2018/06/09/leaf-node-weakness-in-bitcoin-merkle-tree-design/

  This change would at least allow `verifytxoutproof` to properly validate that the proof matches a known block, with known number of transactions any time after the full block is processed. This should neuter the attack entirely.

  The negative is that a header-only processed block/future syncing mode would cause this to fail until the node has imported the data required.

  related: #13451

  `importprunedfunds` needs this check as well. Can expand it to cover this if people like the idea.

Tree-SHA512: 0682ec2b622a38b29f3f635323e0a8b6fc071e8a6fd134c954579926ee7b516e642966bafa667016744ce49c16e19b24dbc8801f982a36ad0a6a4aff6d93f82b
2020-12-18 12:55:45 -06:00
..
__init__.py Merge bitcoin#9956: Reorganise qa directory (#2912) 2019-05-19 23:20:34 +03:00
authproxy.py Merge #12284: Remove assigned but never used local variables. Enable Travis checking for unused local variables. 2020-10-26 20:35:28 -04:00
bignum.py Merge #10781: Python cleanups 2020-01-02 22:01:29 -06:00
blocktools.py Implement Block Reward Reallocation (#3691) 2020-09-10 19:23:11 +03:00
coverage.py Some Dashification (#3513) 2020-06-11 11:39:04 +03:00
key.py Merge #12993: tests: Remove compatibility code not needed now when we're on Python 3 2020-06-27 10:43:32 -05:00
messages.py Merge #13452: rpc: have verifytxoutproof check the number of txns in proof structure 2020-12-18 12:55:45 -06:00
mininode.py Merge #12861: [tests] Stop feature_block.py from blowing up memory. 2020-07-26 19:39:13 -05:00
netutil.py Merge #12627: qa: Fix some tests to work on native windows 2020-06-18 11:41:53 -05:00
script.py Consensus: DIP-0020: Dash opcode updates - OP_CAT and OP_SPLIT. (#3824) 2020-12-11 22:17:10 +00:00
siphash.py Merge bitcoin#9956: Reorganise qa directory (#2912) 2019-05-19 23:20:34 +03:00
socks5.py Merge #12987: tests/tools: Enable additional Python flake8 rules for automatic linting via Travis 2020-07-22 12:12:46 -05:00
test_framework.py Merge #12443: qa: Move common args to bitcoin.conf 2020-12-15 11:06:26 -06:00
test_node.py Merge #12443: qa: Move common args to bitcoin.conf 2020-12-15 11:06:26 -06:00
util.py Merge #12643: [qa] util: Remove unused sync_chain 2020-12-15 11:06:27 -06:00