Quantum Economics AI Lab · Research Note · September 2026

Bitcoin Output Types and Address Formats: Evolution and Quantum Risk

Yulin Liu
Quantum Economics AI Lab

Share

From P2PK outputs to Taproot and P2MR: how locking conditions, address encodings and quantum exposure have evolved — what is exposed long-term, what is exposed only when spent, and how far quantum-resistance preparations have come

Key takeaways

  • An address is not a public key. An address is usually a human-readable encoding of an output's locking condition. Some output scripts contain the public key directly (Pay-to-Public-Key, P2PK, which has no standard address), some addresses correspond to outputs that contain an output public key directly (Pay-to-Taproot, P2TR), and some contain only a hash of a public key or script (Pay-to-Public-Key-Hash, P2PKH; Pay-to-Script-Hash, P2SH; Pay-to-Witness-Public-Key-Hash, P2WPKH; Pay-to-Witness-Script-Hash, P2WSH). This distinction determines their exposure to quantum computers.
  • Over seventeen years, four common wallet-address prefixes and their output forms emerged through three major transitions: “1…” in 2009 (Base58Check), “3…” in 2012 (P2SH), “bc1q…” in 2017 (Segregated Witness, SegWit, with Bech32) and “bc1p…” in 2021 (most commonly Taproot outputs, encoded with Bech32m; bc1p itself only signals witness version 1). The 2009 P2PK/P2PKH formats shipped with Bitcoin v0.1 and predate the Bitcoin Improvement Proposal (BIP) process; the later three were standardised through BIPs and deployed via consensus upgrades or wallet software.
  • No mainstream output controlled by secp256k1 keys offers full post-quantum security. P2PK and P2TR reveal their public keys when the output is created. P2PKH, P2WPKH and common script-hash outputs resist Shor-based long-exposure attacks on revealed public keys as long as the key or script has not been revealed, but they reveal the public key for the first time when spent with a classical signature. Keyless outputs such as Pay-to-Anchor (P2A) fall outside this risk model.
  • The exposure is large. According to Project Eleven data as of mid-January 2025 (as cited in a May 2025 Chaincode Labs report), about 6.26 million BTC (≈30% of supply) sit in addresses whose public keys are already exposed on-chain; Erhardt's classification based on 2023 data shows about 1.72 million BTC locked in P2PK outputs. BIP361 cites more than 34% as of 1 March 2026.
  • Quantum-resistance upgrades remain drafts. BIP360 (Pay-to-Merkle-Root, P2MR) addresses only long-exposure attacks; BIP361 proposes a phased sunset of legacy signatures but depends on a post-quantum signature BIP that has not yet been settled or assigned a number.

1 What an address actually is

The Bitcoin white paper describes “a chain of digital signatures”[1]; at the protocol level there is no “account” or “address” object. Every bitcoin is locked in a transaction output whose spending condition is written in that output's locking script (scriptPubKey); to spend it, one must supply data that satisfies the script, usually a digital signature. An address encodes a locking script as a checksummed string that people can copy, so that the payer's wallet can reconstruct the correct locking script (Figure 1). Strictly speaking, not every “address” encodes a single fixed locking script: a Silent Payments (BIP352) “sp1…” address is a set of off-chain payment instructions containing two public keys, from which the payer derives a different on-chain P2TR output for each payment[2]. This report therefore distinguishes four layers: output type, locking condition, address encoding, and wallet or payment protocol.

Flowchart: a private key yields a public key via elliptic-curve multiplication; the public key is placed directly or hashed into a locking script, which is encoded as a Base58Check, Bech32 or Bech32m address. Annotations: Shor's algorithm can recover the private key from the public key; hash preimage search gains only a quadratic Grover speedup.

Figure 1 From private key to address. The public key is derived from the private key by elliptic-curve multiplication; recovering the private key from the public key is the elliptic-curve discrete logarithm problem (ECDLP), which is infeasible on classical computers. The public key can be placed in the locking script directly or hashed first; the script is then encoded as an address.

Discussing address formats therefore means discussing two things: the type of locking script (whether it locks to a public key, a public-key hash, a script hash or a witness program) and the encoding (Base58Check, Bech32 or Bech32m). The former determines functionality and security; the latter determines what the address looks like and how well input errors are detected. Table 1 summarises the main types.

Table 1 Main Bitcoin output types and address formats

Type

Mainnet prefix

Encoding

On-chain locking content

Specification / number

Deployment / activation

Main problem solved

P2PK

No standard address

—

Full public key (33 or 65 bytes) + OP_CHECKSIG

Predates the BIP process

2009, Bitcoin v0.1

The original “pay to public key”; used by most early mining rewards

P2PKH

1…

Base58Check

HASH160 of the public key (20 bytes)

Predates the BIP process

2009, Bitcoin v0.1

Short, checksummed address; public key revealed only when spent

P2MS (Pay-to-Multisig, bare multisig)

No standard address

—

M and N full public keys + OP_CHECKMULTISIG

BIP11 (2011-10-18)

Standard transaction type (relay policy)

