A árvore de Merkle é uma estrutura de dados usada na computação e na criptografia. No mercado de criptomoedas, ela designa a estrutura que reúne o resumo das transações registradas na blockchain por meio da função hash. A árvore de Merkle ajuda a verificar os blocos de transações da blockchain de forma simples e eficiente. Neste artigo você encontra a resposta para a pergunta: o que é uma árvore de Merkle?
A árvore de Merkle foi criada por Ralph Merkle, que patenteou o conceito em 1979 e voltou a tratar dele no artigo "Assinatura digital baseada em função de criptografia convencional", publicado em 1987. A árvore de Merkle é uma estrutura de dados em formato de esquema, formada por hashes. Nela, os códigos hash dos dados são organizados de baixo para cima, como um diagrama. A combinação dos hashes da base determina o valor dos hashes das camadas superiores.
A integridade dos dados no sistema é garantida por essa organização em esquema e pela soma sequencial dos valores hash, de baixo para cima. A estrutura é usada em transferências de dados de pessoa para pessoa, ponto a ponto, e na verificação dos dados transferidos. Com a árvore de Merkle é possível saber se os dados ou blocos de dados transferidos foram danificados ou falsificados. A integridade desses blocos pode ser confirmada por ela.
Como funciona a árvore de Merkle?
As árvores de Merkle são formadas por hashes dentro dos blocos. Na base da árvore ficam os dados das transações. O valor hash (o código hash) desses dados é obtido rodando a função hash. Em seguida, os valores da base do diagrama são combinados entre si, e o resultado é levado para as linhas de cima. É desse processo que nasce a árvore de Merkle. No fim, o valor hash no topo do diagrama é chamado de hash raiz ou raiz de Merkle (merkle root). O valor calculado da raiz revela se há erros nos blocos. Havendo incompatibilidade nos valores que formam o hash raiz, o algoritmo do sistema continua trabalhando com as funções hash até produzir uma raiz de Merkle sem erros.
Por que a árvore de Merkle é usada no Bitcoin?
Ela facilita o trabalho dos mineradores que precisam verificar blocos na blockchain do Bitcoin. Esses mineradores validam os blocos rodando a função hash. Na blockchain do Bitcoin, os dados são ordenados e colocados na árvore de Merkle. Depois, o hash raiz é obtido com o trabalho das funções hash do algoritmo. Esse hash raiz também pode ser usado nas operações de mineração seguintes. Assim, em vez de calcular o hash de todos os blocos, os mineradores conseguem seguir com o trabalho calculando apenas o hash da raiz. A árvore de Merkle também traz soluções para as blockchains de outras criptomoedas além do Bitcoin.
