Prévia gratuita8 min de leitura

O que uma função hash faz

Uma função hash recebe qualquer entrada (uma palavra, um arquivo, um bloco inteiro de transações) e produz uma saída curta, de tamanho fixo, chamada hash ou digest. A SHA-256, usada pelo Bitcoin, sempre produz 256 bits, normalmente escritos como 64 caracteres hexadecimais, seja a entrada uma única letra ou um longa-metragem.

As propriedades que importam

  • Determinística: a mesma entrada sempre gera o mesmo hash, em qualquer computador.
  • Rápida de calcular: gerar o hash de um arquivo grande leva uma fração de segundo.
  • De mão única: a partir do hash, não há forma prática de encontrar uma entrada que o produza, a não ser tentando adivinhar.
  • Efeito avalanche: mude um único caractere da entrada e cerca de metade dos bits da saída muda, então entradas parecidas geram hashes sem nenhuma relação entre si.

Uma outra propriedade, a resistência a colisões, significa que ninguém consegue encontrar duas entradas diferentes com o mesmo hash. Colisões têm que existir, porque há mais entradas possíveis do que saídas, mas, em uma função bem projetada, encontrar uma exigiria mais poder computacional do que existe.

Onde você encontra hashes no mundo cripto

  • Cada bloco registra o hash do bloco anterior, o que torna evidente qualquer adulteração do histórico antigo.
  • Uma árvore de Merkle combina os hashes de todas as transações de um bloco até chegar a um único hash raiz, de modo que é possível provar que uma transação está em um bloco sem baixar o bloco inteiro.
  • No Proof of Work, os mineradores procuram um hash de bloco abaixo de um número-alvo, o que só pode ser feito testando uma entrada atrás da outra.
  • Um endereço Ethereum é recortado do hash Keccak-256 de uma chave pública.

Onde o hash deixa de proteger você

Um hash prova que os dados não mudaram desde que o hash foi calculado. Ele não diz nada sobre se os dados estavam certos desde o início. E a mão única só vale quando a entrada é difícil de adivinhar. Calcule o hash de um PIN de quatro dígitos e qualquer pessoa consegue revertê-lo, calculando o hash de todos os 10.000 PINs possíveis e comparando. Senhas, e seed phrases que as próprias pessoas inventam, falham pelo mesmo motivo: a proteção vem do número de entradas possíveis, não do hash.

Um hash é um lacre em um documento, não um veredito sobre o que o documento diz.