FAQ | Concetto di base

Non hai trovato quello che cerchi? Prova con FAQ On Demand

Cosa sono gli Alberi di Merkle?

6/10/2022 | FAQ

Tempo di lettura stimato: 3 minuti

Gli Alberi di Merkle sono una struttura di dati che si trova nel contenuto di qualsiasi blocco delle creata con lo scopo di rendere più efficiente la verifica di grandi quantità di dati. Per garantire questa verifica si mettono in relazione questi dati con tecniche crittografiche e gestione delle informazioni.

Per capire meglio cosa siano gli Alberi di Merkle o Radice di Merkle dobbiamo partire dal concetto di hash value, l’impronta digitale che caratterizza ogni transazione all’interno del blocco di una ottenuta attraverso l’applicazione di un particolare algoritmo che si chiama SHA-256.

Ogni transazione all’interno di un blocco è caratterizzata da un proprio hash value, a questo punto entra in gioco una versione ulteriore dell’algoritmo SHA-256 che si chiama Double SHA-256. Questo algoritmo ha la particolarità di fornire un codice hash risultante di due codici hash.

L’algoritmo Double SHA-256 di tutti i codici hash relativi alle transazioni ne calcola uno solo; le transazioni possono essere “n” ma alla fine si otterrà un unico codice hash (dalla prima transazione alla transazione ennesima).

Il blocco contiene anche l’hash value del blocco precedente, il quale sempre mediante l’algoritmo Double SHA-256 verrà messo in double con il codice hash relativo alle transazioni. Anche in questo caso si otterrà un unico codice hash.

Quest’ultimo a sua volta sarà messo in double con il nonce (valore di 32 bit quale risultato di un procedimento matematico molto complicato che deve essere trovato dal minatore ovvero colui che ha il diritto di validare le transazioni in esso contenute e ricevere l’adeguata ricompensa). Il nonce deve essere tale per cui se si applica di nuovo il Double SHA-256 si ottiene quello che si chiama hash target per il blocco corrente, ovvero si ottiene un hash che inizia con un certo numero di zeri.

Questo risultato non è semplice da ottenere, le operazioni sono molto complesse e occorrono numerosi tentativi, tutti casuali. Inoltre la potenza di calcolo messa in gioco è molto elevata, vince il minatore o i minatori che hanno una potenza computazionale molto elevata, ma anche molta fortuna in quanto non c’è un algoritmo logico deterministico che consente di ottenere questo risultato.

Questo valore di hash che viene ottenuto è detto anche Radice di Merkle.

In questa struttura definita come Albero di Merkle i primi nodi vengono chiamati “foglie” ed il nodo superiore a cui questi vengono associati rappresenta il nodo padre anche detto “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. 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.