
Funções hash: a engrenagem silenciosa por baixo de tudo no cripto
Se você desmontar uma blockchain até suas peças essenciais, vai encontrar dois tipos de criptografia fazendo quase todo o trabalho. Assinaturas digitais decidem quem pode gastar. Funções hash mantêm todo o resto unido — blocos, endereços, mineração, IDs de transação, até o jeito como uma carteira decodifica o que você está prestes a assinar.
Funções hash raramente são explicadas, porque raramente são notadas. Valem dez minutos, porque, depois que você as entende, uma parte surpreendente do cripto deixa de parecer mágica.
O que uma função hash faz
Uma função hash pega qualquer entrada — uma palavra, um arquivo, um bloco inteiro de transações — e produz uma impressão digital de tamanho fixo. O SHA-256, usado pelo Bitcoin, sempre produz 256 bits, normalmente escritos como 64 caracteres hexadecimais, quer você dê a ele uma letra, quer um gigabyte.
Três propriedades o tornam útil:
Determinístico. A mesma entrada sempre dá a mesma saída. Qualquer um, em qualquer lugar, pode recalcular e conferir.
De mão única. Dada uma impressão digital, não há jeito prático de voltar à entrada. O único caminho é chutar entradas até uma bater, e com um bom hash isso é inútil.
Resistente a colisões. É inviável achar duas entradas diferentes com a mesma impressão. Mude um único caractere e a saída muda completamente, de forma imprevisível.
Um hash é só isso: uma impressão curta, verificável e impossível de forjar de algo maior.
Onde você encontra hashes sem perceber
IDs de transação. Um txid é simplesmente o hash de uma transação. Por isso é único, e por isso é o que você cola num explorador de blocos — ele identifica exatamente uma transação, e ninguém consegue produzir outra com o mesmo ID.
A própria cadeia. Cada bloco contém o hash do bloco anterior. Mude qualquer coisa num bloco antigo e o hash dele muda, o que quebra a ligação com todos os blocos seguintes. Essa cadeia de impressões é o que torna a história à prova de adulteração.
A mineração. A prova de trabalho é uma loteria de hashes: mineradores calculam o hash dos cabeçalhos de bloco várias e várias vezes, variando um número a cada vez, até achar um resultado abaixo de um alvo. Como hashes são imprevisíveis, não há atalho — só mais tentativas, e é por isso que a prova de trabalho custa energia real e esse custo compra segurança.
Os endereços. A maioria dos endereços é hash de alguma coisa. Um endereço Bitcoin clássico é o hash de uma chave pública. Os endereços Bitcoin da SSP são P2WSH: um hash SHA-256 do script de testemunha que descreve a regra de gasto 2-de-2. O que fica na cadeia antes de você gastar é essa impressão, não as chaves.
Hashes dentro da carteira
Hash não é só um conceito no nível da cadeia. Ele aparece no software com que você assina.
Quando a SSP Key decodifica uma transação Ethereum antes de você aprovar, ela identifica o que a chamada faz usando seletores de função — os primeiros quatro bytes do hash Keccak-256 da assinatura da função. transfer(address,uint256) dá um valor que começa com a9059cbb; approve(address,uint256), um que começa com 095ea7b3. Quando o decodificador vê esses quatro bytes no início de uma transação, sabe qual função está sendo chamada e pode mostrar em linguagem simples que você está enviando tokens ou concedendo uma aprovação.
É uma bela ilustração de para que servem os hashes: uma impressão compacta e sem ambiguidade de algo mais longo. E também um lembrete dos limites deles, porque quatro bytes é tão pouco que duas funções diferentes podem compartilhar um seletor. Essa é uma das razões pelas quais o decodificador falha de propósito de modo fechado — tudo que é inesperado volta para os dados brutos em vez de um palpite confiante.
O que hashes não conseguem fazer
Eles não escondem entradas pequenas. Um hash é de mão única, mas se a entrada vem de um conjunto pequeno de possibilidades, um atacante pode simplesmente calcular o hash de todas e comparar. É por isso que um PIN ou uma senha curta com hash protegem muito pouco, e por isso as frases sementes são palavras longas e aleatórias em vez de algo fácil de lembrar.
Eles não provam nada sobre o significado. Um hash prova que duas coisas são idênticas. Não diz nada sobre se alguma delas é honesta. O hash perfeitamente verificado de uma transação maliciosa continua sendo uma transação maliciosa.
Eles não são criptografia. Você não consegue «descriptografar» um hash para obter o original de volta. Se algo diz reverter um hash, está chutando.
Por que isso importa para você
Você raramente vai calcular um hash à mão. Mas entendê-los explica várias coisas que de outro modo parecem regras para decorar:
Por que um txid prova que um pagamento existe. Por que você não pode editar uma transação confirmada. Por que a mineração consome energia. Por que um endereço não gasto revela uma impressão e não suas chaves. Por que uma semente longa e aleatória é segura e uma curta e esperta não é.
Funções hash são a parte do cripto que simplesmente funciona, em silêncio, bilhões de vezes por dia. Saber o que elas garantem — e o que não garantem — é um dos jeitos mais baratos de entender o sistema a que você confia seu dinheiro.


