Merkle Tree


In blockchain, un Merkle tree riassume tutte le transazioni contenute in un blocco, producendo un’impronta digitale dell’intero insieme. Questo consente agli utenti di verificare se una specifica transazione è stata inclusa o meno in quel blocco.

Tecnicamente, un Merkle tree è una struttura dati costruita dal basso verso l’alto: si parte dagli hash delle singole transazioni (cioè gli ID transazionali) e si prosegue calcolando l’hashing delle coppie di dati (i cosiddetti leaves), per poi accoppiare e sottoporre a hash i risultati ottenuti, fino ad arrivare a un unico hash finale: il Merkle root. I Merkle tree utilizzati in Bitcoin impiegano una doppia funzione SHA-256.

Ogni nodo terminale è l’hash dei dati di una transazione, mentre ogni nodo non terminale rappresenta l’hash combinato dei suoi due nodi sottostanti. I Merkle tree sono strutture binarie (ogni nodo ha due nodi sottostanti), quindi richiedono un numero pari di nodi terminali. Se il numero di transazioni è dispari, l’ultimo hash viene duplicato per mantenere la struttura binaria.

Nel contesto della Proof of Reserves (PoR), un Merkle tree offre una prova anonima dei saldi degli utenti, permettendo a chiunque di verificare crittograficamente che l’exchange detiene effettivamente i fondi e che i saldi dei conti siano inclusi nella PoR. La costruzione e la gestione del Merkle tree sono affidate a un revisore indipendente.

Punti chiave

Un Merkle tree è una struttura dati costruita eseguendo l’hashing di coppie di dati e riassumendo tutte le transazioni contenute in un blocco, generando un'impronta digitale dell'intero insieme di transazioni.

Parole correlate