O que é uma árvore Merkle?

Se alguma vez se perguntou como é que os blockchains verificam os dados sem ter de armazenar ou verificar cada transação, a resposta está em algo chamado árvore Merkle. Não é vistoso nem badalado, mas é uma das razões pelas quais Bitcoin, Ethereum e outros blockchains conseguem manter-se eficientes, seguros e à prova de violação.

Quer seja um entusiasta de criptomoedas, criador de aplicações Web3 ou apenas a tentar perceber como funcionam estes sistemas, compreender as árvores Merkle é essencial.

Porque é que as árvores Merkle são importantes na blockchain

As blockchains dependem de três fatores para funcionarem corretamente: integridade dos dados, verificação rápida e eficiência de armazenamento. As árvores Merkle oferecem os três. Permitem-nos verificar se uma transação específica existe num bloco sem descarregar o conjunto de dados inteiro. Facilitam a deteção até das mais pequenas alterações em qualquer parte dos dados. E permitem que as carteiras leves funcionem em segurança sem serem nós completos.

A Bitcoin utiliza-as. O Ethereum utiliza uma versão mais avançada das mesmas. E a ideia em si existe desde a década de 1970.

O que é exactamente uma árvore Merkle

Uma árvore Merkle é uma estrutura de dados que organiza os dados de uma forma que torna-os fáceis de verificar, rastrear e resumir. Funciona pegando em pedaços individuais de dados, como transações, fazendo o hash de cada um e, em seguida, agrupando esses hashes em pares. Estes pares são novamente hashados, e este processo repete-se até que reste um único hash no topo da árvore. Este hash final é designado por raiz Merkle.

A raiz Merkle representa todas as transações abaixo dela. Se alterar uma única transação, a raiz também muda. É isso que torna a adulteração tão fácil de detetar nos sistemas blockchain.

Como funciona uma árvore Merkle na prática

Digamos que tem quatro transações: T1, T2, T3 e T4. Cada uma delas é hash, criando H1, H2, H3 e H4. Depois, emparelha-os assim:

H1 e H2 são hashados juntos para formar H12
H3 e H4 são hashados juntos para formar H34
H12 e H34 são hashados juntos para formar a raiz de Merkle

Agora tem um único hash que representa todas as quatro transações. Se alguém tentar alterar T2, o hash H2 será diferente, o que significa que H12 será diferente, o que significa que a raiz de Merkle final também será diferente. É assim que os blockchains identificam inconsistências quase instantaneamente.

Porque é que os blockchains dependem de árvores Merkle

As árvores Merkle tornam os sistemas blockchain eficientes e seguros de várias formas

Permitem a verificação sem dados completos
Não precisa de toda a blockchain para confirmar a sua transação. Alguns hashes são suficientes para provar que faz parte de um bloco

Preservam a integridade dos dados
Se algum dado for alterado, o hash no topo altera-se. Isto torna a adulteração óbvia

Suportam clientes leves
As carteiras que não armazenam a blockchain inteira ainda podem verificar transações em segurança utilizando provas de Merkle

Poupam espaço
Em vez de guardar cada transação, pode armazenar ou transmitir apenas a raiz e alguns hashes

Como a raiz de Merkle se ajusta a cada bloco

Na maioria das blockchains, a raiz de Merkle é guardada no cabeçalho do bloco. É isso que é hash durante a mineração e liga um bloco ao próximo. Se alguém tentar alterar uma transação, a raiz Merkle será alterada. Isto altera o hash do bloco, interrompendo a ligação com o bloco seguinte. Esta interrupção expõe imediatamente a adulteração e mantém a cadeia segura.

O que é uma prova Merkle

Uma prova Merkle é um caminho mínimo de hashes que comprova que um dado específico está incluído numa árvore Merkle. Em vez de enviar o bloco completo, envia apenas hashes suficientes para reconstruir a raiz Merkle e confirmar que a transação estava lá.

É isto que potencia a verificação simplificada dos pagamentos, também chamada SPV. As carteiras leves utilizam SPV para confirmar que uma transação foi incluída num bloco válido sem armazenar toda a blockchain.

Árvores Merkle para além da criptografia

Este conceito não é exclusivo da blockchain. As árvores Merkle são utilizadas em muitas áreas da computação

No Git, ajudam a rastrear alterações em ficheiros e o histórico de commits
No IPFS, verificam pedaços de ficheiros em nós distribuídos
Nas bases de dados distribuídas, tornam a sincronização mais rápida e segura
Nos sistemas de armazenamento na nuvem, ajudam a detetar a adulteração ou a perda de dados

Limitações das árvores Merkle e o que vem aí

As árvores Merkle são poderosas, mas não perfeitas. A sua estrutura é binária e rígida, o que nem sempre é o mais eficiente em termos de espaço. Árvores muito grandes podem tornar-se computacionalmente pesadas para atualizar ou verificar.

O Ethereum utiliza uma estrutura modificada chamada Árvore Merkle Patricia, que lida com dados de chave-valor e suporta a gestão de estado do Ethereum. Olhando para o futuro, os programadores do Ethereum estão a explorar algo chamado árvores Verkle. Utilizam um tipo diferente de prova criptográfica que pode reduzir o tamanho dos dados e tornar a sincronização dos nós mais rápida, o que é especialmente útil para escalar a rede.

As árvores Merkle podem parecer abstratas à primeira vista, mas resolvem um problema muito real. Ajudam os blockchains a manterem-se descentralizados, eficientes e seguros. Permitem verificar uma transação sem confiar em ninguém. E são uma das principais razões pelas quais um sistema descentralizado como o Bitcoin consegue funcionar.

Compreender as árvores de Merkle é como compreender as raízes do sistema. Não as vê todos os dias, mas sustentam tudo.

O que é o Synapse (SYN)?

À medida que os ecossistemas blockchain continuam a expandir-se e a diversificar-se, a necessidade de uma interoperabilidade perfeita entre redes torna-se cada vez mais urgente.

O que é o Trust Wallet Token (TWT)?

Com o crescimento da adoção das criptomoedas, as carteiras móveis tornaram-se a ferramenta ideal para o acesso móvel a ativos digitais. Entre elas, a Trust

O que é uma árvore Merkle?

Se alguma vez se perguntou como é que os blockchains verificam os dados sem ter de armazenar ou verificar cada transação, a resposta está em

O que são sidechains em blockchain?

A escalabilidade, as altas taxas de gás e a falta de coordenação entre cadeias têm sido os estrangulamentos de longa data do blockchain. As cadeias


Criar uma conta

Crie uma conta agora para usar seus conhecimentos