Ste že slišali za drevesa Merkle, ko ste razpravljali o tehnologiji veriženja blokov? To je zato, ker je drevo Merkle jedro same tehnologije.
Torej, kaj točno je to?
V tem članku bomo podrobno preučili drevo Merkle in razumeli njegovo vlogo pri uspehu tehnologije veriženja blokov.
Začnimo.
Contents
Kaj je drevo Merkle?
Drevo Merkle je podatkovna struktura, ki se uporablja za varno preverjanje podatkov v velikem področju vsebine. Tudi pri preverjanju podatkov je učinkovit in dosleden.
Ethereum in Bitcoin uporabljata drevesa Merkle.
Težava: V središču centraliziranega omrežja je dostop do podatkov iz ene same kopije. To pomeni, da jim ni treba storiti veliko za shranjevanje ali dostop do podatkov. Ko pa gre za decentralizirano omrežje blokovnih verig, se stvari pokvarijo, saj se vsi podatki kopirajo med vozlišča. Izziv je torej učinkovit dostop do podatkov. Izziv je tudi narediti kopijo podatkov in jih deliti med vozlišči. Poleg tega je treba skupne podatke preveriti za vsako od prejemnih vozlišč.
Rešitev: Merkle drevesa omogočajo decentraliziranim verigam blokov izmenjavo podatkov, njihovo preverjanje in zaupanje. Podatke organizira tako, da za izmenjavo in preverjanje podatkov ni potrebno veliko procesorske moči. Omogoča tudi varno transakcijo zaradi uporabe zgoščevalnih funkcij in kriptografije.
Satoshi Nakamoto je bil prva oseba, ki je drevesa Merkle vpeljala v tehnologijo veriženja blokov prek Bitcoina. Njegova uporaba je odprla novo vejo računalništva, kjer centralizirane oblasti ni treba. Prav tako je preveč uporabljal drevesa Merkle in uporabljal drevesa Fast Merkle.
Vendar je koncept prvi predstavil Ralph Merkle, ki ga je patentiral leta 1979. Po njem je dobil ime.
Preberite tudi, Hyperledger Cactus: New Hyperledger Framework
Kriptografske funkcije razpršitve
Preden se pogovorimo o drevesih Merkle, moramo bolje razumeti kriptografsko funkcijo razpršitve.
Razpršilna funkcija je odgovorna za preslikavo poljubne oblike poljubnih podatkov katere koli dolžine v izhod z določeno velikostjo. Je kriptografska funkcija in se zato pogosto uporablja v kriptografiji.
Hash funkcije so učinkovite in so znane po svoji eni lastnosti, tj. Funkcije ni mogoče razveljaviti. To je enosmerna funkcija, ki je zasnovana za delovanje samo na ta način.
Hashing ima več načinov uporabe, vključno
- Zaščita z geslom
- Preverjanje in preverjanje celovitosti datotek
- Kriptovaluta
Obstaja več družin razprševanja, vključno s sporočilom Direct (MD), funkcijo varnega razprševanja (SHF) in RIPE Message Direct (RIPEMD).
Če uporabite algoritem razprševanja SHA256 in kot vhod prenesete 101Blockchains, boste dobili naslednji izhod
fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9
Če povzamemo, med ključne lastnosti hash funkcij spadajo:
- Deterministično
- Odporen na slike
- Računalniško učinkovito
- Ni mogoče razveljaviti
- Odporna na trke
Če želite izvedeti več o funkcijah kriptografskega razpršitve, si oglejte podrobne članke tukaj:
Kako delujejo drevesa Merkle?
Zdaj, ko nekoliko dobro razumemo funkcije Hash, je čas, da izvemo več o drevesih Merkle.
Torej, tehnično so drevesa Merkle drevesa podatkovne strukture, kjer je nelistno vozlišče definirano kot zgoščena vrednost svojih podrejenih vozlišč.
To tudi pomeni, da je drevo Merkle obrnjeno navzdol, kjer so listna vozlišča najnižje vozlišče.
Za boljše razumevanje tega, kar poskušam sporočiti, si oglejmo primer drevesa Merkle:
Vir: Wikipedia
V jedru dreves Merkle se moramo naučiti treh pomembnih izrazov. Spodaj so:
- Korenina Merkle
- Listna vozlišča
- Nelistna vozlišča
Če si ogledate drevo Merkle kot celoto, je drevo na glavo. Drevo lahko samostojno povzame celo vrsto transakcij. To pomeni, da lahko uporabnik preveri, ali je transakcija del bloka ali ne.
Da bi drevesa Merkle delovala, se uporablja razprševanje. Preprosto večkrat razprši pare vozlišč, dokler ne ostane samo ena zgoščevalna vrednost. Leva zgoščena vrednost je znana kot Merkleova korenina ali Root Hash. Drevo se ustvari od spodaj navzgor z uporabo posameznih zgoščevalnih transakcij. Posamezne zgoščevalne transakcije so znane tudi kot ID-ji transakcij.
Listna vozlišča so vozlišča, ki vsebujejo zgoščevalne podatke o transakcijah. V primeru nelistnih vozlišč shranijo zgoščevanje dveh prejšnjih zgoščevalnih znakov.
Druga pomembna lastnost dreves Merkle je, da je binarne narave. To pomeni, da zahteva, da so listna vozlišča enakomerna, saj deluje. Če je nenamerno število vozlišč listov, bo zadnjo zgoščeno enoto preprosto podvojil in jo izenačil.
Primer
Poskusimo to razumeti z zgledom.
Primer drevesa Merkle
Tu vidimo, da so se v bloku zgodile štiri transakcije. Te transakcije se imenujejo X, Y, Z in W. Transakcije se nato zgostijo in nato shranijo v listna vozlišča, ki jih imenujemo Hash X, Hash Y, Hash Z in Hash W.
Ko končate, se vozlišča listov Hash X, Y, Z in W spet zgostijo in ustvarijo v kombinirani hash XY in ZW. Na koncu se ta dva zgoščena znaka uporabljata za ustvarjanje Merkleovega korena ali Root Hash-a.
Celoten postopek razprševanja je mogoče izvesti na zelo velikem naboru podatkov, zaradi česar je struktura podatkov Merkle Trees koristna v primeru decentraliziranih omrežij..
Kot smo že omenili, je uporaba algoritmov zgoščevanja odvisna od izvedbe. Vendar ena najpogostejših zgoščenih funkcij, ki se uporabljajo, vključuje kriptografsko zgoščevalno funkcijo SHA-2.
Torej je transakcijo mogoče preveriti, če so prejšnje transakcije preverljive, zahvaljujoč zgoščenim vrednostim.
Kaj pa integriteta podatkov?
Drevo Merkle je idealno za integriteto podatkov. Prav tako ni treba skozi celotno transakcijo preveriti njeno preverljivost. Transakcije je mogoče preveriti z uporabo informacij, shranjenih v glavi bloka. Korenina vrednosti Merkle se prav tako spremeni glede na prejšnje transakcije.
To pomeni tudi, da se korenske vrednosti pogosto spreminjajo in jih je mogoče uporabiti za preverjanje transakcij skoraj v trenutku.
Vse to lahko zveni nekoliko podobno kot hash-list, vendar to ni res. Za hash-seznam morate prenesti celoten seznam, da preverite transakcije ali podatke.
V primeru drevesa Merkle lahko prenesete vejo in jo nato uporabite za preverjanje transakcij.
Za preverjanje transakcij ni treba prenesti celotnega drevesa. To tudi pomeni, da lahko celotno drevo razdelimo na majhne podatkovne bloke, ki jih lahko uporabimo za preverjanje transakcij po vsem omrežju. Koncept je znan kot Merkleovi dokazi.
Ogledate si lahko tudi drevo Merkle python – izvedba drevesa Merkle v Pythonu Članek.
Kako Merkleova drevesa delujejo v bitcoinih
Bitcoin je bil prva kriptovaluta, ki je učinkovito uporabljala drevesa Merkle. Da bi zagotovili, da so vrednosti zgoščevanja zaščitene in jih ni mogoče enostavno obrniti, uporablja znameniti algoritem varnega razprševanja SHA-256. To tudi pomeni, da je izhodna vrednost hash vrednosti 256 bitov. V bistvu se drevesa Merkle uporabljajo za shranjevanje podatkov in tudi za obrezovanje transakcij.
Preberite tudi, Kako začeti uporabljati Blockchain
V bitcoinih je vsak blok povezan s prejšnjimi bloki z uporabo zgoščenih vrednosti. Tako je ustvarjena celotna veriga blokov. V bloku so glave blokov, ki vsebujejo pomembne informacije, kot so:
- Merkle Root Hash
- Blokiraj številko različice
- Časovni žig
- Nonce
- Cilj težavnosti rudarjenja
- Prejšnji razpršeni blok
Za boljše razumevanje si oglejmo spodnji diagram. Vzeto je iz Bitcoin dokument sama.
Napis: Merkle drevesa v Bitcoinu
Kot lahko vidite, od rudarjev zahteva, da transakcije vključijo v blok. Ko konča, se razprši in postane del drevesa Merkle.
Uporaba dreves Merkle na ta način lahko privede do več koristi. To vključuje eno opazno ugodnost, tj. Preprosto preverjanje plačila (SPV). Ti SVP-ji so vozlišča, ki jih lahko imenujemo tudi lahki odjemalci. Torej, kaj počnejo? Preprosto prenesejo glave najdaljših verižnih blokov in jim zato ni treba prenesti celotne verige blokov. Za vse to morajo preveriti, ali ima shranjene glave blokov za najdaljšo verigo. Tako poteka izvedba drevesa Merkle v bitcoinih.
Na koncu lahko SPV nato uporabi Merkleov dokaz zemljevida in preveri transakcijo s korenskim razpršilcem drevesa Merkle.
Kako se drevesa Merkle uporablja v ethereumu
Ethereum blockchain uporablja tudi drevesa Merkle. Vendar se pristop tu razlikuje od pristopa, kako ga je bitcoin izkoristil. V Ethereumu se uporablja drevo Merkle Patricia, ki je zapletena različica drevesa Merkle. To je mogoče, ker je Ethereum Turingov popoln.
Če želite izvedeti več o tem, kako drevesa Merkle delujejo v Ethereumu, si oglejte podrobno objavo tukaj.
Izvajanje drugih Merkleovih dreves: primeri uporabe
Seveda obstaja tudi druga izvedba dreves Merkle. Eden izmed najbolj priljubljenih je Git – porazdeljeni sistem za nadzor različic. Uporabljajo ga programerji z vsega sveta za upravljanje svojih projektov.
Druga koristna izvedba je razvidna iz Medplanetarni datotečni sistem – porazdeljeni protokol med enakovrednimi uporabniki. Prav tako je odprtokoden in omogoča računalniškim napravam, da se pridružijo in uporabljajo vseprisotni datotečni sistem.
Tudi certifikacijski organi uporabljajo drevesa Merkle v svojo korist. Uporabljajo ga v mehanizmu za ustvarjanje preverljivih dnevnikov preglednosti potrdil. Ker je dnevnik ogromen, drevesa Merkle omogočajo računalnikom, da ga preverijo, ne da bi pri tem izgubili preveč časa in truda.
Zadnji primer uporabe, o katerem bomo razpravljali, so sistemi baz podatkov, kot sta Amazon DynamoDB in Apache Cassandra. Te distribuirane zbirke podatkov No-SQL prevzamejo nadzor nad nedoslednostmi z uporabo dreves Merkle med postopkom kopiranja podatkov. Če pride do kakršnih koli težav, lahko podatke posodobi ali popravi s postopkom popravila proti entropiji.
Skratka, uporaba primerov dreves Merkle vključuje
- Sinhronizacija podatkov
- Preverjanje podatkov
- Preverjanje skladnosti
Prednosti Merkle Trees
V tem poglavju si bomo na hitro ogledali prednosti drevesa Merkle.
- Potrdite celovitost podatkov: Lahko se učinkovito uporablja za preverjanje celovitosti podatkov.
- Zavzame malo prostora na disku: Drevo Merkle zavzame malo prostora na disku v primerjavi z drugimi podatkovnimi strukturami.
- Drobne informacije med omrežji: Drevesa merkle lahko za preverjanje razdelimo na drobne informacije.
- Učinkovito preverjanje: Struktura podatkov je učinkovita in traja le nekaj časa, da preveri celovitost podatkov.
Zaključek
Drevo Merkle je eden pomembnih konceptov v računalništvu. Pogosto se uporablja v mnogih primerih uporabe, njegova uporaba v kriptovalutah pa je povzročila revolucionarno tehnologijo, – blockchain.
Torej, kaj veste o drevesih Merkle? Komentirajte spodaj in nam sporočite.