I agree with your overall claim that we should be cautious about which digital signature algorithms are added as op codes. The danger of a break in ECC is real, but so is the danger of adopting a newer signature algorithm with less vetting. These risks must both be taken seriously.

>  The idea is giving users/wallets the ability to choose the cryptographic primitives used to protect their own coins, from a set of available primitives that may change over time.

Agreed that allowing users to choose their cryptographic primitives from a menu of many options would be problematic:

- Skub and fragmentation over which algorithm is best (Camp A vs Camp B)
- Greater resource costs on wallets if they have to support many algorithms,
- Security analysis is spread over many different schemes,
- More algorithms increase chance any one of the algorithms is broken,

Ideally Bitcoin would only have one signature algorithm at a time.

Algorithm agility aims to provide a standardized upgrade path from a weakened algorithm to a new algorithm that the community overwhelmingly wishes to use. It should not require a menu of different signature opcodes. Yes, the backup signature algorithm exists, but it exists only to enable this secure upgrade path. In this light the high transaction fees of SLH_DSA can be seen as a benefit since they incentivize using SLH_DSA signatures only when absolutely necessary.

> A small note aside: you can argue that it is possible for people to store coins insecurely, like in an OP_TRUE script output, or with private keys that are made public. I don't think this possibility affects the point above, because it is not about what possibilities exist, but which approaches people are likely to / asked to adopt. Nobody is incentivized or encouraged to store coins in an OP_TRUE.

As Bitcoin moves to PQ is I want to ensure the solution is standardized and that wallets use the standard approaches. I worry that some wallets might roll their own adhoc protections if we don't have a  clear and well supported standard way to support PQ signatures.

>  I do believe that disabling EC opcodes will be necessary in any economically-relevant surviving chain, due to the millions of BTC that are unlikely to ever move. 

I agree that the incentives make that an extremely likely confiscatory soft-fork. While it seems like the most likely outcome, I don't feel comfortable making PQ plans that depend on this happening. I also don't feel comfortable advocating for a confiscatory soft-fork. For these reasons, I have not baked the assumption that a confiscatory soft-fork happens in my algorithm agility proposal.

No one can say for certain, but it seems reasonable to assume long exposure attacks will be practical years before short exposure attacks. If true, then a soft-fork to freeze P2PK/P2TR will happen before EC opcodes are frozen as P2SH will still be safe to use (as long as the public key has not been exposed). By the time short exposure attacks are practical, will enough P2SH,P2WSH vulnerable coins remain to justify freezing EC opcodes? What's the breakdown on the number of coins in P2SH and P2WSH outputs that haven't moved in 5 years? As you ask, how much is enough?

This question of what to do with EC opcodes is worth more discussion. My hope is that once everyone agrees that they are insecure, no one uses them, like no one using OP_TRUE scripts or OP_SHA1, but that hope is not justified, what should we do? opcode anti-discount? Disabling them like you propose?


On Fri, Feb 13, 2026 at 11:23 AM Pieter Wuille <bitcoin-dev@wuille.net> wrote:

Hi all,

A thread was recently started on this list about cryptographic agility in Bitcoin. I believe there are important limitations around that idea, and wanted to offer my own perspective. It's more a philosophical consideration, and is not intended as an argument against (or for) any particular proposal today.

The idea is giving users/wallets the ability to choose the cryptographic primitives used to protect their own coins, from a set of available primitives that may change over time. I think this ignores how important it is what others do with their coins. If others' coins lose value, for example due to fears about them becoming vulnerable to theft with cryptographic breakthroughs, so do your own due to fungibility, regardless of how well protected they are.

As an extreme thought-experiment, imagine that tomorrow a new cryptographic signature scheme FancySig is published, with all the features that Bitcoin relies on today: small signatures, fast to verify, presumed post-quantum, BIP32-like derivation, taproot-like tweaking, multisignatures, thresholds, ... Further assume that within the next year or two, voices (A) start appearing arguing that such a scheme should be adopted, because it's the silver bullet the ecosystem has been waiting for. At the same time, another camp (B) may appear cautioning against this, because the scheme is new, hasn't stood the test of time, and isn't well-analyzed. These two camps may find themselves in a fundamental disagreement:

  • Camp (A), fearing an EC-break (CRQC or otherwise), wouldn't just want FancySig as an option - they would want (feasible or not) that near-everyone migrates to it, because the prospect of millions of BTC in EC-vulnerable coins threatens their own hodling.
  • Camp (B), fearing the possibility that FancySig gets broken soon, possibly even classically, don't want to just not use FancySig; they would want near-nobody to migrate to it, because the prospect of a potential break of FancySig threatens their own hodling.

This is of course an extreme scenario, and in reality the divergence between camps may be much less incompatible, but I still think it's a good demonstration of the fact that despite being a currency for enemies, Bitcoin essentially requires users to share trust assumptions in the cryptography, and its technology in general.

A small note aside: you can argue that it is possible for people to store coins insecurely, like in an OP_TRUE script output, or with private keys that are made public. I don't think this possibility affects the point above, because it is not about what possibilities exist, but which approaches people are likely to / asked to adopt. Nobody is incentivized or encouraged to store coins in an OP_TRUE.

It is also good to ask what amounts are relevant here, to which I do not know the answer. Possibly, the prospect of 100k BTC becoming vulnerable to theft won't threaten the value of the other coins, while the prospect of 10M BTC becoming vulnerable may. Depending on where your belief about this lies, you may end up with very different conclusions. Still, to me it is clear that some threshold exists above which I would be uncomfortable with seeing that many coins move into an untrustworthy scheme, even if they are not my own coins.

This brings us to the question then how at all Bitcoin users can migrate to new cryptography, because we cannot assume that secp256k1 will last forever. And I think the answer is essentially that it requires the entire ecosystem to change their assumptions. This does not mean that adding a new opt-in cryptographic primitive is infeasible or a bad idea; it just means that adding FancySig as an option is changing the collective security assumption from "secp256k1 is secure" to "secp256k1 AND FancySig are secure" once FancySig gets adopted at scale, and the discussion about adding new primitives should be treated with the gravity that entails. And it means that disabling secp256k1 EC operations (or near-everyone migrating to FancySig, but I think that is unlikely) is the only way to change the collective security assumption from "secp256k1 AND FancySig are secure" to "FancySig is secure".

Because of that, if CRQCs or other EC-breaks become reality, or just the fear about them becomes significant enough, I do believe that disabling EC opcodes will be necessary in any economically-relevant surviving chain, due to the millions of BTC that are unlikely to ever move. Note that I am not arguing that "Bitcoin" will, should, or even can do this, and I'm quite sure that the inherent confiscation required will make the result uninteresting to me personally. It may be that such disabling only happens in a fork that doesn't end up being called Bitcoin, or it may be that this happens only after a CRQC has been demonstrated to exist. Still, given a severe enough threat I think it is inevitable, and I think that this means we shouldn't worry too much about what happens in chains in which EC is not disabled while simultaneously EC is considered insecure: such chains will be worthless anyway.

-- 
Pieter


--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/THqOJuI_s5C8B9jkklN73BB_Hzb9SsiLM6BFp4zFP3zWQoRevKoLVspdwjwh8NxxYbXwv4v6ikpStguW-QEvef4WgBZ7AQDz00P0st91FMA%3D%40wuille.net.

--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/CAEM%3Dy%2BWbqY4FE9XH50K2B8DjE5zx_D1zZ-sZmfdmg0vvUiyLTQ%40mail.gmail.com.