TeachMeBitcoin

Bitcoin Addresses: The Payment Identifier

From TeachMeBitcoin, the free encyclopedia Reading time: 2 min

Bitcoin Addresses: The Payment Identifier

A Bitcoin Address is a human-readable string of characters that represents a destination for funds. While users see these strings in their wallets, the network sees them as encoded instructions for how to lock and unlock Bitcoin.

1. The Mapping

An address is not "the" key. It is an Encoded Representation of a Public Key Hash or a Script Hash.

2. Why Encode?

Why don't we just use the raw hex hash?

3. The Evolution of Formats

As Bitcoin evolved, so did its address standards.

  1. Base58Check (Legacy): Used for P2PKH and P2SH.

  2. Bech32 (SegWit): Introduced with SegWit for "Native" addresses.

  3. Bech32m (Taproot): The latest standard for Taproot and future upgrades.

4. One-Way Derivation

The derivation of an address is a one-way street. $$PrivateKey \rightarrow PublicKey \rightarrow HASH160 \rightarrow Address$$ You can calculate an address from a private key, but you can NEVER calculate a private key from an address.

Type Starts With Encoding Purpose
Legacy 1 Base58Check Standard Payments
Nested SegWit 3 Base58Check Multisig / Compatibility
Native SegWit bc1q Bech32 Lowest Fees
Taproot bc1p Bech32m Advanced Privacy

In the next section, we will deep dive into the original Base58Check standard.

☕ Help support TeachMeBitcoin

TeachMeBitcoin is an ad-free, open-source educational repository curated by a passionate team of Bitcoin researchers and educators for public benefit. If you found our articles helpful, please consider supporting our hosting and ongoing content updates with a clean donation:

Ethereum: 0x578417C51783663D8A6A811B3544E1f779D39A85
Bitcoin: bc1q77k9e95rn669kpzyjr8ke9w95zhk7pa5s63qzz
Solana: 4ycT2ayqeMucixj3wS8Ay8Tq9NRDYRPKYbj3UGESyQ4J
Address copied to clipboard!