AI Initiative logoAI Initiative
Reading room / Manthan

R-210 — Quorum aggregation: BLS vs Schnorr-MuSig vs sequential Ed25519 tradeoffs

Compares sequential Ed25519, BLS and Schnorr-style aggregation for multi-party attestations, including operational and verification tradeoffs.

Research report / proposal; not independently verified publication
This is the retained source text, not a new validation of its claims. Numerical results and comparative claims require the accompanying source review before public reuse.

Read the connected case study or article →

Not explicitly stated in source · Date not established

Provenance, authorship and editorial notes

R-210 — Quorum aggregation: BLS vs Schnorr-MuSig vs sequential Ed25519 tradeoffs

Id

manthan-herald-protocol-research-quorum-agg

Project

Manthan

Source path

manthan/herald-protocol/research/quorum-agg.md

Source sha256

4a57b85fb7a1f3abef127f9c511344cb7f003dca10c21836a37b0997a50d8d18

Local copy sha256

4a57b85fb7a1f3abef127f9c511344cb7f003dca10c21836a37b0997a50d8d18

Repo head

3a94084024a3434cef331fecac91c2c3b43f0313

Date
Not recorded
Date basis

Original publication date not established; Git revision date retained separately.

Author

Not explicitly stated in source

Author basis

Unknown; Git committer not substituted for document author.

Last source commit

8b75d1b0157c20a0a463f0e31008ef9f73099beb

Last source commit date

2026-06-08T07:40:14Z

Document status

Research report / proposal; not independently verified publication

Summary

Compares sequential Ed25519, BLS and Schnorr-style aggregation for multi-party attestations, including operational and verification tradeoffs.

Topics
  • Trust and collective intelligence research
  • 0. The question, precisely
  • 1. Candidate schemes
  • 1.1 Sequential Ed25519 (status quo)
Theme

Trust and collective intelligence research

Priority

deep

Related ids
  • manthan-herald-protocol-research-confession-alignment
  • manthan-herald-protocol-research-dkim-analogy
  • manthan-herald-protocol-research-patina-formula
Evidence concerns
  • Recovered source text is preserved verbatim. Assertions, comparisons, commands and results belong to its original context; they were not re-executed or externally re-verified during this corpus review.
  • Research/design document, not proof of deployed capability, peer review, novelty or improved outcomes. External citations and dated maturity claims need independent verification before public reuse.
Word count

3976

Bytes

27607

Source relative

herald-protocol/research/quorum-agg.md

Remote mirror

manthan/herald-protocol/research/quorum-agg.md

Full text preserved

True

R-210 — Quorum aggregation: BLS vs Schnorr-MuSig vs sequential Ed25519 tradeoffs

Task. Compare candidate signature-aggregation schemes for HERALD's quorum and threshold-attestation primitives. Recommend an admission path for the signature-suite registry.
Question framed by EXT. "EXT does not specify how members coordinate to produce co-signatures (BLS, Schnorr-MuSig, sequential Ed25519, off-chain orchestration); it specifies that the result must be expressible as multi-signature envelopes verifiable under the suite registry." — [EXT §7.4], lines 557–559.

0. The question, precisely

HERALD has two distinct N-of-M signing surfaces. Both are explicitly multi-party but neither has a chosen aggregation primitive in v0.2:

1. Threshold lineage attestation — N independent Heralds co-sign the same (subject, parent | model_hash) tuple, governed by a diversity_policy. [EXT §3.3], lines 230–247. The list shape today is concatenated: signatures: [{ "by": "<herald-sigil>", "sig": "..." }, ...].
2. Quorum attestation / collective acting — a collective sigil's statement is valid iff ≥ threshold member sigils have co-signed it under [EXT §6] multi-signature rules. [EXT §7.4], lines 538–559.

[EXT §6.6] (lines 458–462) registers only ed25519 for v0.2 and explicitly notes that "adding new suites (post-quantum candidates, Schnorr variants, BLS for aggregation) is a registry-update process". [THREATS] line 374 records the open issue verbatim:

Quorum semantics (n-of-m? threshold? aggregated BLS? concatenated Ed25519?) are not specified in v0.1 01−securityS601-security S6; they must be specified before quorum is enabled.

This report answers what would actually go into that registry update.

The decision is also non-trivially constrained by [SPEC §3.4] / [SPEC §3.6] / [EXT §6.3], which require:

These constraints shape the answer. In particular: the origin signature must remain Ed25519 (the from sigil's long-term key). Any aggregation scheme is at best a replacement for the co-signature list, not for the originator binding.


1. Candidate schemes

1.1 Sequential Ed25519 (status quo)

Each member signs independently over the progressive-signing canonical input ([EXT §6.4]). The envelope's signatures[] array carries N concrete {by, sig} pairs. Verification iterates the array in order.

This is what [SPEC §3.4] / [EXT §6] describe today. It is not "an aggregation scheme" in the formal sense — it is a list. We include it as the baseline because it is what HERALD already has, and any alternative must justify itself against it.

1.2 BLS12-381 signature aggregation (BLS)

Boneh–Lynn–Shacham over the BLS12-381 pairing-friendly curve (IETF draft draft-irtf-cfrg-bls-signature-05, the de-facto Ethereum / Filecoin / Tendermint suite). Two flavours relevant here:

Native curve: BLS12-381. Hash-to-curve per RFC 9380. Domain-separation strings are part of the standard.

1.3 Schnorr / MuSig2 over Ed25519 or secp256k1

MuSig2 (Nick et al. 2020, IETF draft draft-bip-musig2, Bitcoin BIP 327). N parties produce a single Schnorr signature verifiable under a single aggregated public key. Two-round protocol: nonce commitment + partial signature exchange. Strictly n-of-n in its simple form; threshold variants (FROST, Komlo–Goldberg 2020) need a DKG.

Sister scheme FROST (Flexible Round-Optimized Schnorr Threshold) handles t-of-n natively in two rounds with a one-time DKG, and is the Schnorr-side answer to threshold BLS without pairings. IETF: draft-irtf-cfrg-frost.

The signature is 64 bytes (Ed25519-compatible if instantiated over edwards25519) or 64 bytes (Schnorr over secp256k1). The aggregated public key is 32 bytes.

1.4 "Off-chain orchestration" / signed-list compaction

A non-cryptographic option: members sign individually, an orchestrator collates the list, and a single Ed25519 signature over the list of (member, signature) pairs is published as the canonical artefact. This is what Tendermint's pre-aggregation block-vote handling does in some ABCI configurations and what most multisig wallets do in practice. It does not reduce signature size under verification; it reduces transmission and amortises lookup. We include it because for HERALD's typical N (≤ 16 Heralds, ≤ small-number quorum) the cryptographic gain of aggregation may not justify the protocol cost.


2. The comparison matrix

The table below is for the 7-of-10 case (a plausible upper bound for both threshold-Herald lineage and small collective quorums; chosen because it is small enough to be realistic and large enough to expose aggregation's wins).

PropertySequential Ed25519BLS (plain agg)BLS (threshold, t-of-n)MuSig2 (n-of-n Schnorr)FROST (t-of-n Schnorr)
Aggregate signature size7 × 64 B = 448 B96 B96 B64 B64 B
Aggregate public-key material on-wire7 × 32 B = 224 B (each by)7 × 48 B = 336 B (or 48 B if PoP)48 B (just the group key)32 B (just the group key)32 B (just the group key)
Verifier cost7 × Ed25519 verify (~70 µs each on commodity CPU)8 pairings (~5 ms total on BLS12-381)2 pairings (~1 ms)1 Schnorr verify (~70 µs)1 Schnorr verify (~70 µs)
Signer interactivity (rounds)0 — independent signing0 — independent signing1 (signing) + DKG (one-time, ~3 rounds)2 — nonce commit + partial sig2 (signing) + DKG (one-time, ~2 rounds)
Membership transparency on-wireFull — every member's sigil + sig presentFull — every member's pubkey presentHidden — verifier sees only the threshold group keyHidden — verifier sees only the aggregated keyHidden — verifier sees only the threshold group key
Per-signer revocabilityTrivial — drop the entryTrivial — recompute aggregateHard — DKG must be re-run for membership changeHard — re-keying requiredHard — DKG must be re-run
Rogue-key attack defenceN/A (independent keys)Requires proof-of-possession or augmented schemeBuilt into DKGBuilt into MuSig2 nonce commitmentsBuilt into FROST
Post-quantum statusBroken by ShorBroken by Shor (also pairing-curve assumptions)Broken by ShorBroken by ShorBroken by Shor
Library availability — Rusted25519-dalek (mature, RustCrypto)blst (Supranational, audited; used by Lighthouse, Lodestar)blst + threshold_bls (less mature)musig2 crate (Nick et al. ref); secp variants in secp256k1-zkpfrost-ed25519, frost-secp256k1 (ZF, audited 2023)
Library availability — Gocrypto/ed25519 (stdlib)bls12-381 (gnark, kilic/bls12-381, herumi/bls-eth-go-binary)kyber/v4 (DEDIS)sparse — tendermint/musig, ad-hocfrost-go (community, less audited)
Library availability — Pythoncryptography, nacl/PyNaClpy_ecc (Ethereum), blspy (Chia, audited)blspy partial; pyfrost for FROSTmusig2-py (research-grade)pyfrost (community)
Library availability — TypeScript / JS@noble/ed25519 (Paul Miller, audited; widely used)@noble/bls12-381, @chainsafe/bls@chainsafe/bls partial; threshold support thin@cmdcode/musig2 (small audience)@frostlab/frost-ed25519 (early)
Auditability of the implementation poolExcellent — RFC 8032; many independent auditsGood — blst audited by NCC and Trail of BitsFair — DKG implementations less auditedFair — MuSig2 itself audited; library variance highFair — FROST IETF draft fresh, audits ongoing
Domain-separation slotAlready specified [EXT §6.3]Native via hash-to-curve dstNative via hash-to-curve dstNative (per IETF draft)Native (per IETF draft)
Key-aggregation propertyNonePlain XOR of pubkeys (rogue-key concerns)DKG yields one group key; member shares hiddenOne group key from MuSig2 KeyAggOne group key from FROST DKG

Sources: BLS sizes and pairing counts are from blst's benchmarks and the IRTF BLS draft; MuSig2 / FROST claims are from BIP 327 and the FROST CFRG draft; Ed25519 timings are from ed25519-dalek and @noble/ed25519 published benchmarks; library survey is by inspection of the package ecosystems as of 2026-05.


3. Reading the matrix against HERALD's specific needs

3.1 Threshold Herald lineage attestation [EXT §3.3]

Operating regime:

Conclusion for §3.3. Sequential Ed25519 is not just acceptable — it is the only scheme that satisfies the diversity-policy verification requirement. Aggregation actively breaks the primitive.

3.2 Collective / quorum attestation [EXT §7.4]

Operating regime:

Conclusion for §7.4. Sequential Ed25519 remains the default, but a signature-suite-registered aggregation path is justified for large collectives where:

This second condition is the load-bearing one and is currently not addressed by EXT. A well-designed aggregation scheme for collectives requires a companion "membership root" primitive.

3.3 Origin signature

The origin signature ([SPEC §3.4] line 185, [EXT §6.1] line 418) is and remains a single signer, single algorithm. No aggregation rationale applies. It stays Ed25519 over herald.sig.origin.v1.


4. Post-quantum status — and why it dominates the registry decision

All three candidate schemes (sequential Ed25519, BLS, Schnorr / MuSig2 / FROST) are broken by Shor's algorithm against a CRQC. The aggregation question is therefore independent of the post-quantum question: whatever HERALD chooses for v0.2 will need to be migrated when (not if) PQ migration begins. The relevant registered post-quantum candidates as of 2026-05 are:

Aggregation in the PQ world is a research topic (lattice-based aggregate signatures: Boneh–Kim 2020; Aggregate Falcon: in flux). There is no production-ready PQ aggregation scheme as of 2026-05.

Implication. Choosing BLS or FROST today buys aggregation properties that will not survive PQ migration. The migration target (probably ML-DSA or some post-NIST hybrid) is not aggregable. So an aggregation primitive in HERALD is a 5–10 year asset, after which it is replaced by a PQ scheme that returns to concatenated lists.

This is a strong argument for delaying registry-admission of BLS / FROST until either:

(a) HERALD has a concrete deployment for which the size or verification-cost win is load-bearing, OR
(b) A PQ aggregate scheme is standardised, in which case the v0.2 aggregation choice is leapfrogged anyway.


5. Other constraints from the SPEC / EXT cryptographic profile

5.1 Domain separation

[SPEC §3.6] lines 208 and [EXT §6.3] lines 432–442 mandate dom_sep || canonical_body signing. Ed25519 supports this trivially (just concatenate). BLS supports it via the IRTF spec's dst parameter. MuSig2 / FROST IETF drafts include explicit dst slots.

No scheme is excluded on domain-separation grounds. But the registry entry for any new suite must specify the role-binding rule — what scope values that suite is permitted for. The current rule in [EXT §6.6] line 460 is "alg" matched against the registry; aggregation suites are likely restricted to quorum and possibly herald_endorsement scopes only, never origin.

5.2 Progressive-signing semantics

[EXT §6.4] lines 444–448: each signature is computed over the envelope with signatures replaced by all prior signatures in declaration order. This is intrinsically a list model. Aggregation breaks it.

For aggregated signatures to fit into the multi-signature envelope, the spec needs an exception clause: an aggregated signature represents a bundle that occupies one slot and signs over the same canonical input as a single co-signature would. This is implementable but is not a registry-only change — it requires an EXT amendment to §6.4 specifying how the aggregated entry is positioned in the array and what canonical input it covers.

5.3 The "no-duplicate-signer" rule

[SPEC §3.4] line 188: "The same signer MUST NOT appear twice in signatures[]." For aggregation schemes that hide member identity (threshold BLS, FROST), there is no per-signer entry — the rule degenerates. For schemes that expose member identity (BLS plain, MuSig2 with explicit member list), the rule continues to apply.

5.4 Verifiability across language ecosystems

HERALD's reference libraries target TS, Python, Go, Rust ([SPEC §11], envelope reference). The current registered suite (Ed25519) is universally available with audited, RFC-8032-conformant implementations in all four.

For the candidate aggregation suites:

For HERALD-style cross-language interop testing (T-001 vectors, T-017 conformance), BLS has the cleanest story; FROST is feasible but concentrates trust in fewer audited implementations.


6. Threats and footguns

6.1 Rogue-key attacks (BLS plain)

If members publish their BLS pubkeys without proof-of-possession, an attacker can craft a key pk_bad = pk_target⁻¹ ⊕ pk_chosen and sign a malicious message valid under the aggregate. The defence is requiring proof-of-possession (herald.sig.bls_pop.v1 domain tag) at registration. This adds a key-registration ceremony to HERALD's birth-attestation flow that does not exist today. Material cost.

6.2 Nonce reuse (MuSig2 / FROST)

MuSig2 requires fresh nonces per signing session; reuse across sessions leaks the secret key. Implementations have been published with this bug (e.g. ROAST 2022 paper documenting two production wallet flaws). Sequential Ed25519 is RFC 8032 deterministic and immune. For autonomous agents that may crash, restore from backup, and re-sign — a real risk.

6.3 DKG ceremony attack surface

Threshold BLS and FROST both require an initial distributed-key-generation ceremony. A malicious participant can refuse to publish their share, biasing the resulting key, or learn unexpected information from honest participants. Production DKGs (Pedersen, Gennaro–Jarecki–Krawczyk–Rabin) are well-studied but operationally heavy; running one across an ad-hoc collective of agents is a protocol not a library call.

6.4 Trusted setup (BLS only)

BLS12-381 itself does not need a trusted setup. But pairing-friendly curve constructions in general are scrutiny-prone: curve choice, generator subgroup membership, twist-attack resistance all matter. blst handles these correctly; ad-hoc implementations often do not. Conclusion: only blst (Rust) and herumi/bls (Go) and @chainsafe/bls (TS) are reviewable; everything else carries implementation risk.

6.5 Membership-transparency loss

This is the load-bearing concern for HERALD. Both [EXT §3.3] and [EXT §7.4] require the verifier to evaluate each member against a diversity_policy. A scheme that hides members defeats the policy check. Threshold BLS and FROST are therefore inadmissible for these primitives without a separately-attested membership-witness primitive that does not currently exist in EXT.

This is the single biggest reason the recommendation below is not "adopt BLS now."


7. Recommendation

7.1 v0.2 (current registry)

Keep sequential Ed25519 as the only registered suite for quorum-bearing envelopes. [EXT §6.6] already names this. No change to the registry.

Rationale, ordered by weight:

1. Diversity-policy verification ([EXT §3.3] line 245, [EXT §7.4] line 553) requires per-member visibility. Aggregation schemes that hide members violate the requirement; aggregation schemes that don't hide members give modest wins at the cost of complexity.
2. Per-member revocability ([EXT §3.6], [EXT §1] molt) requires that membership changes don't invalidate aggregated artefacts. Threshold schemes fail this; non-threshold aggregation passes only awkwardly.
3. PQ migration is the load-bearing future, and no PQ aggregation is production-ready. Investing in a non-PQ aggregation primitive now creates churn at PQ migration time.
4. Library audit posture. Ed25519 is the most-audited, most-portable primitive in the cryptographic landscape. Adding BLS / FROST narrows the audit pool.
5. The size win is small at HERALD's expected N. For 7 Heralds, the wire savings are ~350 B per attestation; for 10-of-100 collectives, ~6 KB. Neither is a system bottleneck.

7.2 Conditional admission path

Two specific conditions, either of which justifies admitting a new suite:

Path A (BLS for large collectives). Admit BLS12-381 (with proof-of-possession) into the suite registry only for scope: "quorum" envelopes from collectives whose membership is independently attested. This requires three companion changes outside R-210's scope:

Path B (PQ-ready post-2027). When ML-DSA aggregation (or a successor) reaches IRTF / IETF standardisation, register that scheme directly and skip the BLS detour. This is the recommended path unless a deployment between now and PQ standardisation has a load-bearing aggregation requirement (which v0.2 does not).

7.3 What NOT to do


8. What this report deliberately does not answer


9. Follow-on tasks

These belong as new entries in TODO.md; this report does not edit TODO.md (per the worker contract).


10. Citations

HERALD documents (read 2026-05-05)

External / standards

Library survey (verified by package-registry inspection 2026-05-05)

External references are by name + draft / RFC / FIPS number rather than URL — URLs change; identifiers don't.

Continue exploring