Shared custody; but long scripts, with size and fees borne by the payer

P2SH

3…

Base58Check

HASH160 of the redeem script (20 bytes)

BIP13 (2011-10-18) / BIP16 (2012-01-03)

Enforced from 2012-04-01

Shifts script size and fees to the receiver; short addresses for multisig

Nested SegWit (P2SH-P2WPKH / P2SH-P2WSH)

3…

Base58Check

HASH160 of the witness program

BIP141 (2015-12-21)

Active 2017-08-24

Lets wallets without bech32 support pay to SegWit

P2WPKH

bc1q… (42 chars)

Bech32

Version 0 + 20-byte public-key hash

BIP141 (2015) / BIP173 (2017)

Active 2017-08-24

Fixes third-party malleability of SegWit inputs; witness discount lowers fees; stronger error detection

P2WSH

bc1q… (62 chars)

Bech32

Version 0 + 32-byte SHA-256 of the script

BIP141 (2015) / BIP173 (2017)

Active 2017-08-24

As above; 32-byte hash improves collision resistance

P2TR

bc1p…

Bech32m

Version 1 + 32-byte x-only output public key

BIP341 (2020-01-19) / BIP350 (2020-12-16)

Active 2021-11-14

Schnorr signatures (a foundation for key-aggregation protocols) and script trees for privacy and efficiency

P2A (anchor)

bc1pfeessrawgf (single fixed address)

Bech32m

OP_1 <0x4e73>: version 1 + 2-byte witness program, keyless

BIP433 (2025-12-08, informational draft)

Creation standard since SegWit activation; spending standard since Core 28.0 (2024)

Keyless anchor output for CPFP fee bumping

P2MR (proposal)

bc1z…

Bech32m

Version 2 + 32-byte script-tree root

BIP360 draft (2024-12-18)

Not activated

Removes P2TR's key path to resist long-exposure quantum attacks

“Mainnet prefix” refers to the start of Bitcoin mainnet addresses; testnet equivalents start with m/n, 2 and tb1. P2PK and bare multisig have no widely adopted standard address encoding. Note that “bc1p” only signals witness version 1: P2TR uses a 32-byte witness program and P2A only 2 bytes — both start with bc1p, but P2A is not Taproot. “Specification / number” gives BIP assignment dates; “Deployment / activation” gives consensus activation or software deployment dates.

2 Seventeen years of evolution: what each generation solved

2.1 Genesis era (2009): P2PK and P2PKH

Bitcoin v0.1, released in January 2009, already supported two output types. P2PK writes the full public key into the locking script; most early mining rewards used it, and it has no widely used address encoding. P2PKH stores only the HASH160 of the public key on-chain (SHA-256 followed by RIPEMD-160, yielding 20 bytes) and encodes it with Base58Check as an address starting with “1”. Base58 drops easily confused characters such as 0, O, I and l and appends a 4-byte double-SHA-256 checksum, so a mistyped character is almost always caught by the wallet. A side effect of P2PKH is that the public key does not appear on-chain until the output is spent — not a quantum consideration at the time, but an important safety margin today.

Early wallets used 65-byte “uncompressed” public keys; Bitcoin 0.6.0 (2012-03-30) switched to 33-byte “compressed” keys by default[3]. The compressed and uncompressed public keys of the same private key produce two different P2PKH addresses — a common reason why balances seem to “disappear” when old private keys are imported. SegWit v0 later required, at the level of default relay and mining policy, that P2WPKH/P2WSH use only 33-byte compressed keys; this is a policy rule, not a consensus validity requirement of BIP141[4].

2.2 Multisig and P2SH (2011–2012): addresses starting with “3”

In October 2011, Gavin Andresen used BIP11 to define “M-of-N multisig” as a standard transaction[5]. Such “bare multisig” (Pay-to-Multisig, P2MS) requires the payer to write all public keys into the output, making transactions large, putting the fee burden on the payer and offering no compact address. Andresen therefore also proposed BIP12 (a new opcode, OP_EVAL) and BIP13 (a new address format)[6,7]. OP_EVAL was abandoned over implementation complexity and security concerns and superseded by BIP16 (P2SH)[8]; Luke Dashjr's competing BIP17 was not adopted[9].

The core idea of P2SH is “pay to the hash of a script”: the payer simply pays to a 20-byte script hash, and the receiver supplies the full redeem script when spending. The size, fee and privacy burden of complex scripts thus shifts from payer to receiver, and multisig wallets finally get short addresses. BIP16 specifies that the new rules apply from block timestamp 2012-04-01 00:00 UTC[8]; BIP13 addresses start with “3”.

2.3 HD wallets and derivation paths (from 2012): the wallet layer of address formats

