Um bloco de Bitcoin pode conter milhares de transações, mas o cabeçalho do bloco tem apenas 80 bytes. É a árvore de Merkle que permite «proteger» cada transação do bloco usando tão poucos dados.
Criptomoeda relacionada: $BTC cotada a 75,016.01 (24h -1.03%).
Que tipo de árvore:
Uma árvore de Merkle é uma estrutura em árvore que combina grandes volumes de dados em pares, aplicando hashes e juntando os resultados camada por camada. Na camada mais baixa fica o hash de cada transação; os hashes de cada par adjacente são concatenados e passam por uma nova função hash, formando a camada seguinte. O processo continua até restar apenas um hash, chamado raiz de Merkle.
Essa estrutura leva o nome do criptógrafo Ralph Merkle e foi proposta no fim da década de 1970, muito antes do blockchain.
Por que é difícil alterar:
O cabeçalho de cada bloco do Bitcoin contém a raiz de Merkle. Se qualquer transação do bloco for alterada, seu hash muda. Essa mudança se propaga até a raiz de Merkle, o hash do bloco também muda e os blocos seguintes deixam de corresponder.
Portanto, basta acompanhar esse único hash no cabeçalho do bloco para acompanhar todas as transações nele contidas.
Como as carteiras leves verificam transações:
Para provar que uma transação está em determinado bloco, não é preciso ter o bloco inteiro: bastam alguns hashes do caminho entre essa transação e a raiz de Merkle. Se o número de transações dobrar, será necessário apenas mais um hash. Para um bloco com milhares de transações, pouco mais de uma dezena de hashes é suficiente.
A verificação simplificada de pagamentos (SPV), descrita na seção 8 do white paper do Bitcoin, funciona assim: o cliente leve armazena apenas os cabeçalhos dos blocos e, ao solicitar a um nó um caminho de Merkle, pode confirmar que a transação foi incluída em um bloco.
Aplicação na prova de reservas:
As provas de reservas das corretoras também usam árvores de Merkle: a plataforma organiza os saldos de todos os usuários em uma árvore de Merkle e publica o hash raiz. Cada usuário recebe seu próprio caminho e pode verificar por conta própria se seu saldo foi incluído, sem que os detalhes dos outros sejam divulgados.
Minha opinião:
A ideia das árvores de Merkle é simples: usar um hash raiz curto para representar uma grande quantidade de dados. É esse design que torna possíveis aplicações como carteiras para celular e provas de reservas. Não invista pesado em produtos que você ainda não entende; experimente primeiro com pequenas quantias.
Você já conhecia isso?
Dê uma olhada, mas não faça igual. Decida por conta própria.