Skip to main content

Base58 | Bitcoin Glossary | Mapping Bitcoin

Base58

Protocolo

Also known as: Base58Check

Esquema de codificação do Bitcoin para endereços e chaves privadas que exclui caracteres ambíguos como 0, O, I e l. Base58Check adiciona checksum.

Visão geral

Base58 é um sistema de codificação que converte dados binários em uma string compacta e legível por humanos usando 58 caracteres alfanuméricos. Foi projetado por Satoshi Nakamoto especificamente para o Bitcoin para minimizar a chance de erros quando os usuários copiam ou transcrevem manualmente endereços e chaves privadas.

Conjunto de caracteres

O Base58 usa os seguintes caracteres, excluindo deliberadamente aqueles que são facilmente confundidos:

Alfabeto Base64 padrão:
  A-Z  a-z  0-9  +  /

Base58 remove esses caracteres ambíguos:
  0 (zero)      ← confundido com O
  O (maiúsculo) ← confundido com 0
  I (maiúsculo) ← confundido com l ou 1
  l (minúsculo) ← confundido com I ou 1
  + e /         ← não são alfanuméricos

Alfabeto Base58 resultante:
  1 2 3 4 5 6 7 8 9
  A B C D E F G H J K L M N P Q R S T U V W X Y Z
  a b c d e f g h i j k m n o p q r s t u v w x y z

Base58Check

O Base58Check estende o Base58 adicionando um byte de versão no início e um checksum de 4 bytes no final (os primeiros 4 bytes de um hash SHA-256 duplo do payload). Esse checksum permite que carteiras detectem erros de digitação antes de enviar uma transação para um endereço inválido.

Transição para o Bech32

Embora o Base58Check tenha servido bem ao Bitcoin por anos, ele foi amplamente substituído pelo Bech32 para endereços SegWit. O Bech32 fornece detecção de erros mais robusta, não diferencia maiúsculas de minúsculas e produz QR codes menores. No entanto, o Base58Check ainda é amplamente utilizado para endereços legacy e chaves privadas codificadas em WIF.