Cerquilha
O que é um Hash?
Um hash é uma função matemática que converte uma entrada de comprimento arbitrário em uma saída criptografada de comprimento fixo. Portanto, independentemente da quantidade original de dados ou do tamanho do arquivo envolvido, seu hash exclusivo sempre terá o mesmo tamanho. Além disso, os hashes não podem ser usados para ‘fazer engenharia reversa’ na entrada da saída com hash, uma vez que as funções de hash são “unilaterais” (como um moedor de carne onde você não pode colocar a carne moída de volta em um bife). Ainda assim, se você usar tal função nos mesmos dados, seu hash será idêntico, então você pode validar se os dados são os mesmos (ou seja, inalterados) se você já conhece seu hash.
O hash também é essencial para o gerenciamento de blockchain em criptomoedas.
Principais vantagens
- Um hash é uma função que atende às demandas criptografadas necessárias para resolver um cálculo de blockchain.
- Os hash têm um comprimento fixo, uma vez que torna quase impossível adivinhar o comprimento do hash se alguém estava tentando quebrar o blockchain.
- Os mesmos dados sempre produzirão o mesmo valor hash.
- Um hash, como um nonce ou uma solução, é a espinha dorsal da rede blockchain.
- Um hash é desenvolvido com base nas informações presentes no cabeçalho do bloco.
Como funciona um Hash
As funções hash típicas usam entradas de comprimentos variáveis para retornar saídas de um comprimento fixo. Uma função hash criptográfica combina os recursos de passagem de mensagens das funções hash com propriedades de segurança.
As funções de hash são estruturas de dados comumente usadas em sistemas de computação para tarefas, como verificar a integridade de mensagens e autenticar informações. Embora sejam considerados criptograficamente “fracos” porque podem ser resolvidos em tempo polinomial, não são facilmente decifráveis.
As funções de hash criptográficas adicionam recursos de segurança às funções de hash típicas, tornando mais difícil detectar o conteúdo de uma mensagem ou informações sobre destinatários e remetentes.
Em particular, as funções de hash criptográficas exibem estas três propriedades:
- Eles são “livres de colisões”. Isso significa que dois hashes de entrada não devem ser mapeados para o mesmo hash de saída.
- Eles podem ser ocultados. Deve ser difícil adivinhar o valor de entrada de uma função hash a partir de sua saída.
- Eles devem ser compatíveis com quebra-cabeças. Deve ser difícil selecionar uma entrada que forneça uma saída predefinida. Portanto, a entrada deve ser selecionada a partir de uma distribuição que seja a mais ampla possível.
Por causa dos recursos de um hash, eles são amplamente usados na segurança online – desde a proteção de senhas à detecção de violações de dados e à verificação da integridade de um arquivo baixado.
Hashing e criptomoedas
A espinha dorsal de uma criptomoeda é o blockchain, que é um livro-razão global formado pela ligação de blocos individuais de dados de transações. O blockchain contém apenas transações validadas, o que evita transações fraudulentas e gasto duplo da moeda. O valor criptografado resultante é uma série de números e letras que não se parecem com os dados originais e é chamado de hash. A mineração de criptomoedas envolve trabalhar com esse hash.
O hash requer o processamento dos dados de um bloco por meio de uma função matemática, que resulta em uma saída de comprimento fixo. Usar uma saída de comprimento fixo aumenta a segurança, pois qualquer pessoa que tentar descriptografar o hash não será capaz de dizer quanto tempo ou tamanho a entrada tem simplesmente olhando para o comprimento da saída.
Resolver o hash começa com os dados disponíveis no cabeçalho do bloco e é essencialmente resolver um problema matemático complexo. Cada cabeçalho de bloco contém um número de versão, um carimbo de data / hora, o hash usado no bloco anterior, o hash da Raiz Merkle, o nonce e o hash de destino.
O mineiro se concentra no nonce, uma sequência de números. Este número é anexado ao conteúdo hash do bloco anterior, que é então hash. Se esse novo hash for menor ou igual ao hash de destino, ele será aceito como a solução, o minerador receberá a recompensa e o bloco será adicionado ao blockchain.
O processo de validação para transações blockchain depende de dados sendo criptografados usando hashing algorítmico.
Considerações Especiais
Resolver o hash requer que o minerador determine qual string usar como nonce, o que por si só requer uma quantidade significativa de tentativa e erro. Isso ocorre porque o nonce é uma string aleatória. É altamente improvável que um minerador venha com sucesso com o nonce correto na primeira tentativa, o que significa que o minerador pode potencialmente testar um grande número de opções de nonce antes de acertar. Quanto maior a dificuldade – uma medida de quão difícil é criar um hash que atenda aos requisitos do hash de destino – mais tempo provavelmente levará para gerar uma solução.
Um exemplo de hash
O hash da palavra “hello” produzirá uma saída com o mesmo comprimento que o hash de “I am going to the store”. A função usada para gerar o hash é determinística, o que significa que produzirá o mesmo resultado cada vez que a mesma entrada for usada. Ele pode gerar uma entrada em hash de forma eficiente; também torna difícil determinar a entrada (levando à mineração), bem como faz pequenas alterações no resultado da entrada em um hash irreconhecível e totalmente diferente.
O processamento das funções hash necessárias para criptografar novos blocos requer um poder de processamento substancial do computador, o que pode ser caro. Para atrair indivíduos e empresas, chamados de mineradores, a investirem na tecnologia necessária, as redes de criptomoedas os recompensam com novos tokens de criptomoedas e uma taxa de transação. Os mineiros são compensados apenas se forem os primeiros a criar um hash que atenda aos requisitos descritos no hash de destino.
perguntas frequentes
O que é uma função hash?
As funções hash são funções matemáticas que transformam ou “mapeiam” um determinado conjunto de dados em uma sequência de bits de tamanho fixo, também conhecida como “valor hash”.
Como um valor de hash é calculado?
Uma função hash utiliza algoritmos matemáticos complexos que convertem dados de comprimento arbitrário em dados de comprimento fixo (por exemplo, 256 caracteres). Se você alterar um bit em qualquer lugar nos dados originais, todo o valor do hash muda, tornando-o útil para verificar a fidelidade de arquivos digitais e outros dados.
Para que são usados os hashes em blockchains?
Hashes são usados em várias partes de um sistema blockchain. Primeiro, cada bloco contém o hash do cabeçalho do bloco anterior, garantindo que nada foi adulterado conforme novos blocos são adicionados. A mineração de criptomoedas usando prova de trabalho (PoW), além disso, utiliza hash de números gerados aleatoriamente para chegar a um valor específico de hash contendo uma série de zeros à esquerda. Essa função arbitrária consome muitos recursos, tornando difícil para um mau ator invadir a rede.