>_ Skip to main content
Menu
Search

It’s 2017. You set up one Bitcoin address as your “main one” because you needed somewhere clean for friends to Venmo you, but in BTC. Over the years, that address handles maybe 200 small payments. You also spend from it a couple of times, mostly to consolidate things or pay a vendor who only takes BTC. The address has a balance, a transaction history, and a kind of vibe (it’s been around).

You have also, without entirely meaning to, built yourself a quantum-era target.

Call it the exposure stack: what you accidentally construct when you reuse a Bitcoin address. Every spend reveals the public key for that address. Every subsequent receive piles more value behind that already-exposed key. Address reuse used to be a privacy mistake. Quantum makes it a security mistake too, and the math of how it accumulates is the part no one warned you about ten years ago.

The privacy argument (which was already bad)

For most of Bitcoin’s history, the case against reuse was about privacy. Use one address for everything, and any observer with a block explorer can see your full balance, who’s paying you, your spending patterns, basically your financial life. The blockchain doesn’t forget.

Bitcoin’s pseudonymity has always depended on you doing the work of scattering your activity across addresses. The chain analysis industry built mansions and swimming pools on the foundation of users who didn’t. These are the companies governments and exchanges pay to figure out who owns which coins, and the whole business model rests on people who treated one address as a fixed identity.

You probably knew all this. Modern wallets generate a fresh receive address every time you click “receive” specifically because the privacy story is so well documented.

Then quantum showed up

Quantum ups the stakes. Bitcoin addresses are ultimately controlled by a public key. For modern hashed address types (P2PKH and P2WPKH), the public key stays hidden behind a HASH160 fingerprint until the moment you spend. The first time you broadcast a spending transaction from an address, your public key appears in the transaction’s unlocking data, the scriptSig for legacy P2PKH, the witness for P2WPKH, and joins the public chain forever.

One scope note: this piece is about hash-based single-key addresses (P2PKH and P2WPKH). Taproot (P2TR) and old pay-to-pubkey (P2PK) outputs work differently. They put a public key on chain before you ever spend, so the “hash hides you until first spend” logic doesn’t apply to them.

If you spend from an address once and never touch it again, the public key is exposed but the value behind it is whatever didn’t get moved in that spend. The exposure is shallow.

Reuse changes that. If you keep sending more BTC to the address, spending again, receiving again, every additional satoshi that lands at that address now sits behind a public key that’s already in the open. The hash protection was a one-time use. After the first spend, it’s gone. Reuse is just stacking value on top of an unlocked door.

That’s the exposure stack. The deeper you stack, the better the target.

Why this used to be fine

Quick history. ECDSA, the signature scheme Bitcoin has used since day one, is provably broken by Shor’s algorithm. But only on a sufficiently powerful quantum computer, which doesn’t exist yet, and may not exist for years. In the meantime, ECDSA is truly strong against classical attacks. Brute-forcing a Bitcoin private key from a public key is computationally hopeless on every classical computer the universe could ever build (probably).

So for most of Bitcoin’s history, putting your public key on chain was free. Spending revealed the key, and nothing could be done with it. Address reuse was a privacy faux pas. The security exposure on top of it didn’t exist yet, because there was no quantum threat to add it to. That free pass is on a timer.

The honest math is that no one knows when (or if) cryptographically relevant quantum computers will exist. NIST treats the threat as credible enough to have set 2035 as the U.S. government’s post-quantum migration target. Researchers won’t put a year on it. But the trend lines on physical qubit count and error correction don’t look like “we have decades” to anyone watching closely.

What the attack actually looks like

Say a nation-state or well-resourced attacker has a working fault-tolerant quantum computer. They scan the Bitcoin blockchain for every exposed public key, every spent-from address that hasn’t migrated to a quantum-resistant scheme. They prioritize by value.

Your bullseye address, the one with 200 small payments accumulated over five years, has a meaningful pile of BTC behind one exposed public key. The attacker derives the private key. They sweep your address. Your coins, the ones that have been sitting there because the address “always worked fine for receiving,” are gone.

Compare this to the alternative. If you’d been using a fresh receive address every time, you would have hundreds of small UTXOs scattered across hundreds of different addresses, each behind its own hash, most of which never had their public key revealed because you never spent from them. An attacker would have to crack each address individually. The economics get bad fast for the attacker, which is exactly what you want.

The wallet defaults already know this

Modern Bitcoin wallets generate a new receive address every time you click “receive.” Address reuse stopped being a defensible default about a decade ago, and wallet developers figured it out before most users did. Privacy was the original reason. Quantum exposure adds a second one.

So if you’re running a wallet that rotates receive addresses for you, you’ve been doing the right thing without trying. The dangerous case is the address you’ve manually saved because it’s “your” address. Maybe it lives in your Twitter bio. Maybe it’s the static donation address on your blog. Whatever the case, you’ve turned a Bitcoin address into a fixed identity, and the chain has been building you a target the whole time.

Why “just use a hardware wallet” doesn’t save you

If you’ve been using a Trezor or Ledger and feeling fine because it’s “cold storage,” there’s a small bit of news. The hardware wallet protects your private key from being remotely extracted. It doesn’t protect your public key from being on chain after you’ve spent.

This is the cold-wallet quantum gap. Hardware wallets are the right answer to the question “how do I keep someone from stealing my keys remotely.” They are not the answer to “how do I keep a future quantum attacker from working backwards from public keys I’ve already published.”

Same reuse rules apply. A hardware wallet that signs from the same address over and over has the same quantum exposure profile as a hot wallet doing the same thing. Cold doesn’t fix this.

Triage time

Triage your addresses honestly. Unspent hash-based outputs (P2PKH, P2WPKH) aren’t the immediate concern, because the public key is still hidden behind a hash. Spend one before a quantum-resistant scheme exists and it’s exposed at that moment. Left unspent, it’s safe. The exceptions are Taproot and old P2PK outputs, which expose a key and still sit unspent.

Spent addresses are the question, and the answer depends on whether you’ve reused them. Single-spend addresses are exposed but bounded. Reused addresses are the priority. Move funds off them into fresh, single-use receive addresses, and don’t touch the old ones again.

If you have a static donation address out in public somewhere, retire it. Either rotate to a payment processor that gives you a new address per invoice, or accept that you’ve created a long-term quantum target with your name on it.

(No rallying cry)

Address reuse used to be a faux pas. Now it’s also a security cost, denominated in future BTC that gets vaporized when somebody figures out Shor at scale and runs the chain looking for old reused addresses sitting behind exposed keys.

This isn’t a crisis. It might never become a crisis. The Bitcoin developers working on quantum migration know what they’re doing, even if the timeline is unclear and the threat is still theoretical in any practical sense. The people who tell you to panic-move your stack to a brand new address right this second are mostly selling something.

But address reuse has always had a cost. Privacy used to be the only one. Security is the new one. Pick a wallet that rotates addresses, don’t post a static receive address on the internet, and your future self will be glad you didn’t have to think about this very hard.

That’s it. No rallying cry. Stop reusing addresses.