Na segurança do computador, a função hash é muito importante para garantir a integridade da transferência e do registro de informações que exigem altos níveis de proteção.
As funções de hash são usadas em ações como validação e autenticação de usuário, assinatura de documento e também em criptomoedas como um método para evitar a falsificação de transações e impedir ações maliciosas.
Uma função hash é um procedimento criptográfico em que um algoritmo específico é usado para transformar certas informações (por exemplo, texto) em uma única sequência alfanumérica de comprimento fixo, chamada de hash.
Como já explicamos em detalhes o que é um hash No capítulo anterior, não entraremos em muitos detalhes, mas destacaremos que um hash não é resultado da criptografia, mas sim que é um resumo unidirecional porque o processo é irreversível, ou seja, você não pode descriptografar / recuperar as informações originais para A partir do hash final, se ele não estiver tentando hash sem parar até encontrar o texto original, pois o hash encontrado corresponderá ao que você estava procurando e você já sabia.
Ao longo dos anos, existem muitas maneiras (algoritmos) de gerar hashes, ou seja, existem muitos tipos de funções de hash, mas ddo ponto de vista técnico, todos devem ter uma série de características para cumprir corretamente sua missão:
- Unidirecionalidade: Se tivermos um documento M, o hash nos permite fazer um resumo do hash chamado h (M), mas com esse hash é impossível saber o conteúdo do documento original M.
- Compressão: O peso do documento M é irrelevante, pois o hash resultante sempre terá o mesmo comprimento com o mesmo número de bits.
- Facilidade de cálculo: Deve ser fácil calcular h (M) de 'M' para geração rápida e sem desperdiçar tempo, energia e poder de computação.
- Transmissão de bits: O hash h (M) deve ser uma função complexa da mensagem original 'M'. Se fosse o caso que M fosse modificado em qualquer lugar, e mesmo que fosse uma modificação mínima, o elemento h (M) mudaria completamente.
- Fraca resistência à colisão: Será computacionalmente impossível para M conhecido, podemos encontrar outro M 'tal que h (M) = h (M'). Primeira pré-imagem.
- Forte resistência a colisões: Deve ser computacionalmente difícil encontrar um par (M, M ') tal que h (M) = h (M'). Segunda pré-imagem.
Segurança de hash
Sim. Você pode encontrar o texto original de um hash. Mas é praticamente impossível. Apenas pela força bruta.
Por exemplo, o hash de 128 bits (uma versão básica do hash) tem 2 ^ 128 possibilidades diferentes e a probabilidade de 50% seria a raiz quadrada de 2 ^ 128, o que resulta em 2 ^ 64 como uma instância. A partir disso, obtém-se que, em nível estatístico, é mais fácil quebrar a colisão do que quebrar a resistência da imagem anterior.
Portanto, é verdade, não existe nenhuma função hash no mundo livre de colisões, mas se não houver uma falha no design, quebrá-la é muito complicado e levaria um tempo significativo, às vezes bilhões de anos com capacidade. cálculo superior ao de todo o planeta Terra.
Função hash no Bitcoin
Um dos algoritmos de função hash quintessencial é SHA-256, é utilizado em inúmeros casos devido ao seu equilíbrio entre segurança e complexidade de geração (em termos de tempo e gasto de energia)
Um das centenas de milhares de lugares onde é usado está no Bitcoin.
Dentro do Ecossistema Bitcoin a função do hash é muito importante desde que seja eficiente e, para ser esse o caso, o hash deve ser complexo, oferecendo assim um alto grau de segurança, o que implica que é necessário mais tempo para o cálculo e o processo é mais ineficiente.
A função Hash no Bitcoin é usada em duas áreas.
1. Criação do endereço
Um dos usos mais comuns da função hash está no processo de geração do endereço Bitcoin.
A função de hash SHA256 é usada até 3 vezes no processo de geração de endereço.
Graças a esta função, o endereço é mais curto do que a chave pública de onde vem. Também se consegue que seja consistente como um todo, gerando caracteres de controle (soma de verificação).
Se você ainda não sabe como um endereço é gerado, você pode ir pelo seguinte link.
2. Mineração: Prova de Trabalho
Como já explicamos em detalhes no capítulo dedicado à mineração de bitcoin, é a ação realizada por certas pessoas que decidem oferecer seu poder de computação à rede Bitcoin para a verificação de diferentes transações.
Hashing é um processo chave na criação de blocoAlém disso, também é usado em várias etapas, pois o mineiro deve associar as transações ao bloco. Para fazer isso, use a função hash para criar o Árvore Merkle.
Com esse resultado, além do hash resultante do bloco anterior e dos dados que devem ser inventados (chamados nonce) deve fazer com que o hash resultante tenha um determinado padrão. Se o fizer, terá resolvido o problema matemático, terá minerado um bloco e ganhará quase € 50.00 atualmente (junho de 2020).
É assim que é possível vincular completamente todas as transações novas e passadas, gerando total integridade e imutabilidade
Fazer o processo de hash uma vez é extremamente fácil, mas o minerador deve fazer isso milhões de vezes. É como fazer um agachamento, que é fácil, mas não milhões de vezes.
Finalmente, para que o nós Verifique se tudo está correto, eles farão o processo uma vez, aplicando a função hash novamente nas diferentes partes do processo.
Agora você sabe o que é uma função hash e quais funções ela desempenha nas criptomoedas. Incentivamos você a continuar treinando para se tornar um especialista em criptomoedas e tecnologia blockchain.