Visão geral
Bech32 é um formato de codificação de endereços especificado no BIP173, projetado para endereços SegWit nativos. Substituiu a codificação Base58Check mais antiga para endereços compatíveis com SegWit, oferecendo melhorias significativas em usabilidade e detecção de erros. Uma versão atualizada, Bech32m (BIP350), foi introduzida para endereços Taproot.
Características principais
- Não diferencia maiúsculas de minúsculas: Os endereços Bech32 usam apenas letras minúsculas e números, eliminando confusão entre caracteres maiúsculos e minúsculos
- Melhor detecção de erros: Pode detectar até 4 erros e localizar até 2 erros em um endereço
- Taxas mais baixas: As transações SegWit nativas são menores em termos de unidades de peso, resultando em taxas mais baixas
- Amigável para QR: Produz QR codes mais compactos, pois a codificação é mais eficiente
Estrutura do endereço
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
│ │ │
│ │ └── Dados (programa witness, codificado)
│ └──── Separador (sempre "1")
└─────── Parte legível por humanos ("bc" para mainnet, "tb" para testnet)
Bech32m (Taproot):
bc1p5cyxnuxmeuwuvkwfem96lqzszee2457nljy653y...
│ │
│ └── "p" indica versão 1 do witness (Taproot)
└───── Mesmo prefixo "bc" para mainnet
Bech32 vs Bech32m
A codificação Bech32 original tinha uma fraqueza onde certos tipos de erros no último caractere podiam passar despercebidos para a versão 1 do witness e acima. O Bech32m (BIP350) corrige isso usando uma constante diferente no cálculo do checksum. Todos os endereços Taproot (versão 1) usam Bech32m, enquanto os endereços SegWit de versão 0 continuam usando Bech32.
Adoção
Desde sua introdução, a adoção do Bech32 cresceu continuamente. A maioria das carteiras modernas gera endereços Bech32 por padrão. Alguns serviços e carteiras mais antigos podem não suportar o envio para endereços bc1, embora isso seja cada vez mais raro.