Passer au contenu

Bitcoin accepté au paiement  |  Expédié depuis Laval, QC, Canada  |  Soutien expert depuis 2016

Bech32

Network & Protocol

Definition

Bech32, specified in BIP173, is the address encoding introduced for native Segregated Witness outputs. It replaced Base58Check for witness outputs and is used by SegWit version 0 types such as P2WPKH and P2WSH, whose mainnet addresses begin with bc1q. A Bech32 string has three parts: a human-readable prefix (bc for mainnet, tb for testnet), the separator 1, and a Base32-encoded data section that ends in a six-character checksum. Every modern wallet you are likely to touch speaks it, and if you have ever pointed a mining payout at a bc1q address, you have used it.

The format arrived as part of the SegWit era's broader cleanup of Bitcoin's rough edges. Its designers — Pieter Wuille and Greg Maxwell — approached what could have been a trivial serialization task as a coding-theory problem: they searched the space of possible checksum constants for one with provably strong error-detection properties over exactly the string lengths addresses use, rather than settling for a generic hash truncation. Adoption took years — early on, some exchanges and wallets could not send to bc1 addresses at all — but the transition completed quietly, and today native-SegWit is the default receive type almost everywhere, from hardware wallets to pool payout settings on a mining dashboard.

Why it was designed

Base58Check served Bitcoin's early years, but it had rough edges: mixed-case strings are awkward to read aloud and transcribe, and its checksum was designed only to detect errors probabilistically, with no guarantees about which error patterns it would catch. Bech32 fixed both. Its 32-character set deliberately excludes 1, b, i, and o to eliminate the classic look-alike confusions, and addresses are single-case — canonically lowercase — which makes them easier to compare by eye and to dictate over a phone. Single-case data also encodes into denser QR codes, so a Bech32 address produces a smaller, easier-to-scan code than a mixed-case Base58 address of the same payload.

The checksum guarantee

The six-character checksum is not a simple hash truncation. It is a BCH code chosen specifically for this alphabet, and it comes with a mathematical guarantee: any error affecting up to four characters is always detected, and larger errors slip through with only about a one-in-a-billion chance. Compare that with Base58Check, where the checksum is strong in practice but offers no structured guarantee about specific error classes. For a self-custody operator hand-transcribing an address, or a shop confirming a payout address with a customer over the counter, this is the difference between "probably fine" and "provably caught." A single fat-fingered character essentially cannot produce a different valid address.

Practical notes and one known flaw

Because the encoding is case-insensitive, wallets may display an address in all-uppercase to get an even denser QR code, while accepting lowercase input; mixing cases within one address is invalid by design. One genuine weakness surfaced after deployment: in certain addresses ending in p, inserting or deleting q characters immediately before it could preserve a valid checksum. The flaw is narrow and did not threaten version-0 addresses in practice, but it mattered for future witness versions, so a refined variant with a modified checksum constant — Bech32m — was specified for witness version 1 and above. That is why Taproot addresses (bc1p...) look like Bech32 but are technically Bech32m.

Why miners and node runners should care

Spending from native SegWit outputs is cheaper than from legacy ones, because witness data receives a discount in weight terms — so pool payouts and consolidations into bc1q addresses stretch further at the same fee rate. The prefix system also travels well across networks: tb1 on testnet and signet keeps test coins visually unmistakable from real ones, a small design courtesy that has prevented plenty of expensive mistakes. Bech32 is a good example of Bitcoin's engineering culture: a humble address format, designed with coding-theory rigor, that quietly protects every user who ever reads a string of 42 characters out loud.

In Simple Terms

Bech32, specified in BIP173, is the address encoding introduced for native Segregated Witness outputs. It replaced Base58Check for witness outputs and is used by SegWit…

Explore the Full Glossary

Browse all Bitcoin mining terms from A to Z. Whether you are a beginner or expert, deepen your understanding of the mining ecosystem.

Glossaire du minage

ASIC Miner Database

Compare 500+ miners with real-time profitability data, home mining scores, and detailed specs.

Comparer les mineurs