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 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.