BIP32, assigned in February 2012, defines Hierarchical Deterministic (HD) wallets: a single seed can deterministically derive a vast tree of keys[10]. A series of wallet-layer standards then used the purpose field of the derivation path to distinguish address types: BIP44 for P2PKH (“1”), BIP49 for nested SegWit (“3”), BIP84 for “bc1q” and BIP86 for single-key “bc1p”[11–14]. These standards do not change consensus rules, but they determine which addresses users actually see in their wallets. Note that an extended public key (xpub) reveals the public key of that node and allows derivation of all non-hardened child public keys below it[10]; leaking an account-level xpub can therefore expose the public keys behind many addresses at once, which in a quantum context also counts as exposure[15].

2.4 Segregated Witness (2015–2017): “bc1q” and Bech32

Problems addressed: first, transaction malleability — third parties could alter signature data and thereby change the transaction ID, which hindered protocols such as the Lightning Network that rely on unconfirmed transaction IDs; second, block capacity; third, versioning for future script upgrades. BIP141, assigned on 2015-12-21, moves signatures and other “witness” data out of the transaction ID computation — eliminating txid changes caused by third-party modification of signatures on SegWit inputs and thus resolving the main malleability problem that constrained layer-two protocols — and introduces capacity rules measured in “block weight”[16]; BIP143 defines a new signature-hash algorithm[4]. The new output types are P2WPKH (20-byte witness program) and P2WSH (32-byte witness program). P2WSH uses a 32-byte hash because the 160-bit hash of P2SH is no longer considered safe against collision attacks costing about 2⁸⁰ operations[16].

Address format: BIP142 initially kept Base58[17] but was superseded by BIP173 Bech32, designed by Pieter Wuille and Greg Maxwell[18]. Bech32 uses the human-readable prefix bc, a single case, encodes more compactly in QR codes and, being based on a BCH error-detecting code, guarantees detection of up to four character substitutions. For compatibility with wallets that could not yet pay to bc1 addresses, the witness program can also be wrapped in P2SH, producing nested SegWit addresses starting with “3”.

Activation: SegWit used BIP9 version-bits activation, with a start time of 2016-11-15 and a threshold of 95% of blocks[16,19], which it failed to reach for many months. In 2017, BIP148, a User-Activated Soft Fork (UASF)[20], and BIP91, a Miner-Activated Soft Fork (MASF) lowering the threshold to 80%[21], appeared in turn. BIP91 locked in on 2017-07-21[22]; SegWit then reached its 95% threshold at block 479,707 on 2017-08-08, entered the locked-in state from block 479,808 on 2017-08-09[23], and activated on 2017-08-24 at block 481,824[24]. On the wallet side, Bitcoin Core 0.16.0 (2018-02-26) added full SegWit support with nested addresses by default[25]; from 0.20.0 (2020-06-03) bech32 addresses became the default[26].

2.5 Taproot (2018–2021): “bc1p” and Bech32m

Problem addressed: in P2SH/P2WSH, complex spending conditions (multisig, timelocks, Lightning channels) are hidden by a hash when the output is created, but spending usually requires revealing the full redeem or witness script — exposing conditions that were never used and increasing transaction size. In January 2018, Greg Maxwell proposed the Taproot idea on the developer mailing list[27]: combine a public key and a script tree into a single output public key. In most cases the parties cooperate and spend via the “key path” with a single signature, so outsiders cannot tell whether complex conditions exist; when the key path cannot or is chosen not to be used (for example, when the parties fail to agree), the output is spent via the “script path”, revealing only the branch actually executed.

The design is implemented by three BIPs, all assigned on 2020-01-19: BIP340 defines Schnorr signatures (their linear structure provides a foundation for key-aggregation protocols and enables batch verification; BIP340 itself does not define a key-aggregation protocol), BIP341 defines Taproot outputs (witness version 1, 32-byte x-only output public key), and BIP342 defines Tapscript[28–30]. Meanwhile, an unexpected weakness was found in Bech32: when the final character is “p”, inserting or deleting any number of “q” characters immediately before it does not invalidate the checksum. BIP350 therefore defined Bech32m, which changes only a single constant, for witness version 1 and higher[31]; “bc1p” addresses use this encoding, and Bitcoin Core has used Bech32m for version 1+ addresses since release 22.0[32].

Activation: Taproot used a modified version-bits mechanism called “Speedy Trial”: the start-time parameter was 2021-04-24, with actual signal counting beginning at the first 2,016-block retarget period thereafter; the threshold was 90%. The threshold was reached at block 687,285 on 2021-06-12 and the deployment entered the locked-in state from block 687,456 on 2021-06-13[23,33]; following the preset minimum activation height, Taproot activated on 2021-11-14 at block 709,632[29,34].

2.6 Other recent formats

  • Silent Payments (BIP352, assigned 2023-03-09): the receiver publishes a reusable address starting with “sp1”, and the payer derives a fresh P2TR output for each payment. Under the protocol's threat model, an on-chain observer cannot link these payments to the same Silent Payments address from the outputs alone (side channels such as wallet behaviour and input clustering may still leak linkage). It is a wallet-layer protocol requiring no consensus change[2].
  • P2A anchor outputs: P2A outputs could be created under standard rules ever since SegWit activated; Bitcoin Core 28.0 (2024-10-02) made spending P2A inputs standard relay policy[35], and the design was later documented in BIP433 (assigned 2025-12-08, informational draft)[36]. P2A is a keyless witness-version-1 output whose locking script is fixed as OP_1 <0x4e73> and whose mainnet address is always bc1pfeessrawgf; anyone can spend it with an empty witness, and it is mainly used for Child Pays for Parent (CPFP) fee bumping. It also shows that “bc1p” does not mean Taproot: bc1p only indicates witness version 1; P2TR requires a 32-byte witness program, whereas P2A has only 2 bytes[36].

