Markle Tree
Salve a tutti, voglio iniziare questo articolo innanzi tutto ringraziando il sostegno che mi sta arrivando da parte di tutti voi.
Parlo di complimenti e non solo!
Infatti essendo uno scrittore “alle prime armi” qualche errore di lessico e di distrazione mi scappa sempre!
Ecco che interviene la mia redazione, ovvero mia madre, ciao mamma so che stai leggendo, ringrazio mia cognata, ciao Nunzi e ringrazio un mio caro amico, Marco, che insieme, ogni settimana, leggono e correggono il mio modo distratto di scrivere!
Ringraziamenti terminati, oggi voglio fare un passo a ritroso.
Nell’articolo sull’immutabilità abbiamo parlato di come i blocchi della blockchain sono collegati tra di loro, tuttavia c’è un argomento che non abbiamo trattato.
Come è organizzato ogni blocco al suo interno e è possibile estrarre un’informazione da esso?
Ogni blocco è costituito principalmente da due elementi: l’header block ed il transation counter.
L’header block è un set di metadati che contiene le seguenti informazioni:
- La versione su cui la blockchain si basa in quel determinato momento
- Il Merkle Root che vedremo più avanti
- Il Timestamp, data e ora in cui il blocco è stato generato
- Il difficulty target, ovvero il valore della difficoltà da rispettare in quel momento
- Il nonce, quel numero randomico occasionale che sommato all’hash finale del blocco ritorna un altro numero ancora che rispetta il difficulty target
- Hash del blocco precedente.
Invece il Transation counter, come il temine stesso suggerisce, non è altro che un contatore di transazioni, ed al suo interno troviamo tutte le transazioni contenute in quel blocco.

Come potete vedere non ha una struttura complicatissima!
Markle tree
So che ti è venuta la pelle d’oca solamente leggendo il titolo di questo articolo.
“Merkle tree… che diavoleria sarà mai questa” ti starai chiedendo.
No, non è come pensi… non stiamo parlando dell’albero del cancelliere tedesco Angela Merkel, bensì di un sistema di indicizzazione dei dati riguardante la blockchain.
Abbiamo detto che la blockchain è un grande database distribuito e, avendo dimensioni gigantesche con cifre altamente superiori ai database centralizzati, non si può permettere di avere un tipico sistema di organizzazione a tabella.
Mi spiego meglio: chi ha avuto a che fare con le strutture dei data base (mySQL tanto per citarne uno) ha notato sicuramente che i dati al suo interno sono inseriti in delle tabelle e organizzati in modo tale da essere facilmente filtrati ed estratti.
Come potete intuire, questo sistema, in un database distribuito non era la soluzione migliore, date le sue enormi dimensioni.
Quindi è stato adottato una nuova forma di organizzazione alternativa ed altamente performante: il markle tree.
Ecco la sua struttura.

Ipotizziamo di avere un gruppo di transazioni.
Queste transazioni vengono prese a coppia e sommate tramite funzione di hash SHA-256.
Il risultati delle somme, vengono sommate tra di loro, sempre a coppie, e così via fino ad arrivare ad un unico hash chiamato Markle Root.
Per tutti gli amanti del calcio: immaginate che il merkle tree sia la Champion Legue e che le squadre siano gli hash delle transazioni.
Si parte dai sedicesimi, niente gironi.
Le squadre iniziano a giocare tra di loro e le 32 squadre diventano 16.
La scalata verso la finale continua, da 16 a 8, da 8 a 4 e fino a rimanere in due.
Dall’incontro dei due ne viene fuori solo uno che si è aggiudicato la finale, ed in questo caso il titolo di markle root.

C’è una sola differenza importante!
Le transazioni, a differenza delle squadre, non si sfidano ma si sommano.
Ma praticamente cosa serve tutto ciò?
Una volta che il markle root è stato costruito, esso rappresenta una vera e propria impronta digitale delle transazioni.
Da esso infatti è possibile verificare in maniera efficiente se una determinata transazione è contenuta o meno all’interno di un blocco.
Questo sistema permette anche a chi non è un full node (un computer con tutta la blockchain scaricata) di poter verificare la correttezza di un’operazione, semplicemente andando a vedere all’interno dell’header block il markle root.
Di fatti in alcuni utilizzi, facendo un esempio, le transazioni in bitcoin con i nostri smartphone, non c’è necessità di scaricare l’intera blockchain.
Il softer wallet (articolo dove spiego cosa sono i wallet) riesce a verificare tutte queste informazioni prendendole da un full node fidato nella rete.
Grazie alla logica del markle tree, il wallet esaminerà solo quelle parti dell’albero necessarie per arrivare alla transazione desiderata.
Il vero vantaggio lo si ha quando il numero delle transazioni è molto elevato poiché questo meccanismo, permette di avere un carico di lavoro ridotto e più performante.
Spero che la mia spiegazione sia stata degna dalle vostre aspettative e di essere riuscito ad introdurvi in modo chiaro un concetto nuovo o, in caso ne fossi già a conoscenza, di averti aiutato a schiarirti le idee.
Concludo con il mio augurio:
Voglio che tutto ciò ti serva da ispirazione, la blockchain è un mondo in continua espansione e sviluppo. Il mio consiglio? Non fermarti mai e continua a fare ricerche!
Un’ultima cosa. Non sai quanto importante siano per me i tuoi feedback, fammi sapere che ne pensi! Hai ritenuto l’argomento interessante? Cosa ti piacerebbe approfondire nei prossimi post? Scrivi i tuoi feedback e le tue idee nei commenti e clicca il pulsante sotto per non perderti gli altri articoli a riguardo!
L2M Design
info[at]l2mdesign.com
+39 3881839774
CF | LMRLCU98L02F943F
Lascia un Commento
Vuoi partecipare alla discussione?Fornisci il tuo contributo!