Crypto.com Logo

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