Escrito por Pablo Gómez
Founder & CEO da Metlabs · Revisado em 11 de outubro de 2026
O Keccak-256 se baseia na construção esponja da família Keccak, projetada por Guido Bertoni, Joan Daemen, Michael Peeters e Gilles Van Assche. Opera com a permutação Keccak-f[1600] sobre um estado de 1600 bits, absorve a mensagem e depois extrai uma saída de 256 bits. O Keccak venceu a competição SHA-3 do NIST em 2012, e o Ethereum o adotou em seu opcode KECCAK256 antes de o padrão ser finalizado.
O ponto que mais gera confusão é que Keccak-256 não é intercambiável com SHA3-256. A única diferença está no byte de separação de domínio no preenchimento (padding): o Keccak original usa 0x01 e o SHA3-256 oficial usa 0x06. Mesma permutação, saída diferente. Isso aconteceu porque o NIST modificou o padding da submissão original e publicou o FIPS 202 em agosto de 2015, enquanto o Yellow Paper do Ethereum especifica o Keccak vencedor do concurso, não a versão FIPS.
O Keccak-256 sustenta três mecanismos sistêmicos do Ethereum. Um endereço são os últimos 20 bytes do hash da chave pública. Um seletor de função são os primeiros 4 bytes do hash da assinatura: keccak256("transfer(address,uint256)") resulta em 0xa9059cbb. E as posições de armazenamento de mappings e arrays também são calculadas com keccak-256. O padrão de checksum de endereços EIP-55 também se apoia nele, o que torna essa função uma peça estrutural de toda a pilha EVM.
Também conhecido como
- Keccak256





