Útmutató a Merkle-fákhoz

Hallott már Merkle fákról, amikor a blockchain technológiáról tárgyalt? Ez azért van, mert a Merkle-fa maga a technológia középpontjában áll. 

Szóval, mi is ez pontosan?

Ebben a cikkben mélyrehatóan át fogjuk járni a Merkle-fát, és megértjük annak szerepét a blokklánc-technológia sikerességében.

Kezdjük el.

 

Mi az a Merkle-fa?

A Merkle-fa egy olyan adatstruktúra, amelyet egy nagy tartalomkészlet adatainak biztonságos ellenőrzésére használnak. Hatékony és következetes az adatok ellenőrzésében is.

Az Ethereum és a Bitcoin egyaránt használja a Merkle Fákat.

A probléma: A központosított hálózat lényege, hogy az adatok egyetlen példányból érhetők el. Ez azt jelenti, hogy nem kell sokat tenniük az adatok tárolásáért vagy eléréséért. Ha azonban a decentralizált blokklánc-hálózatról van szó, akkor a dolgok összeomlanak, mivel minden adatot átmásolnak a csomópontok közé. Tehát kihívást jelent az adatok hatékony elérése. A kihívás az is, hogy készítsen másolatot az adatokról, és megossza azokat a csomópontok között. Ezen felül minden egyes fogadó csomópontnál ellenőrizni kell a megosztott adatokat.

A megoldás: A Merkle Trees lehetővé teszi a decentralizált blokkláncok számára az adatok megosztását, ellenőrzését és megbízhatóságát. Az adatokat úgy szervezi, hogy az adatok megosztásához és ellenőrzéséhez nem kell sok feldolgozási erő. A hash függvények és a kriptográfia használatának köszönhetően megkönnyíti a biztonságos tranzakciót is.

Satoshi Nakamoto volt az első ember, aki a Bitcoin segítségével valósította meg a Merkle fákat a blokklánc technológiában. Használata a számítástechnika új ágát nyitotta meg, ahol nincs szükség központosított hatóságra. A Merkle fákat is túlzott mértékben használta, és a Fast Merkle fákat is használta.

A koncepciót azonban először Ralph Merkle vezette be, aki 1979-ben szabadalmaztatta.

Olvassa el még: Hyperledger Cactus: New Hyperledger Framework


Kriptográfiai hash funkciók

Mielőtt megvitatnánk a Merkle fákat, jobban meg kell értenünk a kriptográfiai hash funkciót.

A hash függvény felelős bármilyen tetszőleges hosszúságú, tetszőleges hosszúságú adat rögzítéséért egy fix méretű kimenetbe. Ez egy kriptográfiai funkció, ezért széles körben használják a kriptográfiában.

A hash függvények hatékonyak és egyetlen tulajdonságukról ismertek, vagyis a funkciót nem lehet megfordítani. Ez egy egyirányú funkció, amelyet csak így működnek. 

A hashoz többféle felhasználása van, többek között

  • Jelszó védelem
  • A fájl integritásának ellenőrzése és ellenőrzése
  • Kriptopénz

Számos kivonatoló család létezik, beleértve a Message Direct (MD), a Secure Hash Function (SHF) és a RIPE Message Direct (RIPEMD).

Ha SHA256 hash algoritmust használ és 101Blockchains-t ad át bemenetként, akkor a következő kimenetet kapja

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Összefoglalva, a hash függvények fő tulajdonságai a következők:

  • Meghatározó
  • Kép előtti ellenállás
  • Számítási szempontból hatékony
  • Nem lehet visszafejteni
  • Ütközésálló

Ha többet szeretne megtudni a Cryptographic Hash függvényekről, nézze meg a részletes cikkeket itt: 

Hogyan működnek a Merkle fák?

Most, hogy kissé jól megértettük a Hash funkciókat, itt az ideje, hogy többet megtudjunk a Merkle Fákról.

Tehát technikailag a Merkle fák olyan adatszerkezeti fák, ahol a nem levél csomópont a megfelelő gyermek csomópontok hash értékeként van meghatározva.

Ez azt is jelenti, hogy a Merkle-fát lefelé fordítják, ahol a levélcsomók a legalacsonyabb csomópontok. 

Annak érdekében, hogy jobban megértsem, mit akarok közvetíteni, vessünk egy pillantást a Merkle-fára:

Forrás: Wikipédia

A Merkle-fák középpontjában három fontos kifejezést kell megtanulnunk. Ezek a következők:

  • Merkle Root
  • Levélcsomópontok
  • Nem levél csomópontok

