Gerenciando Blog - Um portal de Conteúdos Blog Guest post O que é uma função hash criptográfica?
Guest post

O que é uma função hash criptográfica?

Função protege cada transação realizada com Bitcoin

O Bitcoin (BTC) inaugurou uma verdadeira revolução digital e monetária. A invenção de Satoshi Nakamoto por vezes é descrita como inovadora e sem precedentes.

Contudo, o programa do BTC e das demais criptomoedas é, na verdade, bem simples. De fato, elas utilizam diversos sistemas que são considerados como pilares da criptografia moderna.

Um desses pilares – e talvez o principal – seja a função hash criptográfica, que é fundamental para garantir a segurança e imutabilidade do BTC. Se você ainda não sabe o que é um hash ou como ele é importante, este texto é para você.

Função de hash: o que é?

Em termos gerais, uma função de hash é uma função criptográfica considerada “praticamente impossível de inverter, isto é, de recriar o valor de entrada utilizando somente o valor de dispersão”.

Em contrapartida, um hash é facilmente verificável caso alguém deseje conferir a autenticidade daquele código. Ou seja, um hash serve para codificar mensagens de modo a impedir que elas sejam facilmente quebradas.

A função hash abrange dois elementos de uma mensagem: a entrada e a saída. Na entrada, o usuário pode inserir qualquer tipo de mensagem, desde um alerta de evacuação até a localização de armas. Por isso que se fala que as entradas possuem comprimentos fixos.

Já a mensagem é o hash em si, o código pelo qual a mensagem é cifrada. A função hash é única e imutável, por isso se diz que seu comprimento é fixo.

Cada hash possui funções específicas de acordo com o objetivo da mensagem cifrada por ele, mas essa função possui uma certa uniformidade. De maneira geral, uma função hash possui três características:

  • Saída de tamanho fixo: ao receber a mensagem (entrada), o hash sempre vai produzir o mesmo tamanho de saída. Geralmente eles são de tamanho menor que o dado de entrada;
  • Eficiência da operação: por envolverem a verificação de dados, as funções hash devem ser eficientes e a sua mensagem deve ser clara e objetiva;
  • Determinística: o valor gerado em uma mensagem será sempre o mesmo valor de hash.

Para que serve um hash

A função hash foi criada para resolver um dos principais problemas da criptografia moderna: como enviar mensagens de forma segura? Afinal, uma comunicação com problemas pode fazer com que a mensagem não chegue à outra pessoa na sua forma correta.

Imagine-se no papel de alguém que mora num país que está sendo invadido por um país vizinho. Essa pessoa deseja organizar uma resistência e, para isso, deve se comunicar com os demais rebeldes. Mas, se sua mensagem for corrompida ou capturada pelo inimigo, a operação certamente fracassará.

Então, como garantir que a mensagem seja recebida da forma correta? É aqui que a função hash entra. Ela garante que a mensagem está íntegra e na ordem correta, bem como garante a confidencialidade do que foi encriptado.

Dessa forma, as funções de hash garantem a segurança dessa mensagem. No entanto, elas não são úteis apenas em tempos de guerra. Um hash serve para salvar senhas, garantir a integridade e autenticidade de documentos, gerar números aleatórios e garantir a segurança de blockchains e criptomoedas.

O hash para o Bitcoin

Existem diversos tipos de funções de hash atualmente e cada um deles atende a uma função ou funções específicas. Para as criptomoedas, a função de hash mais importante é a Secure Hash Function, também conhecida pela sigla SHA.

A função SHA possui quatro versões: 0, 1, 2 e 3. O SHA-0, de 160 bits, foi publicado em 1993, enquanto o SHA-1 foi utilizado por mais de 20 anos. Em 2016, o SHA-2 tornou-se o padrão.

O SHA-2 contém quatro variações: SHA-224, SHA-256, SHA-384 e SHA-512. E é justamente o SHA-256 que é utilizado no BTC e em grande parte das criptomoedas, num algoritmo conhecido como Prova de Trabalho (PoW).

A mineração

No processo conhecido como mineração, a maioria dos algoritmos usados pelas criptomoedas calculam um valor de hash. Este é maior que um certo valor definido (conhecido como dificuldade de mineração).

Para encontrar esse hash, os mineradores devem calcular bilhões (até mesmo trilhões) de cálculos diferentes por segundo. Cada cálculo encontra um determinado hash até que finalmente alguém encontre o hash que satisfaz a condição.

Em outras palavras, para que um usuário encontre o hash, ele deve ser capaz de provar que realizou o trabalho – daí o nome do algoritmo.

Quanto mais trabalho for realizado coletivamente, mais poder de processamento (hash rate) a rede possui, o que a torna mais segura e protegida contra ataques. O BTC, por exemplo, jamais sofreu qualquer ataque bem sucedido desde sua criação, em 2009.

Em suma, a função de hash garante que cada transação de uma criptomoeda seja única, inviolável e que não possa ser revertida por ninguém.

Sair da versão mobile