Blockchain

Hash

Resultado de tamanho fixo produzido por uma função que transforma qualquer dado em um código único, usado para verificar integridade na blockchain.

Pontos-chave

  • Hash é o resultado de tamanho fixo produzido por uma função que transforma qualquer dado de entrada em um código aparentemente aleatório.
  • A mesma entrada gera sempre o mesmo hash, mas qualquer alteração mínima na entrada muda completamente o resultado.
  • É a peça criptográfica que encadeia blocos e permite verificar, de forma rápida, se um dado foi alterado.

O que é um hash?

Hash é a saída de uma função de hash, um algoritmo que recebe qualquer quantidade de dados e devolve um código de comprimento fixo. Esse código funciona como uma impressão digital do dado original: identifica-o de forma compacta e é praticamente impossível encontrar duas entradas diferentes que produzam o mesmo resultado. É uma das ferramentas centrais da criptografia moderna.

Como funciona

Uma boa função de hash tem propriedades úteis. É determinística, ou seja, a mesma entrada sempre gera a mesma saída. É sensível: mudar um único caractere na entrada altera o resultado por completo, sem qualquer semelhança com o anterior. E é de mão única: a partir do hash, não há caminho prático para reconstruir a entrada original.

Na blockchain, cada bloco contém o hash do bloco anterior, o que cria o encadeamento que dá nome à tecnologia. Alterar um dado antigo mudaria seu hash e, em cascata, o de todos os blocos seguintes, tornando a fraude evidente. Em redes de prova de trabalho, mineradores buscam repetidamente um hash que atenda a um alvo, e é esse esforço que protege a rede.

Verificar um hash é rápido e barato, mesmo que produzi-lo com certas propriedades seja custoso, e essa assimetria é o que torna o mecanismo útil.

Por que importa

O hash é o que permite confiar na integridade de dados sem precisar compará-los inteiros. Para uma empresa, isso significa poder comprovar que um registro não foi alterado apenas conferindo seu hash, e é essa propriedade que sustenta a imutabilidade e a auditabilidade de uma blockchain.

Limitações

A segurança depende de a função de hash usada permanecer resistente: falhas descobertas em algoritmos antigos já os tornaram inseguros com o tempo. Um hash comprova que um dado não mudou, mas não diz nada sobre a veracidade do conteúdo em si. E, por ser de mão única, um dado cujo original se perdeu não pode ser recuperado a partir do hash. Escolher funções de hash modernas e consagradas é, por isso, uma decisão de segurança importante.