keccak

O Keccak é um algoritmo de hash que transforma dados de qualquer tamanho em uma "impressão digital" de comprimento fixo e constitui o núcleo do padrão SHA-3, adotado pelo NIST. No ecossistema Ethereum, ele é amplamente utilizado para gerar endereços, definir seletores de funções em contratos inteligentes e registrar logs de eventos. O Keccak utiliza uma arquitetura "sponge", promovendo uma mistura completa dos dados por meio dos processos de absorção e extração, aliados a 24 rodadas de permutação. Essa estrutura permite diferentes tamanhos de saída, garantindo um equilíbrio eficiente entre segurança e performance.
Resumo
1.
Keccak é uma função de hash criptográfica escolhida como base para o padrão SHA-3.
2.
A blockchain Ethereum utiliza o algoritmo Keccak-256 para gerar endereços e hashes de transações.
3.
Keccak emprega um design de construção sponge, oferecendo alta segurança e comprimentos de saída flexíveis.
4.
Comparado aos algoritmos SHA-2 tradicionais, Keccak oferece maior resistência a colisões e vantagens de desempenho.
keccak

O que é o algoritmo Keccak?

O algoritmo Keccak é uma família de funções hash criptográficas criadas para transformar dados de entrada de qualquer tamanho em uma impressão digital digital de comprimento fixo. Ele é a base do padrão SHA-3 e amplamente utilizado em aplicações de blockchain.

Uma função hash pode ser vista como uma “máquina de impressão digital”: a mesma entrada sempre gera a mesma saída, mas é praticamente impossível reconstruir a entrada original apenas com base nessa saída. O Keccak permite comprimentos de saída variáveis, sendo o mais comum o de 256 bits (Keccak-256). Esse resultado de tamanho fixo viabiliza verificações, indexações e checagens de consistência eficientes.

Por que o Keccak é importante no Web3?

O Keccak é indispensável porque atua como a principal “máquina de impressão digital” de sistemas como o Ethereum, sustentando processos-chave como geração de endereços, seletores de funções de smart contracts e indexação de logs de eventos.

Por exemplo, em exchanges como a Gate, ao depositar ETH, o endereço iniciado por “0x” é obtido ao aplicar Keccak-256 à chave pública e utilizar os 20 bytes finais. Para chamadas de contrato, o seletor de função é gerado aplicando Keccak-256 à assinatura da função e extraindo os 4 primeiros bytes. Logs de eventos utilizam Keccak para criar tópicos que permitem buscas rápidas.

Como funciona o algoritmo Keccak?

O Keccak utiliza uma “construção esponja”. Imagine uma esponja: ela primeiro “absorve” os dados de entrada para misturar o estado interno e, em seguida, “espreme” a saída desejada do hash.

Etapa 1, Absorção: A mensagem de entrada é dividida em blocos, que são aplicados com XOR na “área de escrita” do estado—como absorver água em uma esponja e incorporar os dados ao estado.

Etapa 2, Permutação: Uma função de permutação (Keccak-f) é aplicada em várias rodadas para embaralhar os bits do estado. Essa permutação é um processo reversível de “embaralhamento”; o Keccak-f[1600] normalmente executa 24 rodadas.

Etapa 3, Extração: A saída é lida da “área de leitura” do estado. Para saídas maiores, novas permutações são aplicadas antes de extrair mais dados—assim como espremer mais água de uma esponja conforme necessário.

Com os parâmetros padrão do Keccak-256, o estado interno possui 1600 bits, divididos em uma taxa (área de leitura/escrita) de 1088 bits e uma capacidade (buffer de segurança) de 512 bits. Quanto maior a capacidade, maior a segurança.

Como o Keccak é utilizado no Ethereum?

Existem quatro aplicações principais do Keccak no Ethereum: geração de endereços, seletores de funções, tópicos de eventos e indexação de estruturas de dados.

  • Geração de Endereços: Um endereço Ethereum é normalmente gerado aplicando Keccak-256 a uma chave pública e usando os 20 bytes finais para formar o endereço com prefixo “0x”. Os endereços de depósito exibidos na Gate seguem esse método. Alguns formatos de checksum de endereço também utilizam Keccak para verificação de caixa.
  • Seletores de Função: A assinatura textual de uma função (ex: "transfer(address,uint256)") é hasheada com Keccak-256, e os 4 primeiros bytes são usados como seletor. O seletor famoso "0xa9059cbb" segue essa regra.
  • Tópicos de Evento: O nome do evento e os tipos de parâmetros são concatenados e hasheados com Keccak-256 para gerar um tópico. Isso permite buscas rápidas e eficientes de eventos on-chain.
  • Indexação de Estruturas de Dados: Em árvores de estado ou chaves de mapeamento, Keccak-256 faz o hash das chaves para minimizar colisões e acelerar consultas.

