Files
bitcoin/src/test/fuzz
MarcoFalke bd482b3ffe Merge bitcoin/bitcoin#24105: Optimize CHECKSIGADD Script Validation
cfa575266b Optimize CHECKSIGADD Script Validation (Jeremy Rubin)

Pull request description:

  This is a mild validation improvement that improves performance by caching some signature data when you have a Taproot script fragment that uses CHECKSIGADD Multisignatures with sighash single. In some basic testing I showed this to have about a 0.6% speedup during block validation for a block with a lot of CHECKSIGADDs, but that was with the entirety of block validation so the specific impact on the script interpreter performance should be a bit more once you subtract things like coin fetching. If desired I can produce a more specific/sharable bench for this, the code I used to test was just monkey patching the existing taproot tests since generating valid spends is kinda tricky. But it's sort of an obvious win so I'm not sure it needs a rigorous bench, but I will tinker on one of those while the code is being reviewed for correctness.

  The overhead of this approach is that:

  1. ScriptExecutionData is no longer const
  2. around 32 bytes of extra stack space
  3. zero extra hashing since we only cache on first use

ACKs for top commit:
  sipa:
    utACK cfa575266b
  MarcoFalke:
    review ACK cfa575266b
  jonatack:
    ACK cfa575266b
  theStack:
    Code-review ACK cfa575266b

Tree-SHA512: d5938773724bb9c97b6fd623ef7efdf7f522af52dc0903ecb88c38a518b628d7915b7eae6a774f7be653dc6bcd92e9abc4dd5e8b11f3a995e01e0102d2113d09
2022-01-25 09:14:48 +01:00
..
2020-12-10 07:15:42 +01:00
2020-12-10 07:15:42 +01:00
2020-12-10 07:15:42 +01:00
2021-12-30 19:36:57 +02:00
2020-12-10 07:15:42 +01:00
2020-12-10 07:15:42 +01:00
2020-12-10 07:15:42 +01:00
2021-12-30 19:36:57 +02:00
2020-12-10 07:15:42 +01:00
2021-09-22 10:39:08 +02:00
2020-12-10 07:15:42 +01:00
2020-12-10 07:15:42 +01:00
2021-12-30 19:36:57 +02:00
2021-12-08 14:20:16 +01:00
2020-12-10 07:15:42 +01:00