Principais Conclusões
Hashing é o processo de converter qualquer input em uma saída de tamanho fixo usando uma função matemática, e é fundamental para a tecnologia de criptomoeda e blockchain.
Funções hash criptográficas devem satisfazer três propriedades principais: resistência a colisões, resistência a pré-imagem e resistência a pré-imagem secundária.
O Bitcoin usa SHA-256 para mineração, verificação de transações e geração de endereços, enquanto o Ethereum usa Keccak-256 para gerenciamento de estado e operações de contratos inteligentes.
Funções hash modernas como SHA-256 e SHA-3 permanecem seguras contra ameaças conhecidas de computação quântica, exigindo apenas tamanhos de saída maiores em vez de novos algoritmos inteiros.
Introdução
Hashing refere-se ao processo de gerar uma saída de tamanho fixo a partir de um input de tamanho variável. Isso é feito através de fórmulas matemáticas conhecidas como funções hash, que são implementadas como algoritmos de hashing.
Embora nem todas as funções hash envolvam criptografia, funções hash criptográficas estão no cerne da tecnologia blockchain e da cibersegurança moderna. Graças a elas, blockchains e outros sistemas distribuídos podem alcançar altos níveis de integridade e segurança de dados. Entender como o hashing funciona é útil para qualquer pessoa interessada em como as criptomoedas funcionam.
Como as Funções Hash Funcionam
Diferentes funções hash produzem saídas de tamanhos diferentes, mas cada algoritmo sempre gera uma saída de comprimento fixo, independentemente do tamanho do input. Por exemplo, o SHA-256 sempre produz uma saída de 256 bits (64 caracteres hexadecimais), enquanto o SHA-1 gera um digest de 160 bits.
É importante notar que hashing não é o mesmo que criptografia. A criptografia é um processo bidirecional onde os dados podem ser criptografados e depois descriptografados de volta à sua forma original usando uma chave. Hashing é uma função unidirecional: você pode produzir o hash a partir de um input, mas não pode reverter o processo para recuperar o input original apenas a partir do hash.
Para ilustrar, passar as palavras "Binance" e "binance" pelo SHA-256 produz saídas completamente diferentes:
"Binance" produz: f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
"binance" produz: 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2
Uma mudança menor (a capitalização da primeira letra) resulta em um valor hash completamente diferente. Essa propriedade é chamada de efeito avalanche, e é fundamental para a segurança. Além disso, ambas as saídas permanecerão sempre as mesmas, não importa quantas vezes as palavras sejam processadas pelo algoritmo, demonstrando a natureza determinística das funções hash.
A família de algoritmos SHA (Secure Hash Algorithms) inclui várias gerações. SHA-0 e SHA-1 não são mais considerados seguros porque colisões foram encontradas. Atualmente, apenas a família SHA-2 (que inclui SHA-256 e SHA-512) e a família SHA-3 (baseada no algoritmo Keccak) são consideradas criptograficamente seguras.
Funções Hash Criptográficas
Uma função hash criptográfica é uma função hash que atende a requisitos de segurança adicionais, tornando-a adequada para aplicações como assinaturas digitais, verificação de integridade de dados e consenso de blockchain. Quebrar tal função requer um enorme número de tentativas de força bruta.
Para que uma função hash criptográfica seja considerada segura, ela deve atender a três propriedades-chave: resistência a colisões, resistência a pré-imagem e resistência a pré-imagem secundária.
Resistência a colisões
Uma colisão ocorre quando duas entradas diferentes produzem a mesma saída hash. Uma função hash é considerada resistente a colisões quando encontrar tal colisão é computacionalmente inviável, mesmo que colisões matematicamente devem existir (uma vez que o conjunto de inputs possíveis é infinito enquanto as saídas são de tamanho fixo).
Na prática, resistência a colisões significa que levaria milhões de anos de computação para encontrar dois inputs que produzem o mesmo hash. O SHA-256 requer aproximadamente 2 à 128ª operações para encontrar uma colisão (o limite de aniversário), muito além das capacidades computacionais atuais.
Resistência a pré-imagem
A resistência a pré-imagem significa que, dado um output hash, é computacionalmente inviável encontrar qualquer input que produza esse output. Isso é o que torna as funções hash "unidirecionais". Um atacante que vê um hash não pode determinar quais dados o produziram.
Essa propriedade é essencial para aplicações como armazenamento de senhas: um serviço pode armazenar o hash de uma senha em vez da senha em si, e mesmo que o banco de dados de hashes seja exposto, as senhas originais permanecem protegidas.
Resistência a pré-imagem secundária
A resistência a pré-imagem secundária significa que, dado um input específico e seu hash, é inviável encontrar um input diferente que produza o mesmo hash. Embora relacionado à resistência a colisões, essa propriedade aborda um cenário de ataque mais específico.
Qualquer função hash que é resistente a colisões também é resistente a pré-imagem secundária, uma vez que encontrar uma segunda pré-imagem constituiria encontrar uma colisão. No entanto, uma função pode ser resistente a pré-imagem sem ser resistente a colisões.
Hashing na Blockchain
Funções hash são amplamente utilizadas em sistemas de blockchain. No Bitcoin, o SHA-256 protege a rede através da prova de trabalho, onde os mineradores devem encontrar uma saída de hash abaixo de um valor alvo específico. Esse processo requer um esforço computacional enorme para ser concluído, mas é trivial de verificar, criando um modelo de segurança assimétrico.
O hashing também é usado para construir árvores de Merkle: estruturas de dados onde as transações são hashadas em pares até que um único hash raiz resuma um bloco inteiro de transações. Isso permite que clientes leves verifiquem se uma transação específica está incluída em um bloco sem baixar todos os dados da transação.
O Bitcoin também utiliza hashing para a geração de endereços. Uma chave pública é processada através do SHA-256 seguido pelo RIPEMD-160 para produzir um formato de endereço mais curto e manejável. Essa abordagem adiciona uma camada extra de segurança e reduz o tamanho dos dados necessários para transações.
O Ethereum usa uma variante chamada Keccak-256 (estreitamente relacionada ao padrão SHA-3) para gerenciamento de estado, seletores de funções de contratos inteligentes, registro de eventos e derivação de endereços. Cada plataforma de blockchain seleciona funções hash com base em seu modelo de segurança específico e requisitos de desempenho.
Mineração e Taxa de Hash
Na mineração de Bitcoin, o desafio central é encontrar um input (variando um valor nonce no cabeçalho do bloco) que produza um hash SHA-256 abaixo de um limiar alvo. O alvo se ajusta a cada 2.016 blocos para manter um tempo médio de bloco de 10 minutos, independentemente da quantidade de poder computacional que a rede possui. Isso é o que torna a blockchain segura.
A taxa de hash representa o total de poder computacional dedicado à mineração. No início de 2026, a rede Bitcoin opera a aproximadamente 800 a 900 exahashes por segundo (EH/s), o que significa que os mineradores coletivamente realizam centenas de quatrilhões de cálculos de hash a cada segundo.
Os mineradores não precisam encontrar colisões. Eles simplesmente precisam encontrar qualquer input que produza um hash abaixo do alvo de dificuldade atual. Como existem muitos possíveis outputs válidos, a tarefa é sobre throughput computacional em vez de explorar fraquezas no SHA-256 em si.
Como a mineração é computacionalmente cara, os mineradores têm fortes incentivos econômicos para seguir as regras em vez de tentar atacar a rede. Quanto mais mineradores participam, mais segura a blockchain se torna.
Hashing na Era Pós-Quântica
Uma preocupação comum é se computadores quânticos poderiam quebrar as funções hash usadas nas blockchains. A resposta curta: as funções hash são muito mais resilientes a ataques quânticos do que a criptografia de chave pública.
O algoritmo de Grover, o ataque quântico mais relevante às funções hash, fornece apenas um aumento quadrático de velocidade. Isso significa que uma função hash de 256 bits ofereceria aproximadamente 128 bits de segurança contra um adversário quântico, o que ainda é considerado computacionalmente inviável de quebrar. Para comparação, os algoritmos de chave pública usados na blockchain (ECDSA, EdDSA) são completamente quebrados pelo algoritmo de Shor em um computador quântico suficientemente poderoso.
Em agosto de 2024, o NIST publicou o FIPS 205 (SLH-DSA), um padrão de assinatura digital baseado em hash derivado do SPHINCS+. Esse esquema constrói sua segurança inteiramente na força das funções hash, representando um forte endosse institucional de que SHA-2 e SHA-3 permanecem confiáveis em um mundo pós-quântico.
O consenso entre o NIST, a UE e outros órgãos de padronização até 2025 é claro: não há necessidade de novos algoritmos de hash "pós-quânticos". SHA-256 e SHA-3 com saídas de 256 bits ou maiores devem permanecer seguros no futuro previsível. O esforço urgente de migração pós-quântica foca na substituição da criptografia de chave pública, não das funções hash.
Hashing de Senhas e Derivação de Chaves
Embora SHA-256 e SHA-3 sejam excelentes funções hash criptográficas de uso geral, elas não são adequadas para armazenamento de senhas. O motivo é a velocidade: essas funções são projetadas para serem rápidas, o que significa que um atacante com acesso a um banco de dados de senhas vazadas pode testar bilhões de palpites de senhas por segundo usando GPUs ou hardware especializado.
Funções de hashing de senhas dedicadas resolvem esse problema sendo intencionalmente lentas e exigindo muita memória. O padrão recomendado atualmente é o Argon2id, que venceu a Competição de Hashing de Senhas em 2015. Outras opções amplamente utilizadas incluem bcrypt e scrypt.
Essas funções também usam um "sal" aleatório único para cada senha, impedindo que atacantes usem tabelas de consulta pré-computadas (tabelas arco-íris). A combinação de custo computacional, requisitos de memória e salting torna ataques de força bruta economicamente impraticáveis, mesmo quando bancos de dados de hash são comprometidos.
FAQ
Qual é a diferença entre hashing e criptografia?
Hashing é uma função unidirecional que produz uma saída de tamanho fixo e não pode ser revertida. A criptografia é um processo bidirecional onde os dados são transformados usando uma chave e podem ser descriptografados de volta à sua forma original usando a chave correspondente. O hashing é usado para verificação de integridade e autenticação, enquanto a criptografia é usada para confidencialidade.
Duas entradas diferentes podem produzir o mesmo hash?
Sim, isso é teoricamente possível e é chamado de colisão. No entanto, para funções hash seguras como SHA-256, encontrar tal colisão requer aproximadamente 2 à 128ª operações (o limite de aniversário), o que é computacionalmente inviável com a tecnologia atual ou previsível. Funções hash onde colisões foram praticamente demonstradas, como MD5 e SHA-1, são consideradas quebradas e não devem ser usadas para fins de segurança.
Por que o Bitcoin usa especificamente o SHA-256?
O SHA-256 foi escolhido para o Bitcoin porque fornece forte resistência a colisões, é bem analisado pela comunidade criptográfica, produz saídas de um tamanho adequado para ajuste de dificuldade de prova de trabalho e já estava amplamente implementado quando o Bitcoin foi lançado em 2009. Continua seguro, sem ataques práticos conhecidos contra ele.
Os computadores quânticos podem quebrar o hashing da blockchain?
Computadores quânticos representam risco mínimo para funções hash. O algoritmo de Grover pode acelerar buscas de hash por força bruta, mas apenas por um fator de raiz quadrada: um hash de 256 bits ainda forneceria 128 bits de segurança quântica, o que é considerado seguro. A verdadeira ameaça quântica para blockchains é para os esquemas de assinatura de chave pública (ECDSA), não para as funções hash.
Qual função hash o Ethereum usa?
O Ethereum usa Keccak-256, que está intimamente relacionado ao padrão NIST SHA-3, mas usa um preenchimento ligeiramente diferente. É usado para derivação de endereços, geração de chaves de estado, seletores de funções de contratos inteligentes e hashing de tópicos de eventos. Assim como o SHA-256, o Keccak-256 não tem ataques práticos conhecidos e é considerado criptograficamente seguro.
Considerações Finais
Funções hash são blocos de construção essenciais da ciência da computação moderna e da cibersegurança. Quando combinadas com propriedades criptográficas como resistência a colisões e resistência a pré-imagem, elas permitem as garantias de segurança que tornam as redes blockchain possíveis.
Desde a mineração de Bitcoin até contratos inteligentes do Ethereum e esquemas de assinatura pós-quântica, o hashing continua sendo uma tecnologia fundamental. Entender como as funções hash funcionam, suas propriedades de segurança principais e suas aplicações no mundo real ajuda qualquer pessoa interessada na tecnologia blockchain a compreender por que esses sistemas são considerados seguros.
Leituras Adicionais
O que é um Algoritmo de Consenso de Blockchain?
O que é Bitcoin e como funciona?
Prova de Trabalho (PoW) vs. Prova de Participação (PoS)
Princípios Gerais de Segurança
Uma Introdução ao Script do Bitcoin
Aviso: Este conteúdo é apresentado a você em uma base "como está" para informações gerais e fins educacionais apenas, sem representação ou garantia de qualquer tipo. Não deve ser interpretado como conselho financeiro, legal ou profissional de qualquer tipo. Você deve buscar seu próprio conselho de consultores profissionais apropriados. Onde o conteúdo é contribuído por um terceiro, observe que as opiniões expressas pertencem ao contribuinte terceiro e não refletem necessariamente as da Binance Academy. Os preços dos ativos digitais podem ser voláteis. O valor do seu investimento pode cair ou subir e você pode não recuperar o valor investido. Você é o único responsável por suas decisões de investimento e a Binance Academy não é responsável por quaisquer perdas que você possa incorrer. Para mais informações, consulte nossos Termos de Uso, Aviso de Risco e Termos da Binance Academy.
