BIP459: Add FullAgg (DahLIAS) module #1754

pull fjahr wants to merge 10 commits into bitcoin-core:master from fjahr:dahlias changing 27 files +3775 −153
  1. fjahr commented at 11:02 PM on September 25, 2025: contributor

    This PR adds a FullAgg module implementing full aggregation of BIP 340 signatures using the interactive aggregate signature scheme (DahLIAS).

    The implementation follows the BIP459.

  2. fjahr force-pushed on Sep 25, 2025
  3. fjahr force-pushed on Sep 26, 2025
  4. fjahr force-pushed on Sep 26, 2025
  5. fjahr force-pushed on Dec 16, 2025
  6. w0xlt commented at 12:42 PM on May 8, 2026: contributor

    Concept ACK

  7. refactor: Move parsing helpers from musig to eckey
    The naming of these functions suggested they should be moved to group.h
    but this didn't seem practical since these functions depended on eckey.h
    internally which is higher level than group.h.
    c218cee30d
  8. fjahr force-pushed on Jul 10, 2026
  9. fjahr renamed this:
    Add FullAgg module
    Add FullAgg (DahLIAS) module
    on Jul 10, 2026
  10. fjahr force-pushed on Jul 10, 2026
  11. fjahr force-pushed on Jul 11, 2026
  12. fullagg: Add module ede95ae94c
  13. fjahr force-pushed on Jul 11, 2026
  14. fjahr commented at 12:30 PM on July 11, 2026: contributor

    The last commit here now is implementing the code sharing between the musig and the fullagg model. That is one of the first questions I have when reviewers will take a closer look here: Do we want to do it this way? And do we event want to do this at all? I think it's pretty good but also the amount of LOC saving has been a bit underwhelming at the end.

    A second thing that I changed and that I would be interested in high-level feedback on: I realized that the fullagg module really doesn't need any of the Schnorr module code, it just depends on extrakeys. I fixed this in the config where I still had the schnorr module as dependency of the fullagg module. However, in practical terms they will likely always be active together and it's also a bit awkward that I still have the module named schnorrsig_fullagg which I took over from the Halfagg PR where it's schnorrsig_halfagg. The most correct way would be to remove the schnorrsig part here but I am also unsatisfied with the asymmetry this would create 🙈 If anyone has opinions on this I am happy to hear them.

  15. fjahr marked this as ready for review on Jul 11, 2026
  16. fullagg: Add include file 5a45c8e687
  17. fullagg: Add example c205fd4ff9
  18. fullagg: Add to CI 20b353d4cb
  19. fullagg: Add to build system 07beb1f031
  20. fjahr renamed this:
    Add FullAgg (DahLIAS) module
    BIP459: Add FullAgg (DahLIAS) module
    on Jul 11, 2026
  21. fullagg: Add docs 831408265f
  22. fullagg: Add benchmarks 48ce168c5d
  23. fullagg: Add ctime tests 07e817b266
  24. TBD: Sharing common code between fullagg and musig 866e01507c
  25. fjahr force-pushed on Jul 11, 2026
Contributors

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