2.7 Quantum-resistance proposals (2024 to date)

BIP360 / P2MR. The first draft was submitted on 2024-09-27 under the name “P2QRH” (Pay to Quantum Resistant Hash) and assigned a number on 2024-12-18; it was renamed P2TSH in September 2025 and Pay-to-Merkle-Root (P2MR) in February 2026[15]. The current version is essentially “Taproot without the key path”: the output commits only to the script-tree root, uses witness version 2, and its addresses start with “bc1z”. The authors state explicitly that it resists only long-exposure attacks; resisting short-exposure attacks in the mempool would require separately introducing post-quantum signatures[15].

BIP361. Proposed by Jameson Lopp and co-authors and assigned on 2026-02-11, it is an informational draft[37]. It envisages two phases after some post-quantum output type has been deployed: in Phase A (about 160,000 blocks, roughly three years, after activation), creating new outputs that send funds to quantum-vulnerable addresses or output types would be disallowed; in Phase B (two years later), spends using Elliptic Curve Digital Signature Algorithm (ECDSA) or Schnorr signatures would be restricted, with funds recoverable only through a quantum-safe “rescue protocol”. It explicitly depends on a “TBD post-quantum signature BIP”; as of 2026-09-26, the BIP repository index contained no post-quantum signature scheme with an assigned number.

Hourglass. A different approach to P2PK outputs: rather than freezing them, it rate-limits them. Version 2 allows at most one P2PK spend per block, with a net amount of no more than 1 BTC, to prevent a quantum attacker from dumping large amounts of early coins at once. The proposal has not been assigned a BIP number[38]. The BIP361 authors argue that because P2PK holders cannot prove any “knowledge a quantum attacker would not have”, a rescue protocol is hard to design for such outputs, and they therefore support handling P2PK with Hourglass[37].

Table 2 summarises the milestones of these proposals; Figure 2 presents them as a timeline.

Table 2 Main address-related proposals: proposal, numbering and activation (2011–2017)

Proposal

Content

Authors

BIP assigned

Activation / deployment

Status

BIP11

M-of-N standard transactions (bare multisig)

G. Andresen

2011-10-18

Deployed as a standard transaction type (relay policy)

Deployed

BIP12

OP_EVAL opcode

G. Andresen

2011-10-18

Never activated; superseded by BIP16

Closed

BIP13

P2SH address format (“3” prefix)

G. Andresen

2011-10-18

Used together with P2SH

Deployed

BIP16

P2SH consensus rules

G. Andresen

2012-01-03

Enforced for block timestamps ≥ 2012-04-01 00:00 UTC

Deployed

BIP17

OP_CHECKHASHVERIFY (competitor to BIP16)

L. Dashjr

2012-01-18

Not adopted

Closed

BIP32 / 44 / 49 / 84 / 86

HD wallets and derivation paths per address type

Wuille; Palatinus & Rusnak; Weigl; Rusnak; Chow

2012-02-11 / 2014-04-24 / 2016-05-19 / 2017-12-28 / 2021-06-22

Wallet-layer standards; no consensus change

Deployed

BIP141 / 143

Segregated Witness (SegWit) and new signature hash

Lombrozo, Lau, Wuille

2015-12-21 / 2016-01-03

BIP9 start time 2016-11-15; threshold reached 2017-08-08, locked in 2017-08-09; active 2017-08-24 at block 481,824

Deployed

BIP142

Base58 address format for SegWit

J. Lau

2015-12-24

Not adopted; superseded by BIP173

Closed

BIP148 / 91

SegWit activation mechanisms (UASF / lower-threshold MASF)

S. Fry; J. Hilliard

2017-03-12 / 2017-05-22

BIP91 locked in 2017-07-21, driving SegWit lock-in

Deployed

Table 2 (continued) (2017–2026)

Proposal

Content

Authors

BIP assigned

Activation / deployment

Status

BIP173

Bech32 addresses (bc1q)

Wuille, Maxwell

2017-03-20

Available with SegWit; supported in Core 0.16.0 wallet, default from 0.20.0

Deployed

BIP340 / 341 / 342

Schnorr signatures, Taproot, Tapscript

Wuille, Nick, Ruffing / Towns

2020-01-19

Speedy Trial start time 2021-04-24; threshold reached 2021-06-12, locked in 2021-06-13; active 2021-11-14 at block 709,632

Deployed

BIP350

Bech32m (witness v1+ addresses, bc1p)

P. Wuille

2020-12-16

Enabled with Taproot; used by Core for v1+ addresses since 22.0

