Cos’è un albero Merkle?

que-es-un-arbol-merkle
6 min read

Nel contenuto di qualsiasi blocco Bitcoin possiamo trovare una struttura che si chiama Albero di Merkle o Merkle Tree. Sebbene molti di noi non abbiano molto chiaro cosa sia, questa è una componente vitale per il funzionamento di blockchain.

Ecco perché oggi faremo una revisione generale di questi alberi, che, sebbene non siano piantati su terraferma o irrigati, hanno prodotto molti buoni frutti. Tanto che è persino normale vedere persone provenienti dallo spazio crittografico con un Merkle Tree stampato su magliette, cappellini e laptop (mmm, forse potremmo sorteggiarne qualcuna nel nostro gruppo di Telegram).

Gli alberi di merkle sono una struttura di dati creata con lo scopo di rendere più efficiente la verifica di grandi quantità di dati.

Per fare ciò, mettono in relazione questi dati tramite tecniche crittografiche e di gestione delle informazioni.

Questa struttura ad albero o dati è suddivisa in diversi livelli che hanno l’obiettivo di metterli in relazione nodo della rete con una radice univoca ad essi associata. Per renderlo possibile, ogni nodo deve avere un identificatore univoco (chiamato anche hash) 

Questi primi nodi (foglie) sono associati a un nodo superiore o a un nodo padre (ramo). Questo nodo genitore porterà un identificatore univoco che è il risultato dell’hash dei suoi nodi precedenti (foglie). Quindi, la struttura viene ripetuta successivamente fino a raggiungere il nodo radice o radice merkle la cui impronta è associata a tutti i nodi dell’albero.

In breve, è così che Merkle Trees può mettere in relazione grandi quantità di dati a un singolo punto o Merkle Root (root). Grazie a ciò, la verifica o la convalida di uno qualsiasi di questi dati diventa molto più veloce ed efficiente. Pertanto, non sarà più necessario verificare l’intera struttura, ma semplicemente verificare la radice.

Come funziona un albero Merkle?

Per capire un po ‘meglio di cosa abbiamo parlato nel paragrafo precedente, espandiamo il funzionamento di un albero di merkle: 

Questo albero è una struttura che mette in relazione tutte le transazioni e successivamente le unisce tra coppie per creare un Root Hash o “indirizzo radice“. Questo hash è correlato a tutti gli hash presenti nell’albero.

Se un hash viene modificato, cambierebbe tutti gli hash fino a quando non raggiunge la radice dell’albero e questa radice invaliderà l’autenticità delle informazioni dell’intero albero.

Questa caratteristica è ciò che conferisce un livello molto elevato di sicurezza agli alberi di merkle.

Esempio di albero Merkle

Immagina un blocco nella blockchain di Bitcoin che trasporta un hash (codice) unico e irripetibile. Questo blocco è collegato a un livello superiore tramite questo hash. In questo modo, i blocchi superiori puntano sempre ai blocchi inferiori.. 

E anche l’hash dei blocchi superiori è il risultato della somma delle informazioni che il nuovo blocco contiene con l’hash del blocco precedente. In questo modo, man mano che si continua a scalare, la struttura stessa dell’albero si intreccia e forma un grande blocco di dati.

Un problema o una modifica in un blocco invalida tutti gli altri blocchi. Questo sistema semplifica la verifica dei dati di blocco e il rilevamento delle modifiche agli hash.

que-es-un-arbol-merkle

Ralph Merkle è stato l’ideatore di questo progetto nel 1979, al fine di accelerare il processo di verifica di grandi quantità di dati.

Caratteristiche dell’albero Merkle

Tra le caratteristiche più importanti di questi alberi troviamo:

 

– Sono un mezzo molto efficiente per creare una struttura dati distribuita.

– Forniscono grande sicurezza e resistenza a possibili alterazioni dei dati.

– Riducono la quantità di dati richiesta e migliorano il livello di prestazioni nella trasmissione dei dati.

– Consentono di “sezionare” per effettuare ricerche di verifica più veloci senza compromettere la sicurezza e la tracciabilità.

– Hanno un basso costo computazionale e sono molto efficienti.

– Hanno una grande capacità di adattarsi a diversi sistemi e sono stati utilizzati per software di database, strutture a chiave pubblica, reti peer-to-peer distribuite, sistemi di controllo delle versioni, ecc.

Relazione tra l’albero di Merkle e Blockchai

Se ti chiedi quali sono gli usi dell’albero di Merkle oggi, scoprirai che una delle sue principali applicazioni sono le blockchain.

Tant’è che è una parte fondamentale di una blockchain poiché grazie a loro, il software client permette di scaricare lo storico completo della catena e verificarlo. Serve anche a tagliare parte della storia e ridurre il peso creando i prune node.

L’uso di alberi di merkle nella tecnologia blockchain è vitale. Grazie al loro utilizzo, il software client può scaricare l’intera cronologia della blockchain e verificarla a caldo. Il loro utilizzo, infatti, facilita il processo consentendo di “potare” (prendendo solo una parte della cronologia) la cronologia e riducendo le dimensioni del download.

Ciò non pregiudica la sicurezza del client, poiché grazie al merkle tree è possibile scaricare un certo “root hash” e iniziare a creare una cronologia da quel punto. Poiché l’root hash è correlato a tutti i blocchi che lo precedono, tutto ciò che bisogna fare è verificarlo.

Per questo motivo, vengono utilizzati i nodi Bitcoin completi che hanno tutta la cronologia delle transazioni e semplicemente  si controlla che il root hash preso corrisponda. Fatto ciò, l’utente può utilizzare in sicurezza il suo nuovo nodo client Bitcoin.