Ha egy pillantást vet a Merkle fára, mint egészre, akkor ez egy fejjel lefelé fordított fa. A fa képes a tranzakciók teljes halmazának összefoglalására. Ez azt jelenti, hogy a felhasználó ellenőrizheti, hogy egy tranzakció a blokk része-e vagy sem.

Ahhoz, hogy a Merkle fák működjenek, hasítást használnak. Egyszerűen többször elvégzi a csomópontok hash-párját, amíg csak egy hash érték nem marad meg. A bal hash érték ismert Merkle Root vagy a Root Hash. A fa alulról felfelé jön létre az egyes tranzakciós hashok felhasználásával. Az egyes tranzakciós kivonatokat tranzakcióazonosítóknak is nevezik. 

A levélcsomópontok azok a csomópontok, amelyek tranzakciós adatkivonatokat tartalmaznak. A nem levélcsomópontok esetében a két előző hash hashját tárolják.

A Merkle fák másik fontos tulajdonsága, hogy bináris jellegű. Ez azt jelenti, hogy működéséhez a levélcsomópontok egyenletesek. Abban az esetben, ha páratlan számú levélcsomópont van, akkor egyszerűen megismétli az utolsó kivonatot és egyenletesé teszi.

 

Egy példa

Próbáljuk megérteni egy példával.

Merkle-fa példa

Itt azt látjuk, hogy a blokkban négy tranzakció történt. Ezeknek a tranzakcióknak a neve X, Y, Z és W. A tranzakciókat ezután kivonatolják, majd levélcsomópontokban tárolják, amelyeket Hash X, Hash Y, Hash Z és Hash W néven nevezünk meg..

Ha elkészült, a Hash X, Y, Z és W levélcsomópontjai ismét kivágódnak és XY és ZW kombinált hash-kká alakulnak. Végül ezt a két hash-t használják a Merkle Root vagy Root Hash létrehozására.

A hash teljes folyamata nagyon nagy adatkészleten végezhető el, ami a Merkle Trees adatszerkezetét hasznosítja decentralizált hálózatok esetén..

Ahogy korábban tárgyaltuk, a hash algoritmusok használata a megvalósítástól függ. Az egyik leggyakrabban használt hash függvény az SHA-2 kriptográfiai hash függvényt tartalmazza. 

Tehát egy tranzakció ellenőrizhető, ha a korábbi tranzakciók ellenőrizhetők, a hash értékeknek köszönhetően.

 

Mi a helyzet az adatok integritásával?

A Merkle fa ideális az adatok integritásához. Emellett nincs szükség az egész tranzakció végigvitelére annak ellenőrizhetőségének megtekintéséhez. A tranzakciókat a blokkfejlécben tárolt információk felhasználásával lehet ellenőrizni. A Merkle gyökérértéke is megváltozik az előző tranzakcióktól függően.

Ez azt is jelenti, hogy a gyökérértékek gyakran változnak, és szinte azonnal ellenőrizhetők a tranzakciók. 

Ezek mind kissé hasonlóan tűnhetnek a hash-listához, azonban ez nem igaz. Hash-listához le kell töltenie a teljes listát a tranzakciók vagy adatok ellenőrzéséhez.

A Merkle-fa esetében letöltheti az ágat, majd felhasználhatja a tranzakciók ellenőrzésére.

A tranzakciók ellenőrzéséhez nincs szükség az egész fa letöltésére. Ez azt is jelenti, hogy az egész fa apró adatblokkokra osztható, amelyek felhasználhatók az egész hálózat tranzakcióinak ellenőrzésére. A koncepció ismert Merkle igazolja.

Megtekintheti a Merkle fa-pitont is – a Merkle-fa megvalósítását a Python-ban cikk.

 

Hogyan működnek a Merkle fák Bitcoin-ban

A Bitcoin volt az első kriptovaluta, amely hatékonyan alkalmazta a Merkle fákat. Annak biztosítása érdekében, hogy a kivonatolási értékek védettek legyenek és ne legyenek könnyen visszafordíthatók, a híres SHA-256 biztonságos hashing algoritmust használja. Ez azt is jelenti, hogy a kivonatolási értékek kimenete 256 bit hosszú. A lényegében a Merkle-fákat használják adatok tárolására és a tranzakciók metszésére is.

Olvassa el még: Hogyan kezdjük el a Blockchain-t