Deployed

BIP352

Silent Payments (reusable sp1… addresses)

josibake, Somsen, Falbesoner

2023-03-09

Wallet layer; no consensus change

Complete

BIP433

P2A anchor output (bc1pfeessrawgf)

G. Sanders

2025-12-08

Creation standard since SegWit activation; spending standard since Core 28.0 (2024-10-02); no consensus change

Draft

BIP360

P2MR (first drafted as P2QRH, later P2TSH)

H. Beast, E. Heilman, I. Foxen Duke

2024-12-18 (first draft 2024-09-27)

Not activated

Draft

BIP361

Post-quantum migration and legacy signature sunset

J. Lopp et al.

2026-02-11

Not activated; depends on a post-quantum signature BIP not yet settled or numbered

Draft

Hourglass

Rate-limited spending of P2PK outputs (one per block, net ≤1 BTC)

H. Beast, M. Casey

No number assigned

V2 updated on Delving Bitcoin, 2026-02

Under discussion

“BIP assigned” is taken from the Assigned header field of each document in the bitcoin/bips repository (per BIP 3); “Status” reflects the repository as of 2026-09-26. “Threshold reached” means version-bits signalling hit the activation threshold at a given block; “locked in” means the state became LOCKED_IN at the start of the next retarget period.

Timeline: above the axis, BIP number assignment dates from 2011 to 2026; below the axis, deployment milestones including the Bitcoin v0.1 release, P2SH enforcement, SegWit and Taproot activation, and Bitcoin Core releases 0.6.0, 0.16.0, 0.20.0 and 28.0.

Figure 2 Timeline of Bitcoin address-related proposals and deployments (2009–2026). Above the axis: proposals and BIP number assignment dates; below: software releases and consensus activation dates.

3 Quantum risk: what is exposed long-term and what only when spent

3.1 Two quantum algorithms, two kinds of risk

Shor's algorithm solves discrete logarithms in polynomial time[39], so a sufficiently large fault-tolerant quantum computer could recover private keys from public keys. Bitcoin's ECDSA and Schnorr signatures both rest on the discrete-logarithm problem on the secp256k1 curve and are equally affected. According to 2026 resource estimates, solving the 256-bit elliptic-curve discrete logarithm requires fewer than 1,200 logical qubits and 90 million Toffoli gates (or fewer than 1,450 logical qubits and 70 million Toffoli gates); these are theoretical estimates published in PRX Quantum, and a large engineering gap remains to current hardware[40]. Different estimates trade space against time: a July 2026 preprint reduces the logical qubits needed for 256-bit prime-field curves to 835, at the cost of about 2^30.9 (≈2 billion) Toffoli gates[41]; a September 2026 preprint gives a secp256k1 circuit with about 1,450 logical qubits and 40 million Toffoli gates and, under its assumed fault-tolerant “Walking Cat” trapped-ion architecture, estimates that one attempt needs 19,397 physical qubits and about 25.7 days, with a per-attempt success probability of about 63% — an end-to-end resource estimate, not a demonstration on existing hardware[42]. There is therefore no architecture-independent “size of the quantum computer needed to break Bitcoin”; logical qubit count, non-Clifford gate count, error-correction overhead and runtime must be reported together.

Grover's algorithm provides only a quadratic speedup for unstructured search[43]. For hash functions such as SHA-256 and RIPEMD-160 it roughly square-roots the cost of preimage attacks; a 160-bit hash would in theory still require about 2⁸⁰ sequential quantum operations, far beyond foreseeable hardware. Proof-of-work mining likewise gains only a quadratic speedup and is hard to parallelise. Under current resource assumptions, quantum mining is a weaker and more distant risk than signature key recovery, but if quantum miners gained an advantage it could still cause fork instability and mining centralisation[44]. In current risk rankings, Shor-based recovery of signature keys is therefore generally regarded as a more direct threat than hash preimage attacks or quantum mining; Grover's algorithm still erodes the security margin of hash functions, but only quadratically rather than exponentially.

3.2 Long exposure versus short exposure

BIP360 distinguishes two kinds of attack[15]. Long-exposure attacks target public keys already revealed on-chain; the attacker can spend days or months computing. The BIP360 threat model holds that such attacks are likely to become practical before short-exposure attacks because the attacker has a much longer computation window. Short-exposure attacks happen after you initiate a spend: while the transaction waits in the mempool its public key is visible, and the attacker must recover the private key before confirmation and get a conflicting spend confirmed first (for example through a more favourable fee and transaction propagation), which requires a faster quantum computer. For P2PK and P2TR, whose public keys are already on-chain, spending creates no additional exposure. Table 3 summarises the resulting risk profile by output type.

Table 3 Exposure of each output type to quantum attacks

Output type

When the public key appears

Long-exposure attack

At spending (short exposure)

Notes

P2PK

When the output is created

Vulnerable

No additional exposure (already exposed)

Public key always visible. About 1.72 million BTC (Erhardt, 2023 data), mostly early Satoshi-era mining rewards

P2MS (bare multisig)

