Hash alvo
O que é um hash de destino?
Na mineração de criptomoedas, um hash de destino é um valor numérico que um cabeçalho de bloco em hash deve ser menor ou igual para que um novo bloco seja concedido a um minerador. Os cabeçalhos de bloco identificam blocos individuais em um blockchain.
A mineração de criptomoedas se refere ao processo de coleta de criptomoedas como recompensa pelo trabalho concluído. A natureza deste trabalho é verificar a legitimidade das transações de uma determinada criptomoeda. Dessa forma, os mineradores de criptomoedas são essencialmente auditores. Quando você mina, pode ganhar criptomoeda sem ter que gastar dinheiro com isso.
O hash de destino é usado para determinar a dificuldade da entrada e pode ser ajustado para garantir que os blocos sejam processados com eficiência. Por exemplo, hashes de destino são usados em criptomoedas que usam um sistema de prova de trabalho (PoW) para definir a dificuldade de mineração atual (incluindo Bitcoin). Se uma criptomoeda usa um sistema diferente para mineração, pode não exigir um hash de destino.
Principais vantagens
- Na mineração de criptomoedas, um hash de destino é um valor numérico que um cabeçalho de bloco com hash (que é usado para identificar blocos individuais em um blockchain) deve ser menor ou igual para que um novo bloco seja concedido a um minerador.
- Hashes de destino são usados em criptomoedas que usam um sistema de prova de trabalho (PoW) para definir a dificuldade de mineração atual (incluindo Bitcoin); se uma criptomoeda usa um sistema diferente para mineração, pode não exigir um hash de destino.
- A rede Bitcoin ajusta a dificuldade de mineração aumentando ou diminuindo o hash alvo para preservar um intervalo médio de 10 minutos entre os novos blocos.
Como funciona um hash de destino
As criptomoedas contam com o uso de blockchains que contêm o histórico de todas as transações dessa criptomoeda. Essas transações são hash, ou criptograficamente codificadas, em uma série de caracteres alfanuméricos. O hash envolve pegar uma string de dados de qualquer comprimento e executá-la por meio de um algoritmo para produzir uma saída com comprimento fixo. A saída sempre terá o mesmo comprimento, independentemente de quão grande ou pequena seja a entrada (embora o número de permutações de um hash seja astronomicamente grande). Cada bloco conterá o hash do cabeçalho do bloco anterior.
Validar e codificar o blockchain é conhecido como mineração. A mineração envolve o uso de computadores para executar algoritmos de hash para processar o bloco mais recente; as informações que um usuário precisa para minerar são encontradas no cabeçalho do bloco. A rede criptomoeda define um valor de destino para esse hash – chamado de hash de destino – e os mineiros tentam determinar qual é esse valor testando todos os valores possíveis.
O cabeçalho do bloco contém o número da versão do bloco, um carimbo de data / hora, o hash usado no bloco anterior, o hash da raiz Merkle, o nonce e o hash de destino. O bloco é gerado pegando o hash do conteúdo do bloco, adicionando uma string aleatória de números (o nonce) e fazendo o hash do bloco novamente.
Se o hash atender aos requisitos do destino, o bloco será adicionado ao blockchain. Percorrer as soluções para adivinhar o nonce é conhecido como prova de trabalho (PoW), e o minerador que conseguir encontrar o valor recebe o bloco e é pago em criptomoeda.
Considerações Especiais
Hash alvo para Bitcoin
Bitcoin usa o algoritmo de hash SHA-256. Este algoritmo gera números aleatórios verificáveis de uma forma que requer uma quantidade previsível de poder de processamento do computador.
A mineração de um bloco exige que o minerador produza um valor (um nonce) que, após ser hash (criptograficamente codificado), seja menor ou igual ao usado no bloco mais recente aceito pela rede bitcoin. Esse número está entre 0- (a menor opção) e 256 bits (a maior opção), mas é improvável que seja o número máximo.
Como o hash de destino pode ser um número enorme, o minerador pode ter que testar um grande número de valores antes de ter sucesso. Um mineiro malsucedido precisa esperar pelo próximo bloco (é por isso que os mineiros que encontram uma solução de hash são comparados aos vencedores de uma corrida ou loteria).
O hash de destino é ajustado periodicamente. As funções hash usadas para gerar o novo destino têm propriedades específicas projetadas para tornar o blockchain (e sua criptomoeda) seguro. Este processo é determinístico, o que significa que produzirá o mesmo resultado cada vez que a mesma entrada for usada. É rápido o suficiente para não demorar muito para retornar um hash para a entrada. Também torna muito difícil determinar a entrada, especialmente para grandes números, e faz pequenas alterações no resultado da entrada em uma saída hash muito diferente.