Bech32

O formato de endereço para scripts de travamento segwit

Bech32 (pronuncia-se "betch trinta e dois") é um formato de endereço usado para representar scripts de travamento segwit como P2WPKH, P2WSH e P2TR.

Foi introduzido logo após a atualização Segregated Witness para fornecer um formato de endereço melhor para os novos scripts segwit. É uma melhoria em relação ao formato legado Base58.

Você identifica um endereço Bech32 pelo prefixo bc1.

Ícone Ferramenta

Endereço (Bech32)

Crie um endereço segwit (P2WPKH, P2WSH, P2TR) a partir de uma versão de testemunha e um programa de testemunha.

P2WPKH = 20 bytes (hash160) · P2WSH = 32 bytes (sha256) · P2TR = 32 bytes

Benefícios

Por que o Bech32 é melhor que o Base58?

Mais amigável

Os endereços Bech32 usam apenas letras minúsculas (ou apenas maiúsculas), então não são sensíveis a maiúsculas/minúsculas como o Base58. Isso os torna mais fáceis de ler em voz alta, digitar e codificar em QR codes (QR codes ficam menores com tudo em maiúsculas).

Detecção de erros superior

O checksum do Bech32 usa um código BCH que é muito melhor em detectar erros do que o checksum simples do Base58. Ele garante a detecção de até 4 erros de caractere e, além disso, pode até sugerir onde está o erro (embora as carteiras geralmente não usem essa capacidade de correção, por segurança).

Estrutura

Como um endereço Bech32 é montado?

Um endereço Bech32 tem três partes:

  1. Parte legível por humanos (HRP). Indica a rede: bc (mainnet) ou tb (testnet).
  2. Separador. Sempre o caractere 1.
  3. Parte de dados. A versão de testemunha + o programa de testemunha + o checksum, todos codificados no conjunto de 32 caracteres do Bech32.

O processo de codificação resumido: pega-se o programa de testemunha (ex.: o hash de 20 ou 32 bytes), converte-se de grupos de 8 bits para grupos de 5 bits, adiciona-se a versão de testemunha na frente, calcula-se o checksum e codifica-se tudo no alfabeto Bech32 (Base32).

Bech32 vs Bech32m

Há duas variantes do checksum:

O Bech32m (BIP 350) foi introduzido para corrigir uma fraqueza no checksum original do Bech32 para versões de testemunha maiores que 0.