When the output is created

Vulnerable

No additional exposure (already exposed)

Public keys always visible; amounts involved are small

P2PKH / P2WPKH

When spent (first spend reveals it)

If the public key controlling the UTXO has never been revealed, resistant to long-term Shor key recovery on revealed keys; vulnerable if the same key was exposed by a past spend, message signing, etc. while the address still holds or later receives funds

Vulnerable

The public key must be revealed when spending and is exposed while the transaction waits in the mempool

P2SH / P2WSH / nested SegWit

When spent (script and its keys revealed)

If the script and its secp256k1 public keys have not leaked, resistant to long-term Shor key recovery on revealed keys

Vulnerable (when the script contains secp256k1 signature checks)

All public keys in a multisig script are revealed together when spent

P2TR

When the output is created (output key)

Vulnerable

No additional exposure (already exposed)

Whether the key path or the script path is intended, recovering the private key of the output public key allows a key-path spend. About 147,000 BTC (Erhardt, 2023 data)

Silent Payments (BIP352)

Address keys: public off-chain once the address is published; on-chain output key: when the output is created

Vulnerable

No additional exposure (already exposed)

Two layers of exposure: the scan and spend public keys encoded in the sp1 address are public off-chain long-term; each payment's derived on-chain output is P2TR, whose output key is public on-chain[2]

P2A (anchor)

No key

Not applicable

Not applicable

Anyone can spend it with an empty witness; it never relied on signature protection[36]

P2MR (BIP360 proposal)

When spent (the leaf script used is revealed)

Resistant, provided the leaf script and its keys have not previously leaked or been reused

Still vulnerable if the leaf script uses secp256k1 signature checks

Removes the key path; full post-quantum protection requires future post-quantum signatures or other quantum-safe scripts[15]

“Long-exposure attack” refers to attacks on public keys visible on-chain for a long time, giving the attacker ample time; “short-exposure attack” refers to recovering the private key from a public key in the mempool between broadcast and confirmation (terminology per BIP360). “No additional exposure” means the public key was already public when the output was created, so spending reveals nothing new. Amounts are Erhardt's 2023 data as cited in Chaincode Labs (May 2025).

Several points are easily misunderstood:

  • With respect to Shor-based long-term public-key exposure, P2TR is more exposed than a P2WPKH output whose key has not been revealed. For privacy and efficiency, Taproot places the output public key directly on-chain, which exposes every unspent P2TR output to long-exposure attacks; even if the owner only intends to use the script path, an attacker who recovers the private key of the output public key can spend directly via the key path[15].
  • “Hash-based addresses are safe” holds only under one condition: the public key controlling the Unspent Transaction Output (UTXO) has never been revealed. The danger of address reuse is that a public key revealed by a past spend continues to endanger UTXOs that still exist at, or later arrive at, the same address; merely receiving multiple payments without ever spending does not reveal the public key on-chain. Off-chain actions such as sharing an xpub or wallet descriptor with third parties, or signing messages, can also reveal the public key early[15].
  • Spending cannot avoid classical signatures. Current outputs controlled by secp256k1 keys all rely on ECDSA or Schnorr signatures when spent; P2PKH, P2WPKH and script-hash outputs reveal their public keys for the first time when spent, while the public keys of P2PK and P2TR are already on-chain. None of these outputs can therefore resist short-exposure attacks (P2SH/P2WSH could in principle commit to scripts without signature checks, but this is not common practice). A real solution requires post-quantum signatures, such as the signature standards FIPS 204 (ML-DSA) and FIPS 205 (SLH-DSA) published by the U.S. National Institute of Standards and Technology (NIST) in 2024[45]; how to implement them in Bitcoin at acceptable transaction sizes remains an open question.
  • Keyless outputs fall outside this risk model (for example P2A), because they never relied on signature protection in the first place: anyone can spend them.

3.3 Scale of exposure

A May 2025 Chaincode Labs report brings together two datasets with different sources and dates. First, Project Eleven data as of mid-January 2025: about 6.26 million BTC (≈30% of supply) sit in addresses whose public keys are already exposed on-chain. Second, Mark Erhardt's classification based on 2023 on-chain data: P2PK outputs lock about 1.72 million BTC — only about 0.025% of UTXOs by count but about 8.7% of value, mostly early mining rewards from the Satoshi era — while P2TR outputs make up about 32.5% of UTXOs by count but lock only about 147,000 BTC[44] (Figure 3). BIP361 cites more than 34% of bitcoin having revealed public keys as of 2026-03-01[37]. These figures differ in method and date and cannot be added or directly compared, but all indicate that the problem involves millions of BTC.

Horizontal bar chart: about 1.72 million BTC in P2PK and about 147,000 BTC in P2TR (Erhardt, 2023 data), and a total of about 6.26 million BTC with exposed public keys (Project Eleven, mid-January 2025), all as cited in Chaincode Labs.

Figure 3 Bitcoin with public keys already exposed on-chain. P2PK and P2TR figures are Erhardt's 2023 data; the total is Project Eleven's data as of mid-January 2025; all as cited in Chaincode Labs (May 2025). The three figures refer to different dates and cannot be added.

