Add FullAgg module #1754

pull fjahr wants to merge 7 commits into bitcoin-core:master from fjahr:dahlias changing 19 files +2541 −75
  1. fjahr commented at 11:02 pm on September 25, 2025: contributor

    This is sharing some early, experimental work on a Schnorr signature full aggregation module per the DahLIAS protocol. The paper has not yet been translated into a BIP but I was eager to try implementing module here from scratch and I wanted to share it as a base for some discussions while working on a BIP. Obviously, the code here will be subject to change because of this.

    Aside from all the stuff that is still missing the most interesting question so far seems to be: How can code be shared between two modules that might be not be considered low level and general enough to enter the main library but that is behaving exactly the same between two separate modules? In the code here there a many helper functions, almost all of them related to the effective nonce logic, that are (intentionally) exactly the same as in the Musig module (grep for TODO in the main impl file). This code might be shared with a FROST module as well in the future but to me this code doesn’t feel like it really belongs into the lower level library code because it is very specific to these higher level protocols. Maybe I am wrong here but if not there could be some common code section that is shared between modules but is not accessible from the other library code.

    TODOs

    • Write an actual BIP
    • Add tweaking support
    • Share duplicated code with the MuSig module
    • Add benchmarking code
    • Implement test vectors (from the BIP)
    • Add ctime tests
  2. fjahr force-pushed on Sep 25, 2025
  3. fjahr force-pushed on Sep 26, 2025
  4. 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.
    c0c9acb77e
  5. fullagg: Add module ec9e8e7a99
  6. fullagg: Add include file 2d8c1b10ab
  7. fullagg: Add example 5968aeb642
  8. fullagg: Add to CI 39e36190e0
  9. fullagg: Add to build system bfd388f5a2
  10. fullagg: Add docs 13a34e4921
  11. fjahr force-pushed on Sep 26, 2025


fjahr


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: 2025-10-13 19:15 UTC

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