Hi conduition,
Thanks a lot for checking out the proposal and raising those
questions!
One caveat up front: I have not spent much time on the PQ side of
things yet, so I can not give you a very serious answer on those parts
and I do not want to make strong claims here. But I am interested to
invest more time there now that the proposal is published and explore
how it can be adapted for different PQ scenarios.
> reserving segwit version 2 conflicts with BIP-360 which proposes to
> use the same.
Right, this was pointed out in an inline comment as well, please see my
answer there:
> 1. Can the framework you use for verifying aggregated sigs be
> generalized to support future aggregated PQ signatures in the future?
I would expect that the transaction-level structure should generalize:
the markers, the mode commitment in the signature message, the group
formation, and the final input carrying the aggregate should not care
which scheme is used (again, take it with a grain of salt since I have not
studied any PQ schemes in real depth). We would still need a new witness
version but there would be need for a new output type anyway in this
scenario, I guess. I certainly hope in any scenario that the framework
and related learnings will be useful in a PQ world as well.
> 2. How do you see this proposal mixing with BIP360?
I do not have a concrete good answer here yet. The trade-off you describe
is certainly real: aggregation needs all public keys as input to verification,
so hiding them costs 32 bytes per input which halves full-agg savings
and makes half-agg ~useless. This proposal deliberately picks the
taproot security model, bare keys give us maximum savings. If
P2TRv2 materializes as the migration output type, I could see CISA
certainly being defined on top of it. The witness rules here should carry
over and since script path spending follows BIP 341/342 unchanged,
committing PQ fallback leaves would work the same way as proposed
there. That definitely seems worth exploring.
A hash-hidden variant like your option b should be possible within the
same framework. This could be specified as its own output type if the
ecosystem likes this trade-off and I think that is a very interesting idea to
explore. Both outputs types could coexist and users could pick based on
their quantum fear index while the implementation would share most of
the logic/code. Even shared aggregation groups seem possible cleanly
if we add them to this proposal, but this likely wouldn't be great for
CoinJoin privacy guarantees.
But I think even the proposal as-is can provide a lot of value in many
conceivable scenarios of CRQC arrival and I think you were hinting at this
with the migration argument as well. If the network, for example, comes
to consensus that CRQCs will arrive in 1-2 years and a PQ scheme is about
to be deployed, which will be bigger and more expensive than BIP340, we
should see a lot of demand for consolidation and CoinJoins and having
CISA availability would provide a nice (though temporary) effect. But of course
this is also limited to the coins that have moved already by that time.