BIP458: Schnorr (Incremental) Half Aggregation #1566

pull fjahr wants to merge 4 commits into bitcoin-core:master from fjahr:2024-07-half-agg changing 21 files +2420 −35
  1. fjahr commented at 3:24 PM on July 2, 2024: contributor

    This implements BIP458: https://github.com/bitcoin/bips/pull/2205

    The original version of this code ported over the work from b-wagn in https://github.com/BlockstreamResearch/secp256k1-zkp/pull/261

  2. fjahr force-pushed on Jul 2, 2024
  3. real-or-random added the label feature on Jul 2, 2024
  4. fjahr force-pushed on Jul 2, 2024
  5. jjones3695 approved
  6. bitcoin-core deleted a comment on Jul 16, 2024
  7. bitcoin-core deleted a comment on Jul 16, 2024
  8. bitcoin-core deleted a comment on Jul 16, 2024
  9. fjahr force-pushed on Nov 18, 2024
  10. fjahr force-pushed on Nov 18, 2024
  11. fjahr commented at 4:17 PM on November 18, 2024: contributor

    Rebased on the musig changes and added the compile options for cmake

  12. fjahr force-pushed on Nov 18, 2024
  13. fjahr force-pushed on Nov 18, 2024
  14. fjahr force-pushed on Nov 18, 2024
  15. fjahr force-pushed on Nov 18, 2024
  16. fjahr force-pushed on Nov 26, 2024
  17. fjahr force-pushed on Dec 16, 2025
  18. fjahr commented at 10:53 PM on December 16, 2025: contributor

    Rebased to take into account the latest changes to cmake, CI and test framework. Also squashed the commit since maintaining them was annoying and there wasn't really a good reason for them. It was more of a crutch for me while I was taking my first steps here.

  19. fjahr force-pushed on Dec 16, 2025
  20. in include/secp256k1_schnorrsig_halfagg.h:93 in ccc826d1ff outdated
      88 | + *  Returns:          1: correct signature.
      89 | + *                    0: incorrect signature.
      90 | + *  Args:           ctx: a secp256k1 context object.
      91 | + *  In:         pubkeys: Array of n many x-only public keys. Can only be NULL if n is 0.
      92 | + *               msgs32: Array of n many 32-byte messages. Can only be NULL if n is 0.
      93 | + *                    n: number of signatures to that have been aggregated.
    


    Jonatanc05 commented at 1:58 PM on February 22, 2026:
     *                    n: number of signatures that have been aggregated.
    

    fjahr commented at 9:51 AM on February 26, 2026:

    Thanks, I will address it the next time I will push an update!


    fjahr commented at 9:58 PM on June 28, 2026:

    Fixed

  21. Jonatanc05 commented at 4:55 PM on February 22, 2026: none

    I think there's a typo

  22. fjahr force-pushed on Jun 28, 2026
  23. fjahr force-pushed on Jun 28, 2026
  24. fjahr commented at 9:57 PM on June 28, 2026: contributor

    Rebased and added the test vectors from the BIP draft: https://github.com/bitcoin/bips/pull/2205

  25. fjahr force-pushed on Jun 28, 2026
  26. fjahr force-pushed on Jul 7, 2026
  27. fjahr renamed this:
    Schnorr (Incremental) Half Aggregation
    BIP458: Schnorr (Incremental) Half Aggregation
    on Jul 7, 2026
  28. fjahr force-pushed on Jul 11, 2026
  29. Experimental: Add BIP 458 half-aggregation for Schnorr signatures
    Code is based on the secp256k1-zkp implementation. Test vectors based on
    BIP 458: https://github.com/bitcoin/bips/blob/master/bip-0458.mediawiki
    
    Co-authored-by: Benedikt <crypto@benedikt-wagner.dev>
    2cef44fdb9
  30. halfagg: Add benchmarks a84f73b302
  31. halfagg: Add example 35d4cfa5ed
  32. halfagg: Add docs 477c688395
  33. fjahr force-pushed on Jul 12, 2026

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-07-18 06:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me