Qual é a diferença entre Keccak e SHA3?

A principal diferença entre Keccak e SHA3 está nos parâmetros de preenchimento (“separação de domínio”). O SHA3-256 utiliza o sufixo de preenchimento 0x06, enquanto o Keccak-256 do Ethereum utiliza 0x01.

Isso significa que entradas idênticas geram saídas diferentes para Keccak-256 e SHA3-256. Em desenvolvimento ou auditorias, é fundamental confirmar se está usando “Keccak-256” ou “SHA3-256”—eles não são intercambiáveis. Quando o NIST padronizou o SHA-3 em 2015, fez esse ajuste de separação de domínio (fonte: NIST, 2015).

Como usar o Keccak corretamente no desenvolvimento

Primeiro: Confirme se sua entrada é bytes ou texto. Se for uma string, sempre codifique como UTF-8; para strings hexadecimais, converta para bytes puros e não inclua o prefixo “0x” como parte dos dados.

Segundo: Escolha a função correta. Na EVM, keccak256 (Keccak-256) é o padrão. Algumas bibliotecas se referem ao SHA3-256 como sha3—verifique cuidadosamente a documentação e a versão da biblioteca para evitar equívocos.

Terceiro: Faça validação cruzada dos resultados. Use duas bibliotecas ou ferramentas independentes para calcular os hashes e garantir que sejam idênticos; seletores conhecidos como "transfer(address,uint256)" resultando em "0xa9059cbb" servem como testes.

Considere hashes como impressões digitais irreversíveis em seus fluxos de trabalho—eles não são criptografia nem números aleatórios. Para evitar ataques de rainbow table, sempre adicione um salt aleatório antes de hashear, e faça o hash do salt junto com os dados.

Quais são os riscos e armadilhas mais comuns com Keccak?

Há três armadilhas principais: diferenças de preenchimento, erros de codificação e uso inadequado em aplicações.

  • Diferenças de Preenchimento: Usar Keccak-256 no lugar do SHA3-256 gera resultados diferentes, podendo causar divergência de endereços ou seletores—o que pode levar à perda de fundos ou falhas em chamadas de contrato.
  • Erros de Codificação: Tratar texto como hexadecimal ou o oposto altera completamente o resultado do hash. Padronize a codificação no desenvolvimento e cubra casos extremos nos testes.
  • Uso Inadequado na Aplicação: Hash não é criptografia. Armazenar dados sensíveis após um único hash ainda pode ser vulnerável a ataques de dicionário. Sempre adicione salt aleatório e controle políticas de acesso. Para processos de segurança financeira (como o reconhecimento de depósitos on-chain da Gate), realize testes e auditorias rigorosos antes do lançamento.

Quão seguro e eficiente é o Keccak?

A segurança do Keccak está em sua construção esponja e no parâmetro de capacidade. Para Keccak-256, a resistência a colisão é de cerca de 2^128 operações; a resistência à pré-imagem é de aproximadamente 2^256 operações.

Até janeiro de 2025, não existem ataques práticos de colisão ou pré-imagem conhecidos contra os parâmetros padrão; as pesquisas concentram-se em variantes de menos rodadas ou limites teóricos. Em desempenho, as principais bibliotecas já contam com implementações otimizadas para CPU/GPU de alta performance; a aceleração por hardware (como ASICs) está avançando para demandas elevadas.

Qual é a perspectiva futura para o Keccak?

O Keccak continuará sendo central para a segurança de sistemas como núcleo do SHA-3; no ecossistema EVM, é fundamental para endereços, seletores e indexação de logs. Com a evolução da aceleração por hardware e das bibliotecas, desempenho e ferramentas continuarão avançando. Novos casos de uso (como provas de conhecimento zero) podem adotar hashes alternativos como Poseidon, mas isso não compromete a estabilidade do Keccak para tarefas gerais de impressão digital e indexação. Para desenvolvedores, desde que se diferencie Keccak-256 de SHA3-256 e se gerencie rigorosamente codificação e testes, Keccak segue como ferramenta de confiança em baixo nível.

