Árvores de Merkle: integridade de transações em escala
Construa árvores de Merkle e gere provas de inclusão com eficiência.
Árvores de Merkle: integridade de transações em escala é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.
Problema: verificação eficiente de transações
Um bloco do Bitcoin contém cerca de 2000 transações. Para provar que a transação T está incluída sem baixar todas as 2000 transações, precisamos de uma prova compacta. As árvores de Merkle resolvem isso: o tamanho da prova é O(log n) resumos criptográficos, em vez de O(n) transações.
Construção de uma árvore de Merkle
Folhas: SHA256d (SHA256 duplo) de cada transação. Pai: SHA256d(left_child_hash || right_child_hash). Repita até obter um único resumo criptográfico raiz. Se houver um número ímpar de nós, duplique o último nó. A raiz é a raiz de Merkle armazenada no cabeçalho do bloco (32 bytes).
Raiz de Merkle em Python
import hashlib def sha256d(x): return hashlib.sha256(hashlib.sha256(x).digest()).digest() def merkle_root(txids): if len(txids)%2: txids.append(txids[-1]) while len(txids)>1: txids=[sha256d(txids[i]+txids[i+1]) for i in range(0,len(txids),2)] return txids[0].hex()
Prova de Merkle (prova de inclusão)
Para provar que a transação T está na posição i: forneça os resumos criptográficos irmãos em cada nível, da folha de T até a raiz (O(log n) resumos criptográficos). O verificador recalcula a raiz a partir de T e do caminho de resumos criptográficos irmãos. Se a raiz calculada corresponder à raiz de Merkle do cabeçalho do bloco, a inclusão de T estará comprovada.
Exemplo de tamanho de prova
1024 transações → a prova de Merkle = 10 resumos criptográficos = 320 bytes. Bloco completo = ~1 MB. Os clientes SPV baixam apenas o cabeçalho de 80 bytes + a prova de Merkle de 320 bytes para cada transação de seu interesse — economia de 99,97% na largura de banda em comparação com o download do bloco completo.
Detecção de adulterações
Se qualquer transação na árvore mudar, o resumo criptográfico de sua folha será alterado e essa alteração se propagará até modificar a raiz de Merkle. A raiz alterada não corresponderá mais ao cabeçalho do bloco (protegido pela prova de trabalho). Qualquer modificação poderá ser detectada calculando a raiz a partir das transações.
Árvore de prefixos de Merkle Patricia (Ethereum)
O Ethereum amplia as árvores de Merkle com árvores de prefixos (árvore de prefixos de Merkle Patricia): uma árvore de prefixos radix codificada com cada nó resumido por Merkle. Usada para: árvore de estado (saldos de contas), árvore de transações e árvore de recibos. Permite provar com eficiência o estado de uma conta sem os dados de um nó completo.
Estrutura montanhosa de Merkle
Uma estrutura montanhosa de Merkle (MMR) é uma estrutura de Merkle somente para acréscimo, adequada a dados em formato de registro. Novos elementos são acrescentados; os picos (raízes de subárvores com tamanho potência de 2) são mantidos. É usada em Grin/MimbleWimble e ZCash para obter provas compactas e eficientes sobre um registro somente para acréscimo.
Árvores Verkle
As árvores Verkle substituem as árvores de Merkle no roteiro do Ethereum (EIP-6800): usam compromissos vetoriais (compromissos polinomiais KZG) em vez de resumos criptográficos. Tamanho da prova: O(1), contra O(log n) nas árvores de Merkle. Isso permite que clientes sem estado verifiquem o estado sem armazenar a árvore de prefixos completa.
Transparência de certificados como registro de Merkle
A Transparência de certificados (RFC 6962) usa um registro de Merkle somente para acréscimo: cada certificado emitido por uma CA é uma folha. As provas de inclusão verificam se um certificado foi registrado. As provas de consistência verificam se o registro foi mantido somente para acréscimo (sem exclusões ou inserções). Os fornecedores de navegadores verificam SCTs por meio desse registro.
Modelo de objetos do Git
As árvores do Git (instantâneos de diretórios) são árvores de Merkle: cada nó da árvore calcula o resumo criptográfico de seus blobs de arquivos e subárvores. Um resumo criptográfico de commit identifica exclusivamente o estado de toda a base de código. É por isso que git checkout
Verificação rápida
Quantos resumos criptográficos uma prova de Merkle exige para comprovar a inclusão em uma árvore com 1024 folhas?
Recapitulação
As árvores de Merkle permitem provas de inclusão O(log n). O Bitcoin armazena a raiz de Merkle nos cabeçalhos dos blocos; os clientes SPV usam provas. O Ethereum amplia esse conceito para árvores de prefixos de Merkle Patricia. As árvores Verkle substituirão as árvores de Merkle para fornecer provas O(1). Próximo tópico: mineração por prova de trabalho e dificuldade.
Perguntas Frequentes
A aula “Árvores de Merkle: integridade de transações em escala” é grátis?
Sim — o texto completo de “Árvores de Merkle: integridade de transações em escala” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.
O que vou aprender em “Árvores de Merkle: integridade de transações em escala”?
Construa árvores de Merkle e gere provas de inclusão com eficiência. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cryptology Academy?
Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Árvores de Merkle: integridade de transações em escala”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cryptology Academy?
Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Cadeias de resumos e vinculação de blocos
- Árvores de Merkle: integridade de transações em escala
- Prova de trabalho: mineração e ajuste de dificuldade
- Script do Bitcoin e verificação de assinaturas UTXO