When you first encounter Bitcoin, the concept of an “address” is one of the first things you’ll come across. Whether you’re receiving payments or checking transaction confirmations on a block explorer, Bitcoin addresses play a crucial role.
Many beginners assume that a Bitcoin address is simply like a bank account number—used to receive funds. However, this understanding can be confusing when faced with wallet options like Bech32 (SegWit), P2PKH, or Nested-SegWit (P2SH). Switching wallets can also be surprising, as a new wallet may generate completely different addresses.
This guide dives deeper into Bitcoin addresses, their types, and their economic implications, helping users navigate wallet choices and migrations. If you’re only interested in address characteristics, skip to the “Address Types” section. Otherwise, read on for a comprehensive breakdown.
👉 Learn how to secure your Bitcoin transactions
Standardized Bitcoin Scripts
Bitcoin operates as a peer-to-peer electronic cash system with a unique UTXO (Unspent Transaction Output) model. Instead of account balances, Bitcoin transactions resemble checks, each containing:
– A value (in satoshis).
– A scriptPubKey
, defining spending conditions.
Satoshi Nakamoto designed Bitcoin Script, a programming language that enables complex locking mechanisms. However, to prevent network vulnerabilities, only standardized scripts are widely propagated. Non-standard scripts require direct miner submission.
Common Standardized Scripts:
- P2PKH (Pay-to-Public-Key-Hash): Locks funds to a public key hash.
Example:
OP_DUP OP_HASH160 55ae51684c43435da751ac8d2173b2652eb64105 OP_EQUALVERIFY OP_CHECKSIG
- P2PK (Pay-to-Public-Key): Directly locks funds to a public key.
What Is a Bitcoin Address?
A Bitcoin address is a human-friendly encoding of a standardized script’s key data. It ensures:
– Compactness: Shorter than raw script data.
– Error Detection: Built-in checksums prevent typos.
– Type Identification: Prefixes indicate script type (e.g., 1
for P2PKH).
Encoding Methods
1. Base58
Developed by Satoshi, Base58 omits ambiguous characters (0
, O
, I
, l
) to avoid confusion. Steps:
1. Add a prefix (e.g., 00
for P2PKH).
2. Append a 4-byte checksum (SHA256(SHA256(data))).
3. Encode in Base58.
Example:
– Raw Hash: 55ae51684c43435da751ac8d2173b2652eb64105
– P2PKH Address: 18p3G8gQ3oKy4U9EqnWs7UZswdqAMhE3r8
2. Bech32 (SegWit Addresses)
Introduced via BIP 0173, Bech32 improves upon Base58 by:
– Using only lowercase letters and digits.
– Supporting error localization (identifies typo positions).
– Optimizing QR code efficiency.
Example:
– P2WPKH Address: bc1q2kh9z6zvgdp4mf634jxjzuajv5htvsg9ulykp8
3. Bech32m (Taproot Addresses)
BIP 0350 fixed a Bech32 flaw, introducing Bech32m for P2TR (Pay-to-Taproot) addresses (e.g., bc1p...
).
👉 Compare Bitcoin wallet features
Economic Differences
Transaction fees depend on script efficiency:
– Legacy (P2PKH): Least efficient (higher fees).
– SegWit (P2WPKH/P2WSH): 30–50% cheaper due to witness data discount.
– Taproot (P2TR): Optimized for privacy and multi-signature efficiency.
Script Type | Input Size (vBytes) | Output Size (vBytes) |
---|---|---|
P2PKH | 148 | 34 |
P2WPKH | 68 | 31 |
P2TR | 58 | 43 |
Bitcoin Address Types
1. P2PKH (Legacy)
- Format: Starts with
1
(Base58). - Use Case: Single-signature wallets.
- Fee Efficiency: Low.
- Example:
18p3G8gQ3oKy4U9EqnWs7UZswdqAMhE3r8
2. P2SH (Nested SegWit)
- Format: Starts with
3
(Base58). - Use Case: Backward-compatible SegWit or multi-signature wallets.
- Fee Efficiency: Moderate.
- Example:
38Y2PBD1mihxtoVncaSz3oC2vRrjNF8sA2
3. P2WPKH (Native SegWit)
- Format: Starts with
bc1q
(Bech32). - Use Case: Single-signature wallets.
- Fee Efficiency: High.
- Example:
bc1q2kh9z6zvgdp4mf634jxjzuajv5htvsg9ulykp8
4. P2WSH (Native SegWit Multi-Sig)
- Format: Starts with
bc1q
(Bech32, 62 chars). - Use Case: Multi-signature wallets.
- Example:
bc1q56cuwyqlmq64aq0y3c8swd8a9gefe4wf7faxe2uyatyahfrly5aq0e6mfc
5. P2TR (Taproot)
- Format: Starts with
bc1p
(Bech32m). - Use Case: Single/multi-signature with Schnorr signatures.
- Advantages: Better privacy, lower fees for complex scripts.
- Example:
bc1pxy5r3slcqc2nhc0r5698gmsqwruenj9c8pzmsy5cedp3649wyktstc6z3c
FAQs
1. Why does my wallet generate different address types?
Wallets may default to newer formats (e.g., Bech32) for lower fees. Older wallets use P2PKH/P2SH for compatibility.
2. Can I send funds between different address types?
Yes! Address types only affect how funds are locked, not interoperability.
3. Which address type is the cheapest for transactions?
Native SegWit (P2WPKH/P2WSH) and Taproot (P2TR) offer the lowest fees.
4. Are Bech32 addresses case-sensitive?
No. Bech32 addresses can be uppercase or lowercase.
5. What happens if I send Bitcoin to the wrong address type?
Funds are recoverable if the address is valid. However, using incompatible wallets may complicate spending.
6. How do I migrate wallets without losing funds?
Use output descriptors (e.g., wpkh([xpub...])
) to backup address-generation rules.
Conclusion
Bitcoin addresses encode standardized scripts with efficiency and error-checking in mind. From legacy P2PKH to modern Taproot, each type offers trade-offs in compatibility, privacy, and cost. Adopting SegWit or Taproot addresses can significantly reduce transaction fees while enhancing functionality.
👉 Explore advanced Bitcoin wallet solutions
Appendix: Output Descriptors
For long-term storage, output descriptors (e.g., wpkh(xpub...)
) describe address-generation rules compactly, ensuring seamless wallet recovery. Example: