Bitcoin Address Types
Bitcoin addresses are human-readable encodings of scriptPubKeys — the spending conditions that lock bitcoin to a specific key or set of keys. Over time, address formats have evolved to improve efficiency, privacy, and compatibility.
P2PK — Pay to Public Key (Legacy)
- The earliest address format; used in Satoshi-era coinbase transactions
- Simply locks funds to a public key directly
- Rare today — privacy leak (public key is visible before spending); replaced by P2PKH
P2PKH — Pay to Public Key Hash (Legacy)
- Prefix:
1(mainnet) - Locks funds to the hash of a public key rather than the key itself
- Requires the spender to reveal the public key and provide a valid signature
- Still widely used but less efficient than newer formats
P2SH — Pay to Script Hash
- Prefix:
3(mainnet) - Locks funds to the hash of an arbitrary script (not just a public key)
- Enables multisig, timelocks, and more complex spending conditions
- The full script (redeem script) is only revealed at spend time, improving privacy slightly
Segwit (P2SH-P2WPKH / P2WPKH / Bech32)
- Prefixes:
bc1q(Bech32 / native Segwit), or nested in3addresses - Separates witness data (signatures) from the transaction body
- Benefits:
- Fixes transaction malleability (critical for Lightning Network)
- Reduces transaction weight → lower fees
- Larger effective block capacity without changing the 1MB block size
Taproot (P2TR / Bech32m)
- Prefix:
bc1p - Activated via soft fork in November 2021
- Combines single-sig and multisig into a single public key appearance on-chain
- Enables Merklized Alternative Script Trees (MAST) — only the executed script branch is revealed
- Improves privacy by making multisig and complex scripts look identical to single-sig
- Sets the stage for Schnorr signatures (BATCH verification, signature aggregation)
Comparison
| Type | Prefix | Efficiency | Privacy | Use Case |
|---|---|---|---|---|
| P2PK | — | Low | Poor | Historical only |
| P2PKH | 1 | Medium | Basic | General wallets |
| P2SH | 3 | Medium | Basic | Multisig, legacy scripts |
| P2WPKH | bc1q | High | Basic | Modern single-sig |
| P2TR | bc1p | Highest | Best | Modern wallets, multisig, scripts |