Os endereços Bitcoin são importantes, pois é a partir deles que o usuário pode enviar e receber transações na blockchain do Bitcoin. Assim, desde que o Bitcoin surgiu, diversos formatos de endereços foram criados.

As atualizações nos endereços ocorreram para facilitar a experiência do usuário e melhorar segurança, escalabilidade, privacidade e verificação.

Portanto, o Bech32 é um esquema de codificação introduzido no Bitcoin em 2017 através da atualização SegWit. Este artigo irá te ajudar a entender o Bech32 e como ele funciona.

Animados?!

Codificação de endereços Bitcoin

Para representar números grandes e longos de forma compacta, os computadores utilizam representações alfanuméricas (números e letras) com uma base maior que 10, ou seja, mais de 10 caracteres.

O sistema que usamos hoje para representação de números, por exemplo, é um sistema de base 10 (decimal), pois utiliza números de 0 a 9. 

No entanto, é comum que nos computadores os endereços memorizados sejam feitos numericamente. Para isso, a maioria dos computadores utiliza um sistema hexadecimal (base 16), com 16 caracteres.

Esse sistema emprega representações alfanuméricas, contendo os numerais de 0 a 9 e as letras de A a F, tratando as letras como se fossem os números de 10 a 15.

Assim, um número representado em hexadecimal é mais curto que em decimal, facilitando a digitação, representação e memorização.

Base 64

Uma maneira ainda mais eficiente de codificar esses números é usando uma representação de base 64, que contém 64 caracteres. 

Nessa codificação, estão incluídas as 26 letras do alfabeto em minúsculas, as 26 letras em maiúsculas e os 10 numerais de 0 a 9. Além disso, são adicionados dois caracteres especiais, como “+” e “/”.

Esse sistema é muito utilizado na codificação de e-mails, por exemplo. 

Base 58

A codificação de base 58 é o padrão utilizado no Bitcoin para representar endereços, por exemplo.

Essa codificação, derivada da base 64, oferece diversos benefícios, tais como:

  • Facilidade de leitura
  • Representação compacta
  • Detecção de erros
  • Prevenção de erros

A Base 58E emprega as letras do alfabeto em maiúsculas e minúsculas, números e omite alguns caracteres que podem ser confundidos entre si, dependendo da fonte utilizada na representação do texto.

Assim, na base 58, os caracteres excluídos são o 0 (zero), O (letra O maiúscula), I (letra I maiúscula), l (letra L minúscula) e os símbolos ‘+’ e ‘/’.

Este esquema de codificação foi desenvolvido para facilitar a inserção manual ou a cópia desses dados por nós, humanos.

Como funciona a codificação Base 58?

A principal função da codificação base 58 é transformar uma série de bytes em uma informação legível. Essa codificação não apenas codifica a informação, mas também a decodifica.

Além disso, a função base 58 realiza a verificação de checksum das informações. Esse processo, conhecido como soma de verificação, é realizado por meio do algoritmo SHA-256 do Bitcoin.

O checksum é útil para detectar se uma série de dados ou arquivos foi alterada.

Por exemplo, as assinaturas do Bitcoin, geradas através de uma função de curva elíptica, são codificadas em um formato de chave mais legível e compacto. Um exemplo são os endereços Bitcoin Legacy, que começam com o número 1.”

Pontos negativos da codificação base 58

Com o intuito de sempre melhorar o Bitcoin e a usabilidade dos usuários, percebeu-se que a codificação base 58 tinha algumas limitações, como:

  • Ocupação excessiva de espaço em QR Codes, uma vez que não é possível utilizar o modo alfanumérico;
  • A utilização de letras maiúsculas e minúsculas torna a escrita inconveniente, dificultando a digitação segura ou a leitura do endereço em voz alta;
  • O checksum, realizado pelo SHA-256, é lento e não assegura 100% na detecção de erros;
  • A decodificação base 58 é complexa e relativamente lenta.

Diante dessas limitações, surgiu um novo modelo de codificação para os endereços Bitcoin: o Bech32.

O surgimento do formato Bech32

O formato de codificação Bech32 surgiu com a atualização SegWit em 2017, proposto por Pieter Wuille na BIP 173.

A SegWit foi a atualização que deu origem ao Bech32, pois introduziu uma série de melhorias no protocolo, resultando em transações mais leves que ocupam menos espaço no bloco e, consequentemente, tornam-se mais rápidas também.

Assim, para que essa atualização ocorresse com sucesso, um novo formato de endereço, mais eficiente, precisou ser criado. Foi então que surgiram os endereços com codificação Bech32, como o endereço Native SegWit.

O Bech32 possui base 32 (daí vem seu nome) e é composto por caracteres alfanuméricos. Esta codificação inclui um formato de verificação mais eficiente, capaz de localizar e até indicar possíveis erros de digitação nos endereços, por exemplo.

Algumas características do Bech32 são:

  • Possui apenas caracteres em letra minúscula;
  • Utilizam as letras de A a Z, exceto “b”, “i” e “o”;
  • Omite caracteres que poderiam ser exibidos de forma idêntica;
  • A divisão em uma parte legível por humanos, um separador (que é sempre ‘1’) e a carga útil dos dados, onde a primeira parte indica a rede ou aplicativo que utiliza o formato. Os endereços bech32 começam com “bc1…”.

Além disso, endereços bech32 codificam uma versão SegWit, tornando-os compatíveis com muitas atualizações que podem ser lançadas pelos desenvolvedores do Bitcoin Core.

O que é Bech32?

Bech32 é um esquema de codificação usado para codificar endereços SegWit e faturas Lightning. Ele inclui um sistema de verificação de erros mais avançado, tornando-se um padrão importante na melhoria da usabilidade e compatibilidade em transações e endereços Bitcoin.

Quais as vantagens de usar um endereço bech32?

As vantagens de usar um endereço Bech32 incluem maior eficiência, legibilidade aprimorada e menor uso de espaço em QR Codes, além de uma detecção de erros superior.

Adicionalmente, por aproveitar os benefícios da SegWit, esses endereços permitem a separação dos dados de testemunha das transações, resultando em transações mais leves, rápidas e econômicas.

Tópicos relacionados:

Conclusão

Atualmente, o formato de codificação Bech32 representa a opção mais eficiente na rede Bitcoin, mas é possível que no futuro surjam novos formatos. Dada a natureza descentralizada da rede Bitcoin, qualquer pessoa pode propor atualizações ou modificações em propostas existentes.

Um exemplo disso é a Bech32m, uma atualização da Bech32, criada para aprimorar o esquema de detecção de erros. Esta versão será utilizada no Taproot e em futuras atualizações da SegWit.

Essa evolução constante indica que novas atualizações surgirão, e é importante estar atento a elas, pois elas podem impactar nosso dia a dia como usuário.

Espero que este artigo tenha te ajudado e não deixe de compartilhá-lo com um amigo!

Compartilhe o artigo:
Escrito por
Imagem do Autor
Carol Souza

Carol é uma das principais educadoras de Bitcoin no Brasil. Ela participou de seminários para desenvolvedores de Bitcoin e Lightning da Chaincode (NY) e é palestrante em conferências sobre Bitcoin ao redor do mundo.

Inscreva-se na Newsletter
Acesse, em primeira mão, artigos, novidades e notícias sobre Bitcoin diretamente em seu email.