A bitcoinban minden blokk hash értékek segítségével kapcsolódik az előző blokkokhoz. Így jön létre az egész blokklánc. Egy blokkban vannak olyan blokkfejlécek, amelyek fontos információkat tartalmaznak, például:

  • Merkle Root Hash
  • Blokkolja a verziószámot
  • Időbélyeg
  • Nonce
  • Bányászati ​​nehézségi cél
  • Előző Block Hash

A jobb megértés érdekében vessünk egy pillantást az alábbi diagramra. A Bitcoin whitepaper maga.

Felirat: Merkle fái Bitcoin-ban

Mint látható, a bányászok számára megköveteli, hogy a tranzakciókat belefoglalják a blokkba. Ha elkészült, kivonatolódik és a Merkle-fa részévé válik.

A Merkle Trees ilyen módon történő használata több előnnyel járhat. Ez magában foglal egy figyelemre méltó juttatást, azaz az egyszerű fizetésellenőrzést (SPV). Ezek az SVP-k olyan csomópontok, amelyeket könnyű klienseknek is nevezhetünk. Szóval, mit csinálnak? Egyszerűen letöltik a leghosszabb láncblokk fejléceket, ezért nem kell letölteniük a teljes blokkláncot. Mindezek elvégzéséhez ellenőrizniük kell, hogy a leghosszabb láncra vannak-e tárolva a blokkfejlécek. Így történik a Merkle fa megvalósítása bitcoinban.

Végül egy SPV felhasználhatja a Merkle Map Proofot, és ellenőrizheti a tranzakciót a Merkle fa gyökérkivonatával.. 

Hogyan használják a Merkle Fákat az Ethereumban

Az Ethereum blokklánc a Merkle fákat is felhasználja. Azonban itt más a megközelítés, mint az, hogy a bitcoin hogyan használta fel. Az Ethereumban a Merkle Patricia fát használják, amely a Merkle fa komplex változata. Ez azért lehetséges, mert az Ethereum Turing-teljes.

Ha többet szeretne megtudni a Merkle fák működéséről az Ethereumban, akkor nézze meg a részletes bejegyzést itt.

Egyéb Merkle-fák megvalósítása: Felhasználási esetek

Természetesen van más Merkle-fák megvalósítása is. Az egyik legnépszerűbb a Git – elosztott verzióvezérlő rendszer. A világ minden tájáról származó programozók használják projektjeik kezelésére. 

Egy másik hasznos megvalósítás látható a Bolygóközi fájlrendszer – peer-to-peer elosztott protokoll. Ez egyúttal nyílt forráskódú, és lehetővé teszi a számítástechnikai eszközök számára, hogy mindenütt hozzáférhető fájlrendszerhez csatlakozzanak és használhassák.

Még a tanúsító hatóságok is hasznukra használják a Merkle fákat. A mechanizmusban ellenőrizhető tanúsítvány-átláthatósági naplók létrehozására használják. Mivel a napló hatalmas, a Merkle fák lehetővé teszik a számítógépek számára, hogy túl sok időt és erőfeszítést pazarolva ellenőrizzék.

Az utolsó használati eset, amelyet megvitatunk, olyan adatbázis-rendszerek, mint az Amazon DynamoDB és az Apache Cassandra. Ezek a nem SQL-alapú elosztott adatbázisok az adatreplikációs folyamat során a Merkle-fák segítségével kezelik az ellentmondásokat. Ha bármilyen probléma merül fel, akkor az adatokat az antópia elleni javítási folyamat segítségével frissítheti vagy javíthatja.

Röviden, a Merkle-fák eseteinek felhasználása magában foglalja

  • Adatok szinkronizálása
  • Adatellenőrzés
  • Konzisztencia-ellenőrzés

A Merkle Trees előnyökkel jár

Ebben a részben gyorsan áttekintjük a Merkle fa előnyeit.

  • Az adatok integritásának ellenőrzése: Hatékonyan használható az adatok integritásának ellenőrzésére.
  • Kevés helyet foglal a lemezen: A Merkle fa kevés lemezterületet foglal el más adatszerkezetekhez képest.
  • Apró információ a hálózatokon: A Merkle fák apró információkra oszthatók az ellenőrzés céljából.
  • Hatékony ellenőrzés: Az adatstruktúra hatékony, és csak egy ideig tart az adatok integritásának ellenőrzése.

Következtetés

A Merkle-fa az egyik fontos fogalom a számítástechnikában. Számos felhasználási esetben széles körben használják, és kriptovalutában történő használata forradalmi technológiát eredményezett, – blockchain.

Szóval mit tud a Merkle fákról? Hozzászólás az alábbiakban, és tudassa velünk.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map