FAQ

Quero gerar um endereço de carteira usando Keccak—por onde começar?

No Ethereum, Keccak-256 é utilizado para gerar endereços de conta—hasheando sua chave pública com Keccak-256 e usando os 20 bytes finais como endereço. Se você utiliza a Gate ou outro app de carteira, esse processo é automático; se estiver desenvolvendo smart contracts, use a função nativa keccak256() do Solidity. Experimente bibliotecas como Web3.js para observar como os hashes convertem dados de qualquer tamanho em resultados fixos de 256 bits.

Por que ferramentas diferentes produzem resultados distintos de hash Keccak?

Isso normalmente se deve a diferenças na codificação dos dados de entrada. Keccak-256 espera dados em bytes—se você inserir strings de texto, as ferramentas podem tratar a codificação de caracteres de formas diferentes (UTF-8 vs ASCII). A solução é padronizar sua codificação e especificar explicitamente o formato de entrada durante o desenvolvimento; plataformas como a Gate normalmente fornecem instruções claras. Também confirme se está usando Keccak-256 ou SHA3-256—os resultados diferem mesmo para entradas idênticas.

Além da geração de endereços, para que mais o Keccak é usado em smart contracts?

Keccak-256 é amplamente utilizado em smart contracts: verificação de integridade de dados (hash de dados de transação para comparação), geração de IDs únicas (hash de parâmetros combinados) ou implementação de controle de acesso (armazenamento de informações sensíveis como hash em vez de texto puro). Alguns contratos fazem hash dos dados do usuário antes do armazenamento para evitar a exposição de valores brutos. Essa flexibilidade faz do Keccak uma ferramenta fundamental do Web3—mas lembre-se: o hash é unidirecional, não é possível recuperar os dados originais a partir dele.

Preciso de conhecimento avançado em criptografia para aprender Keccak?

Não. Como usuário Web3 ou desenvolvedor iniciante, basta entender que “Keccak é uma função hash unidirecional—entradas idênticas sempre produzem saídas idênticas.” Estudo avançado de criptografia é opcional (para auditorias de segurança ou pesquisa); a maioria dos desenvolvedores apenas utiliza funções de biblioteca prontas, como a keccak256 do Solidity. Comece testando aplicações reais, como assinaturas ou geração de endereços na Gate ou em testnets.

O que é importante ao usar Keccak em aplicações off-chain?

Ao usar Keccak em código fora da blockchain (front-end ou back-end), certifique-se de que a versão da biblioteca corresponde à utilizada on-chain—geralmente Keccak-256. Usar bibliotecas padrão como Web3.js ou ethers.js evita a maioria dos problemas, pois implementam Keccak corretamente por padrão. Fique atento à serialização de dados—se gerar hashes fora da blockchain para validação on-chain, os métodos de serialização (como codificação ABI) devem ser idênticos. Sempre valide cuidadosamente em ambientes de teste, principalmente para assinaturas ou verificação de contratos.

Uma simples curtida já faz muita diferença

Compartilhar

