Os endereços bitcoin ou endereço bitcoin são uma cadeia única de números e letras que nos permitem enviar e receber nossas moedas com segurança na rede Bitcoin. Mas como é gerado um endereço de bitcoin? Qual é o seu segredo? Bem, aqui contamos tudo sobre esse processo.

AAntes de começar, é essencial mencionar que este artigo é destinado a usuários que possuem algum conhecimento sobre Bitcoin e o mundo criptográfico. Portanto, recomendamos que você revise primeiro determinados tópicos deste mundo para poder entendê-los. Com isso, você ficará muito claro sobre o relacionamento que eles têm com o Bitcoin e a criação de endereços. Entre esses artigos estão os criptografia assimétrica, função hash, Algoritmos SHA-256 y ECDSA.

Agora vamos dar uma breve olhada no que é um endereço Bitcoin. Você pode dar uma olhada no nosso artigo O que é um endereço Bitcoin? para expandir seu conhecimento.

Bem, no mundo de criptomonedas, um endereço é um identificador, o local ao qual uma certa quantidade de criptomoedas está associada e destinada. Portanto, qualquer pessoa que queira enviar ou receber criptomoedas sempre precisará ter um endereço. Por exemplo, no Bitcoin, os endereços públicos geralmente ficam assim: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Como podemos ver, eles são um conjunto de letras e números alternativos 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 primeiro com a geração de um chave privada. Isso nos fornecerá o uso exclusivo dos fundos. A partir disso, uma chave pública é gerada, o que nos permitirá compartilhar informações com outras pessoas sem colocar nossos fundos em risco. A obtenção da chave pública por meio da chave privada deve-se à 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.- Selecione a chave pública obtido do processo anterior. Ou seja, a partir da aplicação do algoritmo ECDSA a a chave privada. Que deve ter uma aparência semelhante a esta:

0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352

2.- Aplique um hash para a chave pública implementando o algoritmo SHA-256. Este algoritmo permite gerar saídas (saídas) de extensão fixa a partir de entradas (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 um Fluxo de 256 bits:

0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98

3.- Hashear novamente a saída obtida anteriormente, aplicando neste caso o algoritmo RIPEMD-160. Com o qual produz, obteremos uma Fluxo de 160 bits:

f54a5851e9372b87810a8e60cdd2e7cfd80b6e31

4.- Adicione 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 esse byte, ele também permite identificar e distinguir endereços de Bitcoin de outras criptomoedas que também usam o protocolo.

5.- Realize o hash com o algoritmo SHA-256 para o resultado obtido no RIPEMD-160. Esta etapa é necessária como mecanismo de verificação para verificar se o endereço do Bitcoin está escrito corretamente.

ad3c854da227c7e99c4abfad4ea41d71311160df2e415e713318c70d67c6b41c

6.- Aplique 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.- Escolha 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 letras maiúsculas e minúsculas e números. Isso para torná-los mais fáceis de distinguir. Embora como um todo, eles ainda sejam personagens ilegíveis e à primeira vista não sejam enigmáticos.

Esse é todo o processo cujo termo é criar um endereço de bitcoin para que possamos usá-lo como desejamos. Todo esse processo também é realizado com o Vanity Address, são eles que, neste último caso, fazemos uma geração por força bruta para encontrar um endereço personalizado. Bem, saiba mais sobre esses tipos de endereços com nosso excelente artigo sobre Vanity Addres.

Quanto você sabe, cryptonuta?

A geração de endereços no Bitcoin tem a capacidade de gerar endereços exclusivos o tempo todo?

VERDADEIRO!

Uma das características mais poderosas do processo de geração do Bitcoin é que ele é capaz de criar endereços únicos e irrepetíveis para o Bitcoin para todos os seus usuários o tempo todo.

Visão geral dos endereços Bitcoin

  1. Cada endereço público de Bitcoin pesa aproximadamente 25 bytes.
  2. Eles são compostos de um comprimento de entre 26 e 32 caracteres.
  3. 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) Da mesma forma, os endereços SegWit comece com bc1 (bech32) Por outro lado, as instruções Rede de teste Bitcoin eles começam com m o 2.
  4. 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.