Os endereços bitcoin ou endereço bitcoin Eles são uma sequência única de números e letras que nos permitem enviar e receber nossas moedas com segurança na rede Bitcoin.
Como um endereço bitcoin é gerado? Qual é o seu segredo? Contamos-lhe tudo sobre este processo.
Antes de começar, é fundamental mencionar que este artigo é destinado àqueles usuários que possuem algum conhecimento sobre Bitcoin e o mundo das criptomoedas. Portanto, recomendamos que você revise certos tópicos deste mundo para que possa entendê-los. Com isso, você ficará muito claro sobre a relação entre o Bitcoin e a criação de endereços.
Por onde você teria que começar? Recomendamos que você leia: criptografia assimétrica, função hash, Algoritmos SHA-256, ECDSA y O que é um endereço Bitcoin?
Bem, no mundo das criptomoedas, um endereço é um identificador, o local ao qual uma certa quantidade de criptomoedas é associada e alocada. Portanto, quem quiser enviar ou receber criptomoedas sempre precisará ter um endereço. Por exemplo, em endereços públicos Bitcoin geralmente se parecem com isso: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Como podemos ver, são um conjunto de letras e números alternados cujo comprimento varia entre 26 e 32 caracteres.
Para criar um endereço, são necessárias 9 etapas no total, as quais explicaremos em detalhes abaixo.
Processo para criar um endereço de Bitcoin
O processo para criar um endereço Bitcoin começa com a geração de um chave privada que nos fornecerá o uso exclusivo dos fundos. A partir disso, um chave pública, o que nos permitirá compartilhar informações com outras pessoas sem colocar em risco as nossas.
A obtenção da chave pública através da chave privada se deve à aplicação do algoritmo ECDSA. Uma implementação muito eficiente da criptografia de curva elíptica, onde a curva é usada como um ponto gerador secp256k1 para obter a chave pública.
Então, uma vez que esse par de chaves é gerado, o processo de geração dos endereços públicos do Bitcoin começa.
1.- Selecionar a chave pública obtida do processo anterior. Ou seja, a partir da aplicação do algoritmo ECDSA a chave privada. Que deve ter uma aparência semelhante a esta:
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
2.- Aplicar um hash para a chave pública implementando o algoritmo SHA-256. Este algoritmo permite gerar outputs (saídas) de extensão fixa a partir de inputs (entradas) de extensão variável, que são irreversíveis. Portanto, são unidirecionais e não é possível deduzir a chave privada por meio da pública.
Após aplicar a função de hash, obteremos uma sequência de 256 bits:
0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98
3.- Hashear novamente a saída obtida anteriormente, aplicando neste caso o algoritmo RIPEMD-160. com o qual obteremos um sequência de 160 bits:
f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
4.- Adicionar o byte da versão usado para a rede principal do Bitcoin (0x00) na frente da saída obtida do aplicativo de algoritmo de hash RIPEMD-160. Com isso, obteremos um endereço Bitcoin em formato hexadecimal, que será assim:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
E adicionando este byte também podemos identificar e distinguir os endereços Bitcoin de outras criptomoedas que também utilizam o protocolo.
5.- Realizar o hash com o algoritmo SHA-256 para o resultado obtido do RIPEMD-160. Esta etapa é necessária como mecanismo de verificação para verificar se o endereço do Bitcoin está escrito corretamente.
ad3c854da227c7e99c4abfad4ea41d71311160df2e415e713318c70d67c6b41c
6.- Aplicar o hash com o algoritmo SHA-256 ao resultado do hash anterior. Esta etapa concatena o endereço obtido. Como já mencionado, o algoritmo SHA-256 é aplicado duas vezes como um mecanismo de verificação.
c7f18fe8fcbed6396741e58ad259b5cb16b7fd7f041904147ba1dcffabf747fd
7.- Escolher os primeiros 4 bytes do último hash SHA-256, que representam o checksum do endereço Bitcoin. Neste exemplo, eles seriam:
c7f18fe8
8.- Adicione os 4 bytes da soma de verificação do ponto anterior ao hash estendido RIPEMD-160 do ponto 4. Este é um endereço binário de 25 bytes do Bitcoin:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31c7f18fe8
9.- Converta o resultado da string de bytes usando a codificação Base58Check, usado para codificar endereços Bitcoin. Portanto, a sequência de bytes será transformada em uma sequência base58.
1PMycacnJaSqwwJqjawXBERnLsZ7RkXUAs
Este é o formato mais usado para endereços Bitcoin. Então a codificação Base58Check converte a string de bytes em um conjunto de números e letras maiúsculas e minúsculas, para torná-los mais fáceis de distinguir. Embora no seu conjunto ainda sejam caracteres ilegíveis e que à primeira vista não são enigmáticos.
Então você pode criar um endereço bitcoin para que possamos usá-lo como quisermos. Todo esse processo também é realizado com o Vanity Address, só que neste último caso realizamos uma geração por força bruta para buscar um endereço personalizado.
Você pode aprender mais sobre esses tipos de endereços em nosso artigo sobre Vanity Addres.
Características dos endereços Bitcoin
- Cada endereço público de Bitcoin pesa aproximadamente 25 bytes.
- Eles têm um comprimento de entre 26 e 32 caracteres.
- Eles podem começar com o número 1, para endereços padrão (P2PKH) ou número 3, para endereços de múltiplas assinaturas (P2SH). Também os endereços SegWit comece com bc1 (bech32) Por outro lado, as instruções testnet do Bitcoin começam com m o 2.
- A implementação do Base58Check entre suas muitas funções impede o uso de caracteres como O, I (em maiúsculas) e l (em minúsculas) para evitar que sejam confundidos com o número 0 ou número 1.