O que é uma árvore Merkle?
Merkle Tree é um tipo de estrutura frequentemente usada para verificar rapidamente a integridade dos dados, principalmente em um conjunto de dados. Também é conhecida como árvore hash, que possui, na maioria dos casos, implementações binárias, com cada nó geralmente tendo dois “nós filhos”. No mundo das criptomoedas, essa estrutura é usada para criptografar dados de blockchain de maneira mais eficiente e segura, mas exploraremos isso com mais detalhes posteriormente.
Merkle Tree é uma forma de verificação de conteúdo rápida e segura em conjuntos de big data. Também ajuda a verificar a consistência e o conteúdo dos dados. Merkle Tree é uma estrutura de dados matemática composta por hashes de vários blocos. Esses hashes resumem todas as transações em um determinado bloco, graças às quais as Merkle Trees são frequentemente usadas em
Criptografia
.
Merkle Tree possui três tipos de nós que podem ser encontrados dentro dela. São os seguintes:
Nó raiz: é armazenado diretamente no cabeçalho e também é conhecido como raiz Merkle.
Nó folha
: consiste em valores hash para dados de transação. Cada transação no bloco tem seus dados criptografados, levando à criação da transação ID, que é então armazenada em nós folha.
Nó não folha: Por último, a árvore Merkle também possui um nó não folha, que contém valores hash de “seus filhos”. Conhecidos como nós intermediários, eles são essencialmente valores hash usados até que o processo atinja a raiz da árvore.
A essência do Merkle Tree é tal que permite que as transações sejam Verificado sem usar muitos dados. Isso ajuda a reduzir o processamento CPI, ao mesmo tempo que mantém segurança aprimorada, sendo que ambos são necessários.
A árvore Merkle tem
todas as transações agrupadas em pares, para que cada par tenha um hash computado que é armazenado diretamente no nó pai acima do par fornecido. Isso se aplica aos nós acima deles e acima deles e assim por diante, até que a raiz Merkle seja alcançada.
Exemplo de árvore Merkle com raiz Merkle, nó não folha e nó folha, Fonte: geeksforgeeks.org
Vejamos um exemplo fácil. No gráfico abaixo, temos transações diferentes 4, rotuladas como A, B, C, D. Cada transação é primeiro hash, deixando-a na forma de Hash A, Hash B etc. Neste caso, são o hash AB e o hash CD, que são os resultados dos hash filhos A e hash B, para o hash AB e dos hash C e hash D, para o hash CD.
Esses dois novos hashes, que são hashes pai das quatro transações originais, são então hash novamente. Isso os leva a alcançar um hash ABCD e uma raiz da Merkle Tree. A raiz Merkle é então responsável por um resumo dos dados mantidos nas transações iniciais. Essas informações são armazenadas em um cabeçalho de bloco.
Benefícios da árvore Merkle
Merkle Tree como estrutura oferece vários benefícios que são então explorados também no
Criptomoeda
e tecnologia blockchain. Antes de vermos como esses benefícios são usados, vamos primeiro ver o que são.
Sem atrasos: quando árvores Merkle são usadas, o Transferir dos dados por meio do Rede pode ser feito sem atrasos. Sem o uso do Merkle Tree, isso não é possível, pois todos os dados precisam ser transferidos por todo o Rede para verificação, causando atrasos.
Processo de verificação eficiente: muito pouca memória precisa ser usada durante o processo de verificação graças à forma como os dados são estruturados. Isso significa que a validade e a integridade da transação podem ser Verificado quase imediatamente. Além disso, graças a isso, apenas uma pequena quantidade de dados precisa ser enviada em comparação com o tamanho do conjunto de dados.
Pouco espaço em disco: , juntamente com o benefício mencionado acima, está também o tamanho do espaço em disco que a Merkle Tree ocupa, que é consideravelmente pequeno em comparação com outras estruturas de dados. Isso leva à verificação de transações com largura de banda viável e poder computacional.
Detecção de adulteração: cada transação é armazenada na Merkle Tree. Isso significa que qualquer tentativa de alteração de uma transação leva ao alcance da raiz Merkle e contém as informações no cabeçalho do bloco. Assim, fica fácil comparar os dados presentes com a versão adulterada e detectar rapidamente qualquer tentativa de fraude.
Árvores Merkle e criptomoedas
Embora poucas pessoas não técnicas estejam prestando atenção às Merkle Trees na comunidade de criptomoedas, os cypherpunks ou apoiadores tecnicamente avançados de criptomoedas conhecem o valor das Merkle Trees nesta esfera. Merkle Trees são essenciais para a tecnologia blockchain, pois facilitam a verificação rápida e fácil. Na verdade, este tipo de verificação não seria possível com nenhuma outra técnica ou estrutura.
Árvore Merkle
dá poder sobre enormes conjuntos de dados aos desenvolvedores, que podem compactá-los de forma eficaz, livrando-se de todos os dados desnecessários, apenas para posteriormente transformá-los em hashes. No mundo das criptomoedas, os benefícios disto podem manifestar-se, por exemplo, através da eficiência de combustível, escalabilidade eficaz, autenticação básica de pagamentos, verificação de transações ou estrutura leve.
Merkle Tree dividindo os dados em pequenas partes de informações, Fonte: simplilearn.com
Merkle Trees em criptografia – Bitcoin e Ethereum
Analisando brevemente o que são Merkle Trees ou como são usadas no espaço das criptomoedas, vamos agora mergulhar em exemplos mais concretos de seus casos de uso.
Bitcoin
Muitos de vocês provavelmente já adivinharam, mas o Bitcoin usa Merkle Trees em muitos casos. O mais óbvio é usá-lo no cabeçalho do bloco Bitcoin, já que nele é colocado o hash de cada transação que é Disponível dentro do bloco.
No entanto, isso não é tudo. A estrutura Merkle Tree também é usada em
Mineração ou verificação
. Para os mineiros, a raiz Merkle é crucial para melhorar a eficiência de todos os processos. Graças a esta estrutura e às suas características inerentes, uma vez que o mineiro verifica o cabeçalho dos blocos depois de terem sido transformados na Árvore Merkle. Verificar a raiz Merkle significa, portanto, uma abordagem muito mais eficaz do que verificar o bloco inteiro.
Esta estrutura também é utilizada em verificação, mais especificamente nos casos em que um nó é operado a partir de um dispositivo relativamente fraco. Se o dispositivo tiver recursos limitados, em vez de baixar cada hash e bloco, ele usará a prova Merkle, que contém o Confirmação de rede de que uma transação está presente em um bloco. Isso reduz o número de hashes e permite que a verificação ocorra sem a necessidade de tantos recursos energéticos.
Ethereum
A segunda maior criptomoeda, Ethereum, é baseada na Merkle Patricia Tree, uma versão modificada da Merkle Tree. Isto significa que cada bloco nesta blockchain consiste não em uma, mas em três Merkle Trees, com cada uma das raízes tendo sua própria finalidade.
O primeiro é a raiz de cada transação. O segundo mostra o estado da transação. E a última raiz é o recebimento de toda a transação. Qualquer pessoa pode assim olhar para a raiz Merkle e ver se a transação se encontra num bloco específico, se já foi aprovada e enviada e qual foi o saldo da transação, graças às Árvores Merkle.
Conclusão
A estrutura da árvore Merkle tornou-se cada vez mais importante no movimento da criptografia depois que as criptomoedas foram inventadas. Com o primeiro, Bitcoin, utilizando Merkle Trees em muitos aspectos, este tipo de estrutura se espalhou também para outras criptomoedas graças aos benefícios que proporciona aos projetos subjacentes.
OrangeX.com Equipe