Ați auzit de copacii Merkle când discutați despre tehnologia blockchain? Acest lucru se datorează faptului că arborele Merkle se află în centrul tehnologiei în sine.

Deci, ce anume este?

În acest articol, vom trece prin arborele Merkle în profunzime și vom înțelege rolul său în transformarea tehnologiei blockchain într-un succes.

arborele merkle

Să începem.

Ce este un copac Merkle?

Un arbore Merkle este o structură de date care este utilizată pentru verificarea sigură a datelor într-un pool mare de conținut. De asemenea, este eficient și consecvent atunci când vine vorba de verificarea datelor.

Ethereum și Bitcoin utilizează ambii arbori Merkle.

Problema: În centrul rețelei centralizate, datele pot fi accesate dintr-o singură copie. Aceasta înseamnă că nu trebuie să facă mult pentru a stoca sau accesa date. Cu toate acestea, atunci când vine vorba de rețeaua blockchain descentralizată, lucrurile se descurcă pe măsură ce fiecare dată este copiată între noduri. Deci, este o provocare să accesați eficient datele. Provocarea este, de asemenea, de a face o copie a datelor și de a le partaja între noduri. În plus, datele partajate trebuie verificate pentru fiecare dintre nodurile de recepție.

Soluția: Merkle Trees permite blockchain-urilor descentralizate să partajeze date, să le verifice și să le facă demne de încredere. Organizează datele în așa fel încât să nu fie necesară multă putere de procesare pentru a partaja și verifica datele. De asemenea, facilitează tranzacția sigură datorită utilizării funcțiilor hash și a criptografiei.

Satoshi Nakamoto a fost prima persoană care a implementat arborii Merkle în tehnologia blockchain prin Bitcoin. Utilizarea sa a deschis o nouă ramură a informaticii în care nu este nevoie de o autoritate centralizată. De asemenea, a folosit copaci Merkle într-un grad excesiv și a folosit copaci Fast Merkle.

Cu toate acestea, conceptul a fost introdus pentru prima dată de Ralph Merkle, care l-a brevetat în 1979. A fost numit după el.

De asemenea, citiți, Hyperledger Cactus: Un nou cadru Hyperledger

Funcții Hash criptografice

Înainte de a discuta copacii Merkle, trebuie să înțelegem mai bine funcția hash criptografică.

O funcție hash este responsabilă pentru maparea oricărei forme de date arbitrare de orice lungime la o ieșire de dimensiuni fixe. Este o funcție criptografică și, prin urmare, este utilizată pe scară largă în criptografie.

Funcțiile hash sunt eficiente și sunt cunoscute pentru singura lor proprietate, adică funcția nu poate fi inversată. Este o funcție unidirecțională, proiectată să funcționeze numai în acest mod.

Hashing are mai multe utilizări, inclusiv

  • Protecție cu parolă
  • Verificarea și verificarea integrității fișierelor
  • Criptomonedă

Există mai multe familii de hash, inclusiv Message Direct (MD), Secure Hash Function (SHF) și RIPE Message Direct (RIPEMD).

Dacă utilizați un algoritm hash SHA256 și treceți 101Blockchains ca intrare, veți obține următoarea ieșire

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Pentru a rezuma, proprietățile cheie ale funcțiilor hash includ:

  • Determinat
  • Rezistent la pre-imagine
  • Computabil eficient
  • Nu poate fi inversat
  • Rezistent la coliziune

Dacă doriți să aflați mai multe despre funcțiile Hash criptografice, consultați articolele detaliate aici:

Cum funcționează copacii Merkle?

Acum că avem o înțelegere oarecum bună a funcțiilor Hash, este timpul să aflăm mai multe despre Merkle Trees.

Deci, din punct de vedere tehnic, arborii Merkle sunt arbori cu structuri de date în care nodul fără frunze este definit ca o valoare hash a nodurilor sale copil respective..

Aceasta înseamnă, de asemenea, că arborele Merkle este inversat acolo unde nodurile frunzelor sunt nodul cel mai jos.

Pentru a înțelege mai bine ceea ce încerc să transmit, să aruncăm o privire la exemplul arborelui Merkle:

Arborii Merkle

Sursa: Wikipedia

În centrul arborilor Merkle, trebuie să învățăm trei termeni importanți. Acestea sunt după cum urmează:

  • Radacina Merkle
  • Noduri de frunze
  • Noduri fără frunze