4 Conclusion

Each change in Bitcoin's address formats has re-balanced fees, privacy, error tolerance and upgradability: P2SH shifted complexity to the receiver, SegWit resolved the main transaction-malleability problem constraining layer-two protocols and introduced witness versions, and Taproot used Schnorr signatures and script trees to gain privacy and efficiency. Quantum computing makes a previously overlooked dimension — when the public key appears on-chain — critical. On the single criterion of whether the public keys of unspent funds are exposed long-term, Taproot narrows the quantum safety margin relative to P2WPKH: P2TR reveals its output public key when the output is created, whereas an unspent P2WPKH output whose key has never been revealed remains protected by a hash commitment. This is precisely why BIP360 chose to remove Taproot's key path.

Milestones worth watching include whether BIP360 attracts enough review and implementation support to enter activation discussions; whether a post-quantum signature BIP is assigned a number, providing the precondition for a BIP361-style migration; and how the community handles the roughly 1.72 million BTC in P2PK outputs — leave them, rate-limit them, freeze them or something else — which is more a question of governance and mechanism design than of cryptography.

Data and methodology

  • Research cut-off: 2026-09-26 (selected facts re-verified on 2026-10-04). BIP texts refer to the bitcoin/bips repository snapshot of 2026-09-25 (commit 02bebeb); references give permanent links. BIP assignment dates, authors and status are taken from each document's header; activation heights from the BIP texts and Bitcoin Core source (chainparams.cpp); timestamps of threshold, lock-in and activation blocks from mempool.space block data; software release dates from Bitcoin Core release notes and version history.
  • “First proposed” and “number assigned” are not the same day: many proposals are discussed on mailing lists or forums for weeks or years before being assigned a number. Every date described here as “assigned” refers to the Assigned header field.
  • Quantum-exposure amounts are third-party estimates that change continually as funds move on-chain and are indicative of magnitude only. This report does not constitute investment advice.

References

[1] Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008. https://bitcoin.org/bitcoin.pdf

[2] josibake, Somsen, R. & Falbesoner, S. BIP 352: Silent Payments. Assigned 2023-03-09. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0352.mediawiki

[3] Bitcoin Core. Release notes 0.6.0 (released 2012-03-30). https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.6.0.md

[4] Lau, J. & Wuille, P. BIP 143: Transaction Signature Verification for Version 0 Witness Program. Assigned 2016-01-03. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0143.mediawiki

[5] Andresen, G. BIP 11: M-of-N Standard Transactions. Assigned 2011-10-18. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0011.mediawiki

[6] Andresen, G. BIP 12: OP_EVAL. Assigned 2011-10-18. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0012.mediawiki

[7] Andresen, G. BIP 13: Address Format for pay-to-script-hash. Assigned 2011-10-18. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0013.mediawiki

[8] Andresen, G. BIP 16: Pay to Script Hash. Assigned 2012-01-03. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0016.mediawiki

[9] Dashjr, L. BIP 17: OP_CHECKHASHVERIFY (CHV). Assigned 2012-01-18. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0017.mediawiki

[10] Wuille, P. BIP 32: Hierarchical Deterministic Wallets. Assigned 2012-02-11. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0032.mediawiki

[11] Palatinus, M. & Rusnak, P. BIP 44: Multi-Account Hierarchy for Deterministic Wallets. Assigned 2014-04-24. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0044.mediawiki

[12] Weigl, D. BIP 49: Derivation scheme for P2WPKH-nested-in-P2SH based accounts. Assigned 2016-05-19. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0049.mediawiki

[13] Rusnak, P. BIP 84: Derivation scheme for P2WPKH based accounts. Assigned 2017-12-28. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0084.mediawiki

[14] Chow, A. BIP 86: Key Derivation for Single Key P2TR Outputs. Assigned 2021-06-22. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0086.mediawiki

[15] Beast, H., Heilman, E. & Foxen Duke, I. BIP 360: Pay-to-Merkle-Root (P2MR). Assigned 2024-12-18. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0360.mediawiki

[16] Lombrozo, E., Lau, J. & Wuille, P. BIP 141: Segregated Witness (Consensus layer). Assigned 2015-12-21. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0141.mediawiki

[17] Lau, J. BIP 142: Address Format for Segregated Witness. Assigned 2015-12-24. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0142.mediawiki

[18] Wuille, P. & Maxwell, G. BIP 173: Base32 address format for native v0-16 witness outputs. Assigned 2017-03-20. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0173.mediawiki

[19] Wuille, P., Todd, P., Maxwell, G. & Russell, R. BIP 9: Version bits with timeout and delay. Assigned 2015-10-04. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0009.mediawiki

[20] Fry, S. BIP 148: Mandatory activation of segwit deployment. Assigned 2017-03-12. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0148.mediawiki

[21] Hilliard, J. BIP 91: Reduced threshold Segwit MASF. Assigned 2017-05-22. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0091.mediawiki

