Arborele Merkle
Ce este un copac Merkle?
Un arbore Merkle este o structură de date care este utilizată în aplicațiile de informatică. În bitcoin și alte criptomonede, arborii Merkle servesc la codificarea datelor blockchain mai eficient și mai sigur.
Acestea sunt, de asemenea, denumite „copaci hash binari”.
Dărâmarea Merkle Tree
În blockchain- ul bitcoin, un bloc de tranzacții este rulat printr-un algoritm pentru a genera un hash, care este un șir de numere și litere care pot fi utilizate pentru a verifica dacă un anumit set de date este același cu setul original de tranzacții, să nu obțină setul inițial de tranzacții. Software-ul Bitcoin nu rulează întregul bloc de date despre tranzacții – reprezentând în medie tranzacții în valoare de 10 minute – cu toate acestea, prin funcția hash. Mai degrabă fiecare tranzacție este hash, apoi fiecare pereche de tranzacții este concatenată și hash împreună, și așa mai departe până când există un hash pentru întregul bloc. (Dacă există un număr impar de tranzacții, o tranzacție este dublată și hash-ul său este concatenat cu el însuși.)
Vizualizată, această structură seamănă cu un copac. În diagrama de mai jos, „T” desemnează o tranzacție, „H” un hash. Rețineți că imaginea este foarte simplificată; un bloc mediu conține peste 500 de tranzacții, nu opt.
Hash-urile de pe rândul de jos sunt denumite „frunze”, hash-urile intermediare ca „ramuri”, iar hash-ul din partea de sus ca „rădăcină”. Rădăcina Merkle a unui bloc dat este stocată în antet: de exemplu, rădăcina Merkle a blocului # 482819 este e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Rădăcina este combinată cu alte informații (versiunea software, hash-ul blocului anterior, timestamp-ul, ținta de dificultate și nonce) și apoi rulează printr-o funcție hash pentru a produce hash-ul unic al blocului: 000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 în cazul. Acest hash nu este de fapt inclus în blocul relevant, ci următorul; este distinctă de rădăcina Merkle.
Arborele Merkle este util deoarece permite utilizatorilor să verifice o anumită tranzacție fără a descărca întregul blockchain (peste 130 de gigaocteți la sfârșitul lunii august 2017). De exemplu, spuneți că ați dorit să verificați dacă tranzacția T D este inclusă în blocul din diagrama de mai sus. Dacă aveți hashul rădăcină (H ABCDEFGH ), procesul este ca un joc de sudoku: interogați rețeaua despre H D și returnează H C, H AB și H EFGH. Arborele Merkle vă permite să verificați dacă totul este contabilizat cu trei hashuri: dat H AB, H C, H EFGH și rădăcina H ABCDEFGH, H D (singurul hash lipsă) trebuie să fie prezent în date.
Arborii Merkle poartă numele lui Ralph Merkle, care le-a propus într-o lucrare din 1987 intitulată „ O semnătură digitală bazată pe o funcție de criptare convențională. ” Merkle a inventat și hashingul criptografic.