3 Maggio 2021 20:50

Merkle Root (criptovaluta)

Cos’è una radice di Merkle?

Una radice Merkle è l’ hash di tutti gli hash di tutte le transazioni che fanno parte di un blocco in una  rete blockchain.

Punti chiave

  • Una radice Merkle è un semplice modo matematico per verificare i dati su un albero Merkle.
  • Le radici Merkle vengono utilizzate nelle criptovalute per assicurarsi che i blocchi di dati passati tra peer su una rete peer-to-peer siano interi, non danneggiati e inalterati.
  • Le radici di Merkle sono fondamentali per il calcolo richiesto per mantenere le criptovalute come bitcoin ed ether.

Capire una radice di Merkle

Una blockchain è composta da vari blocchi collegati tra loro (da cui il nome blockchain). Un albero hash, o albero Merkle, codifica i dati blockchain in modo efficiente e sicuro. Consente la verifica rapida dei dati blockchain, nonché il rapido spostamento di grandi quantità di dati da un nodo del computer all’altro sulla rete blockchain peer-to-peer.

Ogni transazione che si verifica sulla rete blockchain è associata a un hash. Tuttavia, questi hash non sono memorizzati in un ordine sequenziale sul blocco, piuttosto sotto forma di una struttura ad albero tale che ogni hash è collegato al suo genitore seguendo una relazione ad albero genitore-figlio.

Poiché ci sono numerose transazioni memorizzate su un particolare blocco, anche tutti gli hash delle transazioni nel blocco vengono sottoposti ad hashing, il che si traduce in una radice Merkle.

Ad esempio, considera un blocco di sette transazioni. Al livello più basso (chiamato livello foglia), ci saranno quattro hash di transazione. Al livello uno sopra il livello foglia, ci saranno due hash di transazione, ognuno dei quali si connetterà a due hash che si trovano sotto di loro a livello foglia. In alto (livello due), ci sarà l’ultimo hash della transazione chiamato root, e si collegherà ai due hash sottostanti (al livello uno).

In effetti, si ottiene un albero binario capovolto, con ogni nodo dell’albero che si collega solo a due nodi sotto di esso (da cui il nome “albero binario”). Ha un hash radice nella parte superiore, che si collega a due hash al livello uno, ognuno dei quali si collega nuovamente ai due hash al livello tre (livello foglia) e la struttura continua a seconda del numero di hash della transazione.

L’hashing inizia ai nodi di livello più basso (livello foglia) e tutti e quattro gli hash sono inclusi nell’hash dei nodi ad esso collegati al livello uno. Allo stesso modo, l’hashing continua al livello uno, il che porta ad hash di hash che raggiungono livelli più alti, fino a raggiungere il singolo hash radice superiore.

Questo hash di root è chiamato root di Merkle e, a causa del collegamento ad albero degli hash, contiene tutte le informazioni su ogni singolo hash di transazione esistente sul blocco. Offre un valore hash a punto singolo che consente di convalidare tutto ciò che è presente su quel blocco.

Ad esempio, se si deve verificare una transazione che afferma di provenire dal blocco n. 137, è sufficiente controllare l’albero Merkle del blocco, senza preoccuparsi di verificare nulla su altri blocchi sulla blockchain, come il blocco n. 136 o il blocco n. 138.

Inserisci la radice di Merkle, che accelera ulteriormente la verifica. Dal momento che trasporta tutte le informazioni sull’intero albero, è sufficiente verificare l’hash della transazione, il suo nodo di pari livello (se esiste), e quindi procedere verso l’alto fino a raggiungere la cima.

In sostanza, l’albero di Merkle e il meccanismo della radice di Merkle riducono significativamente i livelli di hashing da eseguire, consentendo verifiche e transazioni più veloci.