[22] CoinDesk. BIP 91 locks in: what this means for Bitcoin and why it's not scaled yet. 21 Jul 2017. https://www.coindesk.com/markets/2017/07/21/bip-91-locks-in-what-this-means-for-bitcoin-and-why-its-not-scaled-yet

[23] mempool.space. Block data (timestamps of heights 479,707, 479,808, 481,824, 687,285, 687,456 and 709,632), accessed 2026-10-04. https://mempool.space/

[24] Bitcoin Core v31.1. src/kernel/chainparams.cpp (mainnet SegwitHeight = 481824). https://github.com/bitcoin/bitcoin/blob/v31.1/src/kernel/chainparams.cpp

[25] Bitcoin Core. Release notes 0.16.0 (released 2018-02-26). https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.16.0.md

[26] Bitcoin Core. Release notes 0.20.0 (released 2020-06-03). https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.20.0.md

[27] Maxwell, G. Taproot: Privacy preserving switchable scripting. bitcoin-dev mailing list, Jan 2018. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html

[28] Wuille, P., Nick, J. & Ruffing, T. BIP 340: Schnorr Signatures for secp256k1. Assigned 2020-01-19. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0340.mediawiki

[29] Wuille, P., Nick, J. & Towns, A. BIP 341: Taproot: SegWit version 1 spending rules. Assigned 2020-01-19. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0341.mediawiki

[30] Wuille, P., Nick, J. & Towns, A. BIP 342: Validation of Taproot Scripts. Assigned 2020-01-19. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0342.mediawiki

[31] Wuille, P. BIP 350: Bech32m format for v1+ witness addresses. Assigned 2020-12-16. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0350.mediawiki

[32] Bitcoin Core. Release notes 22.0 (released 2021-09-13). https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-22.0.md

[33] Bitcoin Optech. Newsletter #153: taproot locked in. 16 Jun 2021. https://bitcoinops.org/en/newsletters/2021/06/16/

[34] Bitcoin Core. Release notes 0.21.1 (released 2021-05-01). https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.1.md

[35] Bitcoin Core. Release notes 28.0 (released 2024-10-02). https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-28.0.md

[36] Sanders, G. BIP 433: Pay to Anchor (P2A). Assigned 2025-12-08. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0433.mediawiki

[37] Lopp, J. et al. BIP 361: Post Quantum Migration and Legacy Signature Sunset. Assigned 2026-02-11. bitcoin/bips snapshot 02bebeb (2026-09-25). https://github.com/bitcoin/bips/blob/02bebeb5ef53dc21a52d5706c6b4c17b6af6c1cc/bip-0361.mediawiki

[38] Beast, H. & Casey, M. Hourglass V2 Update. Delving Bitcoin, 10 Feb 2026. https://delvingbitcoin.org/t/hourglass-v2-update/2246

[39] Shor, P. W. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM J. Comput. 26, 1484–1509 (1997). https://doi.org/10.1137/S0097539795293172

[40] Babbush, R. et al. Securing elliptic curve cryptocurrencies against quantum vulnerabilities: resource estimates and mitigations. PRX Quantum 7, 031001 (2026). https://doi.org/10.1103/j3xf-bw18

[41] Luo, H. et al. Quantum algorithm for elliptic curve discrete logarithms with space-efficient point addition. arXiv:2607.13816 (2026), preprint. https://arxiv.org/abs/2607.13816

[42] Häner, T. et al. Computing 256-bit elliptic curve discrete logarithms in 26 days on a fault-tolerant trapped-ion quantum computer with 20,000 qubits. arXiv:2609.05625 (2026), preprint. https://arxiv.org/abs/2609.05625

[43] Grover, L. K. A fast quantum mechanical algorithm for database search. Proc. 28th ACM STOC, 212–219 (1996). https://doi.org/10.1145/237814.237866

[44] Milton, A. & Shikhelman, C. Bitcoin and Quantum Computing: Current Status and Future Directions. Chaincode Labs, May 2025 (the 6.26 million BTC figure is cited from Project Eleven [PE25]; the P2PK and P2TR figures from Erhardt [Erh23]). https://chaincode.com/bitcoin-post-quantum.pdf

[45] NIST. FIPS 204: Module-Lattice-Based Digital Signature Standard; FIPS 205: Stateless Hash-Based Digital Signature Standard. Aug 2024. https://csrc.nist.gov/pubs/fips/204/final

Cite this report

Liu, Y. (2026). Bitcoin Output Types and Address Formats: Evolution and Quantum Risk. Quantum Economics AI Lab Research Note, September 2026. https://www.quantecon.ai/applied-research/bitcoin-addresses-quantum-risk

BibTeX
@techreport{liu2026bitcoinaddressesquantumrisk,
  author = {Liu, Yulin},
  title = {Bitcoin Output Types and Address Formats: Evolution and Quantum Risk},
  institution = {Quantum Economics AI Lab},
  type = {Research Note},
  year = {2026},
  url = {https://www.quantecon.ai/applied-research/bitcoin-addresses-quantum-risk}
}