ETFFIN Finance >> Finanza personale corso >  >> Cryptocurrency >> Blockchain

Merkle Tree

Che cos'è un albero di Merkle?

Un albero Merkle è una struttura di dati utilizzata nelle applicazioni informatiche. In bitcoin e altre criptovalute​, Gli alberi Merkle servono a codificare i dati blockchain in modo più efficiente e sicuro.

Sono anche chiamati "alberi di hash binari".

Abbattere l'albero di Merkle

Nella blockchain di bitcoin, un blocco di transazioni viene eseguito attraverso un algoritmo per generare un hash, che è una stringa di numeri e lettere che può essere utilizzata per verificare che un dato insieme di dati sia lo stesso dell'insieme originale di transazioni, ma non per ottenere l'insieme originale delle transazioni. Il software di Bitcoin non esegue l'intero blocco di dati della transazione, che rappresenta in media 10 minuti di transazioni, attraverso la funzione di hash in una volta, però. Piuttosto, ogni transazione è hash, quindi ogni coppia di transazioni viene concatenata e sottoposta a hash insieme, e così via finché non c'è un hash per l'intero blocco. (Se c'è un numero dispari di transazioni, una transazione viene raddoppiata e il suo hash viene concatenato con se stesso.)

visualizzato, questa struttura ricorda un albero. Nel diagramma sottostante, "T" indica una transazione, "H" un cancelletto. Nota che l'immagine è molto semplificata; un blocco medio contiene oltre 500 transazioni, non otto.

Immagine di Julie Bang © Investopedia 2020

Gli hash nella riga inferiore sono indicati come "foglie, " gli hash intermedi come "rami, " e l'hash in alto come "root". La radice Merkle di un determinato blocco è memorizzata nell'intestazione:ad esempio, la radice Merkle del blocco #482819 è e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. La radice è combinata con altre informazioni (la versione del software, l'hash del blocco precedente, la marca temporale, l'obiettivo di difficoltà, e il nonce) e quindi eseguire una funzione hash per produrre l'hash univoco del blocco:000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 nel caso del blocco #482819. Questo hash non è effettivamente incluso nel blocco pertinente, ma il prossimo; è distinto dalla radice di Merkle.

L'albero Merkle è utile perché consente agli utenti di verificare una transazione specifica senza scaricare l'intera blockchain (oltre 350 gigabyte a fine giugno 2021). Per esempio, dì che volevi verificare quella transazione T D è incluso nel blocco nello schema sopra. Se hai l'hash radice (H ABCDEFGH ), il processo è come un gioco di sudoku:interroghi la rete su H D , e restituisce H C , h AB, e H EFGH . L'albero Merkle ti consente di verificare che tutto sia contabilizzato con tre hash:dato H AB , h C , h EFGH, e la radice H ABCDEFGH , h D (l'unico hash mancante) deve essere presente nei dati.

Immagine di Julie Bang © Investopedia 2020

Gli alberi Merkle prendono il nome da Ralph Merkle, che li ha proposti in un articolo del 1987 intitolato "Una firma digitale basata su una funzione di crittografia convenzionale". Merkle ha anche inventato l'hashing crittografico.