Dacă aruncați o privire asupra arborelui Merkle în ansamblu, acesta este un copac pe dos. Arborele este capabil să rezume singur un întreg set de tranzacții. Aceasta înseamnă că utilizatorul poate verifica dacă o tranzacție face parte din bloc sau nu.

Pentru ca pomii Merkle să funcționeze, se folosește hashing. Pur și simplu face perechile hash de noduri în mod repetat până când rămâne o singură valoare hash. Valoarea hash stângă este cunoscută sub numele de Merkle Root sau Root Hash. Arborele este creat de jos în sus folosind hash-urile individuale ale tranzacțiilor. Hash-urile individuale ale tranzacțiilor sunt, de asemenea, cunoscute sub numele de ID-uri de tranzacție.

Nodurile frunze sunt nodurile care conțin hash-uri de date tranzacționale. În cazul nodurilor fără frunze, acestea stochează hash-ul celor două hash-uri anterioare.

O altă proprietate importantă a copacilor Merkle este că are o natură binară. Acest lucru înseamnă că necesită noduri frunze pentru a fi uniform pentru că funcționează. În cazul în care, dacă există un număr impar de noduri frunze, acesta va copia pur și simplu ultimul hash și îl va face egal.

Un exemplu

Să încercăm să o înțelegem luând un exemplu.

merkle-tree-example

Merkle Tree Exemplu

Aici, vedem că patru tranzacții au avut loc în bloc. Aceste tranzacții se numesc X, Y, Z și W. Tranzacțiile sunt apoi hashate și apoi stocate în noduri frunze pe care le numim Hash X, Hash Y, Hash Z și Hash W.

După ce ați terminat, nodurile frunzei Hash X, Y, Z și W sunt din nou hashate și create într-un hash combinat de XY și ZW. În cele din urmă, aceste două hash-uri sunt folosite pentru a crea Merkle Root sau Root Hash.

Întregul proces de hash poate fi realizat pe un set de date foarte mare, ceea ce face utilă structura de date Merkle Trees în cazul rețelelor descentralizate.

După cum am discutat mai devreme, utilizarea algoritmilor de hash depinde de implementare. Cu toate acestea, una dintre cele mai comune funcții hash care sunt utilizate include funcția hash criptografică SHA-2.

Deci, o tranzacție poate fi verificată dacă tranzacțiile anterioare sunt verificabile, datorită valorilor hash.

Dar integritatea datelor?

Arborele Merkle este ideal pentru integritatea datelor. De asemenea, nu este nevoie să parcurgeți întreaga tranzacție pentru a vedea verificabilitatea acesteia. Tranzacțiile pot fi verificate prin utilizarea informațiilor stocate în antetul blocului. Valoarea rădăcină Merkle este, de asemenea, modificată în funcție de tranzacțiile anterioare.

Aceasta înseamnă, de asemenea, că valorile rădăcină sunt modificate frecvent și pot fi utilizate pentru a verifica tranzacțiile aproape instantaneu.

Toate acestea pot suna puțin asemănător cu lista de hash, cu toate acestea, acest lucru nu este adevărat. Pentru o listă hash, trebuie să descărcați lista completă pentru a verifica tranzacțiile sau datele.

În cazul arborelui Merkle, puteți descărca sucursala și apoi o puteți utiliza pentru a verifica tranzacțiile.

Nu este nevoie să descărcați întregul arbore pentru a verifica tranzacțiile. Aceasta înseamnă, de asemenea, că întregul arbore poate fi împărțit în blocuri de date mici, care pot fi utilizate pentru a verifica tranzacțiile din întreaga rețea. Conceptul este cunoscut sub numele de Dovezi Merkle.

Puteți verifica, de asemenea, Merkle Tree Python – o implementare Merkle Tree în Python articol.

Cum funcționează arborii Merkle în Bitcoin

Bitcoin a fost prima criptomonedă care a folosit în mod eficient arborii Merkle. Pentru a se asigura că valorile hash sunt protejate și nu pot fi inversate cu ușurință, folosește celebrul algoritm de securizare Hashing SHA-256. Aceasta înseamnă, de asemenea, că ieșirea valorilor hash are o lungime de 256 de biți. În esență, arborii Merkle sunt folosiți pentru a stoca date și, de asemenea, pentru a tranzacționa.

De asemenea, citiți, Cum să începeți cu Blockchain

