Glossário · em profundidade

Hash

Uma impressão digital de dados com tamanho fixo. Mude um bit da entrada e o resultado muda totalmente. O Bitcoin usa SHA-256.

Uma função hash recebe qualquer entrada — uma palavra, um arquivo ou um bloco inteiro — e produz uma saída curta de comprimento fixo chamada hash ou digest. O Bitcoin usa principalmente SHA-256, que gera sempre 256 bits, normalmente escritos como 64 caracteres hexadecimais.

Quatro propriedades úteis

Determinística: a mesma entrada dá sempre o mesmo hash.

Efeito avalanche: mude um único carácter e a saída parece completamente diferente. «bitcoin» e «Bitcoin» dão hashes sem relação.

Unidirecional: dado um hash, não há forma prática de descobrir a entrada, exceto adivinhando repetidamente.

Resistente a colisões: encontrar duas entradas diferentes com o mesmo hash é, até onde se sabe, praticamente impossível.

Onde o Bitcoin usa hashes

Ligar blocos. Cada bloco guarda o hash do bloco anterior. Mude qualquer coisa no histórico e os hashes deixam de coincidir. É isso que torna a blockchain evidente a manipulação.

Mineração. Na prova de trabalho, os mineradores fazem o hash de um cabeçalho de bloco repetidamente, mudando um número pequeno de cada vez, até o resultado cair abaixo de um alvo definido pela dificuldade. Como os hashes são imprevisíveis, a única estratégia é a força bruta, por isso a mineração custa energia real.

IDs de transação e endereços. Cada transação é identificada pelo seu hash. Muitos tipos de endereço são feitos ao hashear uma chave pública, o que acrescenta uma camada de proteção.

Uma impressão digital, não encriptação

Hashear não é encriptar. Nada é escondido que depois se possa «desencriptar». Um hash é uma impressão digital: pequena, única e impossível de reverter ao original. Essa ferramenta simples carrega uma parte surpreendente da segurança do Bitcoin.