Gerador e Visualizador de Árvore de Merkle
Guia
Gerador e Visualizador de Árvore de Merkle
Cole uma lista de valores, escolha uma função de hash e veja imediatamente uma árvore Merkle visual com todos os hashes dos nós intermediários e a raiz Merkle final. Escolha SHA-256, SHA-1 ou Keccak-256 (a função de hash usada pelo Ethereum), ajuste a regra de folha ímpar do estilo Bitcoin ou a convenção de concatenação ordenada do OpenZeppelin, e exporte a árvore completa como JSON. Clique em qualquer nó no diagrama para copiar seu hash para a área de transferência.
Como usar
- Insira suas folhas no campo de texto, um valor por linha. Experimente o botão de exemplo para um conjunto rápido.
- Escolha uma função de hash: SHA-256 para uso geral, SHA-1 para sistemas legados ou Keccak-256 para raízes compatíveis com o Ethereum.
- Escolha como cada linha deve ser interpretada: como texto UTF-8 (padrão) ou como uma string hexadecimal já hashada.
- Escolha uma regra de folha ímpar e um modo de concatenação de pares que corresponda ao protocolo que você está alvo.
- Leia a raiz Merkle, role o diagrama SVG e baixe a exportação em JSON para ferramentas downstream.
Características
- Três funções de hash – SHA-256, SHA-1 e Keccak-256 cobrem os casos comuns do Bitcoin, sistemas legados e do Ethereum.
- Diagrama interativo SVG – Cada nó é clicável para cópia; os nós fantasmagóricos duplicados são desenhados com borda tracejada para que a estrutura seja honesta.
- Estratégias de folhas ímpares – Alternar entre duplicar a última (convenção do Bitcoin) e promover a última (carregar a folha não-pareada para cima sem alteração) para corresponder ao protocolo alvo.
- Modo de pares ordenados – Ative a concatenação ordenada do estilo OpenZeppelin quando precisar de raízes compatíveis com a popular biblioteca MerkleProof do Solidity.
- Entrada hexadecimal pré-hashada – Pule a hashificação da folha inteiramente ao colar digítos hexadecimais diretamente, útil quando as folhas subjacentes são grandes ou já estão canônicas.
- Exportação em JSON – Baixe uma cópia completa de todos os níveis, todos os hashes dos nós e os parâmetros escolhidos para reproduzibilidade.
Perguntas frequentes
-
O que é uma árvore Merkle?
Uma árvore Merkle é uma árvore binária de hashes criptográficos. As folhas são hashes dos dados de entrada, e cada nó pai é o hash da concatenação de seus dois filhos. O único hash na parte superior — a raiz Merkle — imprime todo o conjunto de dados: alterar qualquer folha altera a raiz. As árvores Merkle permitem provar que um valor específico pertence a um conjunto apenas compartilhando um número logarítmico de hashes de irmãos (a prova Merkle), o que é o motivo de elas impulsionar cabeçalhos do Bitcoin, estados do Ethereum, commits do Git e logs de Transparência de Certificados.
-
Por que o Bitcoin duplica a última hash quando um nível tem um número ímpar de nós?
Para manter a construção estritamente binária, o Bitcoin completa níveis com número ímpar duplicando a hash da direita para que ela possa ser parada com si mesma. Isso é fácil de implementar, mas introduz um defeito conhecido de segunda preimagem (CVE-2012-2459), onde um atacante pode, em alguns casos, criar uma lista diferente de folhas que produz a mesma raiz. Designes mais recentes preferem uma regra de 'promover' — levantar a hash não-pareada sem alteração — ou tags de separação de domínio entre hashes internos e folhas para fechar a lacuna.
-
Como o Keccak-256 difere de SHA-256 e SHA3-256?
O Keccak-256 é a construção original do sponge que venceu a competição NIST para SHA-3. Antes da padronização, a NIST mudou a regra de preenchimento, produzindo o SHA3-256, que é incompatível byte a byte com o Keccak-256 pré-padronização. O Ethereum fixou o Keccak-256 original antes da mudança, então a função 'keccak256' no Solidity não é a mesma que o SHA3-256. O SHA-256 faz parte da família SHA-2 independente e usa uma construção Merkle–Damgård; compartilha apenas o padrão de nome.
-
Por que algumas bibliotecas Merkle ordenam os pares antes de hashar?
Ordenar os hashes da esquerda e da direita antes da concatenação torna o hash do nó pai independente de qual filho é 'esquerdo' e qual é 'direito'. Isso significa que uma prova Merkle precisa apenas incluir hashes de irmãos, e não bits direcionais, o que torna as provas cerca de 30% menores na cadeia e o contrato verificador muito mais simples. A biblioteca MerkleProof.sol do OpenZeppelin usa essa convenção; os cabeçalhos clássicos do Bitcoin e do Ethereum não o fazem. A versão ordenada é principalmente vista em listas de airdrop, snapshots de governança e outros compromissos off-chain.
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em 16 de junho de 2026