În bitcoin, fiecare bloc este conectat la blocurile anterioare folosind valori hash. Așa se creează întregul blockchain. Într-un bloc, există anteturi de bloc care conțin informații importante, cum ar fi:

  • Merkle Root Hash
  • Număr versiune bloc
  • Timestamp-ul
  • Nonce
  • Ținta Dificultății miniere
  • Anterior Block Hash

Pentru a înțelege mai bine, să aruncăm o privire la diagrama de mai jos. Este preluat din Cartea albă Bitcoin în sine.

merkle-tree-in-bitcoin

Legenda: copaci Merkle în Bitcoin

După cum puteți vedea, este necesar ca minerii să includă tranzacțiile în bloc. Odată terminat, acesta este hash și devine parte a arborelui Merkle.

Utilizarea copacilor Merkle, în acest fel, poate duce la multiple beneficii. Aceasta include un beneficiu notabil, și anume, verificarea simplă a plăților (SPV). Acești SVP sunt noduri care pot fi denumite și clienți ușori. Deci, ce fac? Pur și simplu descarcă cele mai lungi anteturi de blocuri de lanț și, prin urmare, nu trebuie să descarce întregul blockchain. Pentru a face toate acestea, trebuie să verifice dacă are anteturile blocului stocate pentru cel mai lung lanț. Acesta este modul în care implementarea arborelui Merkle se face în bitcoin.

În cele din urmă, un SPV poate utiliza apoi Dovada Hărții Merkle și poate verifica o tranzacție folosind hashul rădăcină al arborelui Merkle.

Cum este folosit Pomii Merkle în Ethereum

Ethereum blockchain folosește, de asemenea, copaci Merkle. Cu toate acestea, abordarea de aici este diferită de cea a modului în care bitcoin l-a folosit. În Ethereum, se folosește Merkle Patricia Tree, care este o versiune complexă a arborelui Merkle. Acest lucru este posibil, deoarece Ethereum este complet Turing.

Dacă doriți să aflați mai multe despre modul în care funcționează copacii Merkle în Ethereum, consultați postarea detaliată Aici.

Implementarea altor arbori Merkle: cazuri de utilizare

Există, desigur, alte implementări de arbori Merkle acolo. Unul dintre cele mai populare este Git – un sistem de control al versiunilor distribuite. Este folosit de programatori din întreaga lume pentru a-și gestiona proiectele.

O altă implementare utilă este văzută în Sistem de fișiere interplanetar – un protocol distribuit peer-to-peer. De asemenea, este open-source și permite dispozitivelor de calcul să se alăture și să utilizeze un sistem de fișiere omniprezent.

Chiar și autoritățile de certificare folosesc copacii Merkle în avantajul lor. Îl folosesc în mecanism pentru a crea jurnale de transparență a certificatelor verificabile. Deoarece jurnalul este imens, arborii Merkle permit computerelor să îl verifice fără a pierde prea mult timp și efort.

Ultimul caz de utilizare pe care îl vom discuta sunt sistemele de baze de date precum Amazon DynamoDB și Apache Cassandra. Aceste baze de date distribuite No-SQL preiau controlul neconcordanțelor folosind arborii Merkle în timpul procesului de replicare a datelor. Dacă există probleme, acesta poate actualiza sau repara datele folosind procesul de reparare anti-entropie.

Pe scurt, utilizarea cazurilor de copaci Merkle include

  • Sincronizarea datelor
  • Verificarea datelor
  • Verificarea coerenței

Beneficiile Merkle Trees

În această secțiune, vom analiza rapid beneficiile arborelui Merkle.

  • Validați integritatea datelor: Poate fi utilizat în mod eficient pentru a valida integritatea datelor.
  • Ocupă puțin spațiu pe disc: Arborele Merkle ocupă puțin spațiu pe disc comparativ cu alte structuri de date.
  • Informații mici între rețele: Arborii Merkle pot fi împărțiți în informații minuscule pentru verificare.
  • Verificare eficientă: Structura datelor este eficientă și durează doar puțin timp pentru a verifica integritatea datelor.

Concluzie

Arborele Merkle este unul dintre conceptele importante în informatică. Este utilizat pe scară largă în multe cazuri de utilizare, iar utilizarea sa în criptomonede a dat naștere unei tehnologii revoluționare, blockchain.

Deci, ce știi despre copacii Merkle? Comentează mai jos și anunță-ne.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me