Glossários relacionados
época
No contexto de Web3, o termo "ciclo" descreve processos recorrentes ou períodos específicos em protocolos ou aplicações blockchain, que se repetem em intervalos determinados de tempo ou blocos. Exemplos práticos incluem eventos de halving do Bitcoin, rodadas de consenso do Ethereum, cronogramas de vesting de tokens, períodos de contestação para saques em soluções Layer 2, liquidações de funding rate e yield, atualizações de oráculos e períodos de votação em processos de governança. A duração, os critérios de acionamento e o grau de flexibilidade desses ciclos variam entre diferentes sistemas. Entender esses ciclos é fundamental para gerenciar liquidez, otimizar o momento das operações e delimitar fronteiras de risco.
Descentralizado
A descentralização consiste em um modelo de sistema que distribui decisões e controle entre diversos participantes, sendo característica fundamental em blockchain, ativos digitais e estruturas de governança comunitária. Baseia-se no consenso de múltiplos nós da rede, permitindo que o sistema funcione sem depender de uma autoridade única, o que potencializa a segurança, a resistência à censura e a transparência. No setor cripto, a descentralização se manifesta na colaboração global de nós do Bitcoin e Ethereum, nas exchanges descentralizadas, nas wallets não custodiais e nos modelos de governança comunitária, nos quais os detentores de tokens votam para estabelecer as regras do protocolo.
O que significa Nonce
Nonce é definido como um “número usado uma única vez”, criado para assegurar que determinada operação ocorra apenas uma vez ou siga uma ordem sequencial. Em blockchain e criptografia, o uso de nonces é comum em três situações: nonces de transação garantem que as operações de uma conta sejam processadas em sequência e não possam ser duplicadas; nonces de mineração servem para encontrar um hash que satisfaça um nível específico de dificuldade; já nonces de assinatura ou login impedem que mensagens sejam reaproveitadas em ataques de repetição. O conceito de nonce estará presente ao realizar transações on-chain, acompanhar processos de mineração ou acessar sites usando sua wallet.
cifra
Um algoritmo criptográfico consiste em um conjunto de métodos matemáticos desenvolvidos para proteger informações e verificar sua autenticidade. Entre os tipos mais comuns estão a criptografia simétrica, a criptografia assimétrica e os algoritmos de hash. No universo blockchain, esses algoritmos são essenciais para a assinatura de transações, geração de endereços e garantia da integridade dos dados, fatores que asseguram a proteção dos ativos e a segurança das comunicações. A execução de operações em wallets e exchanges — como requisições de API e retiradas de ativos — depende diretamente da implementação robusta desses algoritmos e de uma gestão eficiente de chaves.
Imutável
A imutabilidade é um princípio essencial da tecnologia blockchain, impedindo que informações sejam modificadas ou removidas após seu registro e a obtenção das confirmações necessárias. Essa característica, viabilizada pelo encadeamento de funções hash criptográficas e mecanismos de consenso, assegura a integridade e autenticidade do histórico de transações, estabelecendo uma base confiável para ecossistemas descentralizados.

Artigos Relacionados

Como apostar ETH?
iniciantes

Como apostar ETH?

Com a conclusão da fusão, o Ethereum finalmente fez a transição de PoW para PoS. Os apostadores agora mantêm a segurança da rede apostando ETH e recebendo recompensas. É importante escolher métodos e prestadores de serviços apropriados antes de apostar. Com a conclusão da fusão, o Ethereum finalmente fez a transição de PoW para PoS. Os apostadores agora mantêm a segurança da rede apostando ETH e recebendo recompensas. É importante escolher métodos e prestadores de serviços apropriados antes de apostar.
2022-11-21 10:08:45
O que é EtherVista, o autoproclamado "Novo Padrão para DEX"?
intermediário

O que é EtherVista, o autoproclamado "Novo Padrão para DEX"?

Este artigo fornece uma análise aprofundada da emergente exchange descentralizada (DEX) EtherVista e seu token de plataforma, VISTA. Explora como a EtherVista visa desafiar o modelo existente de AMM (Automated Market Maker), especialmente o da Uniswap, por meio de seus mecanismos de negociação exclusivos e modelo de distribuição de taxas. O artigo também explora os contratos inteligentes da EtherVista, a tokenomia e como atrai usuários ao oferecer taxas de gás baixas e um inovador sistema de distribuição de receitas.
2024-09-10 15:49:43
O que é Neiro? Tudo o que você precisa saber sobre NEIROETH em 2025
intermediário

O que é Neiro? Tudo o que você precisa saber sobre NEIROETH em 2025

Neiro é um cachorro da raça Shiba Inu que inspirou o lançamento de tokens Neiro em diferentes blockchains. Em 2025, o Neiro Ethereum (NEIROETH) evoluiu para uma das principais moedas meme com um valor de mercado de $215 milhões, mais de 87.000 detentores e listagens em 12 grandes exchanges. O ecossistema agora inclui um DAO para governança comunitária, uma loja oficial de mercadorias e um aplicativo móvel. NEIROETH implementou soluções de camada 2 para melhorar a escalabilidade e consolidou sua posição entre as 10 principais moedas meme temáticas de cachorro por capitalização de mercado, apoiado por uma comunidade vibrante e influenciadores cripto líderes.
2024-09-05 15:37:06