Merkle-puu

Merkle-puut ovat perustekijä lohkoketjuissa, jotka tukevat niiden toimivuutta. Ne mahdollistavat tehokkaan ja turvallisen suurten tietorakenteiden ja estoketjujen tapauksessa mahdollisesti rajattomien tietojoukkojen todennuksen.

Merkle-puiden käyttöönotolla lohkoketjuissa on useita vaikutuksia. Sen avulla he voivat skaalata ja tarjota samalla hash-pohjaisen arkkitehtuurin heille tietojen eheyden ylläpitämiseksi ja triviaalin tavan tarkistaa tietojen eheys.

Salaushajautustoiminnot ovat taustalla oleva tekniikka, joka antaa Merkle-puille mahdollisuuden toimia, joten ensiksi on tärkeää ymmärtää, mitä salauksen hajautusfunktiot ovat.

Salaushajautustoiminnot

Yksinkertaisesti sanottuna hajautusfunktio on mikä tahansa toiminto, jota käytetään mielivaltaisen koon (syötteen) tietojen kartoittamiseen kiinteäkokoiseen lähtöön. Hajautusalgoritmia käytetään syötteeseen ja tuloksena olevaa kiinteän pituista lähtöä kutsutaan hashiksi.

Monet hajautusalgoritmit ovat laajalti julkisesti saatavilla, ja ne voidaan valita tarpeidesi mukaan.

Mielivaltaisesta syötteestä saatu hajautus ei ole vain kiinteä pituus, se on myös täysin yksilöllinen tulolle ja toiminto itsessään on deterministinen. Toisin sanoen riippumatta siitä, kuinka monta kertaa suoritat toiminnon samassa tulossa, lähtö on aina sama.

Esimerkiksi, jos sinulla on seuraavat tietojoukot alla syötteenä, saadut lähdöt ovat yksilöllisiä jokaiselle tulolle. Huomaa, että vaikka toisessa ja kolmannessa esimerkissä tulojen ero on vain yksi sana, tuloksena olevat tuotokset ovat täysin erilaisia.

Tämä on erittäin tärkeää, koska se mahdollistaa tietojen “sormenjälkien” ottamisen.

Salaushajautusfunktio, Kuva Wikipedia

Koska lähdön (esimerkissä hash-summa) pituus on aina sama kuin määritetään käytetyllä hajautusalgoritmilla, valtavat tietomäärät voidaan tunnistaa vain niiden tuloksena olevan hajautuksen avulla.

Suurten tietomääriä sisältävien järjestelmien ansiosta edut, jotka liittyvät kiinteän pituisen tiedon tallentamiseen ja tunnistamiseen, voivat tuottaa suuria säästöjä tallennustiloissa ja lisätä tehokkuutta..

Lohkoketjuissa hajautusalgoritmeja käytetään estoketjun tilan määrittämiseen.

Lohkoketjut ovat linkitettyjä luetteloita, jotka sisältävät tietoja ja hash-osoittimen, joka osoittaa edelliseen lohkoon, luoden yhdistettyjen lohkojen ketjun, joten nimi “lohkoketju”.

Kukin lohko on kytketty toisiinsa hash-osoittimen kautta, joka on edellisen lohkon sisällä olevan datan hajautusviiva yhdessä edellisen lohkon osoitteen kanssa. Yhdistämällä tässä muodossa olevia tietolohkoja kukin edellisen lohkon hash edustaa lohkoketjun koko tilaa, koska kaikki edellisten lohkojen tiivistetyt tiedot on hajautettu yhdeksi hashiksi..

Tätä edustaa (SHA-256-algoritmin tapauksessa) tällainen lähtö (hash).

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Yllä oleva hash on koko sen edellisen lohkoketjun sormenjälki. Lohkoketjun tila ennen uutta lohkoa (tiivistettynä datana) on tulo, ja tuloksena oleva hash on lähtö.

Vaikka salaushajautuksia on mahdollista käyttää ilman Merkle-puita, se on erittäin tehoton eikä skaalautuva. Hajautusten käyttäminen tietojen tallentamiseen lohkoon sarjamuodossa on aikaa vievää ja hankalaa.

Kuten näette, Merklen puut mahdollistavat datan eheyden triviaalin ratkaisemisen sekä näiden tietojen kartoituksen koko puun kautta Merkle-todisteilla.

Merkle Trees ja Merkle Proofs

Nimetty Ralph Merklen mukaan, joka patentoi konseptin vuonna 1979, Merkle-puut ovat pohjimmiltaan tietorakenteita, joissa kukin muu kuin lehti-solmu on hash vastaavista lapsisolmuistaan.

Lehtisolmut ovat puun alin solmutaso. Aluksi se saattaa kuulostaa vaikealta ymmärrettävältä, mutta jos katsot alla olevaa yleisesti käytettyä kuvaa, sen ymmärtäminen on paljon helpompaa.

Hash Tree

Esimerkki binaarisesta hash-puusta, Kuva Wikipedia

Tärkeää on huomata, kuinka vasemmanpuoleiset ei-lehtisolmut tai “oksat” (edustavat Hash 0-0 ja Hash 0-1) ovat heidän lastensa L1 ja L2 hasheja. Huomaa lisäksi, kuinka haara Hash 0 on liitettyjen lastensa hajautus, haarat Hash 0-0 ja Hash 0-1.

Yllä oleva esimerkki on Merkle-puun yleisin ja yksinkertaisin muoto, joka tunnetaan nimellä binaarinen Merkle-puu. Kuten näette, on ylhäältä löytyvä hash, joka on koko puun hash, joka tunnetaan nimellä root hash. Pohjimmiltaan Merkle-puut ovat tietorakenne, joka voi ottaa “n” määrän hajautuksia ja edustaa sitä yhdellä hajautuksella.

Puun rakenne mahdollistaa mielivaltaisen suurten tietomäärien tehokkaan kartoituksen ja mahdollistaa helpon tunnistamisen missä muutos kyseisissä tiedoissa tapahtuu. Tämä konsepti mahdollistaa Merklen todistukset, joiden avulla joku voi varmistaa, että tietojen hajautus on yhdenmukaista koko puun ylöspäin ja oikeassa asennossa ilman, että hänen on tarkasteltava koko hajautusjoukkoa..

Sen sijaan he voivat varmistaa, että tietopala on yhdenmukainen juurihajautuksen kanssa, tarkistamalla vain pieni hajautusten osajoukko koko tietojoukon sijaan.

Niin kauan kuin juurihajautus on julkisesti tiedossa ja luotettu, jokaisella, joka haluaa tehdä avaimen arvon etsinnän tietokannasta, on mahdollista käyttää Merklen todistetta varmistaakseen tietokannan sijainti ja eheys tietokannassa, tietty juuri.

Kun juurihajautus on käytettävissä, hash-puu voidaan vastaanottaa mistä tahansa epäluotettavasta lähteestä ja yksi puun haara voidaan ladata kerrallaan varmistamalla tietojen eheys välittömästi, vaikka koko puuta ei vielä ole saatavilla.

Yksi Merkle-puurakenteen tärkeimmistä eduista on kyky todentaa mielivaltaisesti suuria tietojoukkoja samanlaisella hajautusmekanismilla, jota käytetään paljon pienempien tietomäärien tarkistamiseen..

Puu on edullinen levitettäessä suuria tietojoukkoja hallittaviin pienempiin osiin, joissa eheyden todentamisen este on huomattavasti pienempi huolimatta suuremmasta datakoolta.

Juurihajausta voidaan käyttää sormenjäljinä koko tietojoukolle, mukaan lukien koko tietokanta, tai se edustaa koko lohkoketjun tilaa. Seuraavissa osioissa keskustelemme siitä, kuinka Bitcoin ja muut järjestelmät toteuttavat Merkle-puita.

Merklen puut Bitcoinissa

Bitcoinin käyttämä kryptografinen hajautusfunktio on SHA-256-algoritmi. Tämä tarkoittaa “Secure Hashing Algorithm” -tekniikkaa, jonka lähtö on kiinteä 256 bittiä. Merkle-puiden perustoiminto Bitcoinissa on tallentaa ja lopulta karsia tapahtumia jokaisessa lohkossa.

Kuten aiemmin mainittiin, lohkoketjun lohkot yhdistetään edellisen lohkon hashien kautta. Bitcoinissa kukin lohko sisältää kaikki kyseisen lohkon tapahtumat ja lohkon otsikon, joka koostuu:

  • Estä versionumero
  • Edellinen Block Hash
  • Aikaleima
  • Kaivosvaikeustavoite
  • Seksuaalirikollinen
  • Merkle Root Hash

Alla oleva kuva on peräisin Bitcoinista valkoinen paperi ja havainnollistaa, kuinka Merkle-puu sopii kuhunkin lohkoon.

Merkle-puu

Kaivostyöläiset sisällyttävät tapahtumat lohkoihin ja ne tiivistetään osana Merkle-puuta, mikä johtaa Merkle-juuriin, joka on tallennettu lohkon otsikkoon. Tällä mallilla on useita erillisiä etuja.

Erityisesti, kuten valkoisessa kirjassa hahmotellaan, tämä mahdollistaa yksinkertaisten maksujen todentamisen (SPV) solmujen olemassaolon, jotka tunnetaan myös nimellä “kevyet asiakkaat”. Näiden solmujen ei tarvitse ladata koko Bitcoin-lohkoketjua, vain pisimmän ketjun lohkootsikot.

SPV-solmut voivat saavuttaa tämän kyselemällä vertaissolmujaan, kunnes he ovat vakuuttuneita siitä, että tallentamansa lohkootsikot, joita he käyttävät, ovat osa pisintä ketjua. SPV-solmu pystyy sitten määrittämään tapahtuman tilan käyttämällä Merkle-todistetta kartoittamaan tapahtuma tiettyyn Merkle-puuhun kyseisen Merkle-puun juurihajalla lohkon otsikossa, joka on osa pisintä ketjua.

Lisäksi Bitcoinin Merkle-puiden toteutus mahdollistaa lohkoketjun karsimisen tilan säästämiseksi. Tämä johtuu siitä, että vain juurihaja on tallennettu lohkon otsikkoon, joten vanhat lohkot voidaan karsia poistamalla Merkle-puun tarpeettomat oksat säilyttäen vain Merkle-todistukseen tarvittavat oksat.

Merklen puiden käyttöönotto muissa lohkoketjuissa ja järjestelmissä

Vaikka Bitcoin oli ensimmäinen lohkoketju, joka toteutti Merkle-puut, monet muut lohkoketjut toteuttavat samanlaisia ​​Merkle-puurakenteita tai jopa monimutkaisempia versioita.

Lisäksi Merkle-puun toteutus ei rajoitu vain lohkoketjuihin, ja sitä sovelletaan moniin muihin järjestelmiin.

Ethereum, joka on toinen tunnetuin kryptovaluutta, on myös loistava esimerkki erilaisesta Merkle-puun toteutuksesta. Koska Ethereum on täydellisenä alustana paljon monimutkaisempien sovellusten rakentamiseen, se käyttää Merkle-puun monimutkaisempaa versiota nimeltä Merkle Patricia Tree, joka on itse asiassa 3 erillistä Merkle-puuta, joita käytetään kolmenlaisia ​​esineitä varten. Voit oppia lisää näistä puista tässä.

Lopuksi Merkle-puut ovat tärkeä osa hajautettuja versionhallintajärjestelmiä, kuten Git ja IPFS. Niiden kyky varmistaa ja tarkistaa tietokoneiden välillä P2P-muodossa jaetun datan eheys tekee niistä korvaamattoman arvokkaita näille järjestelmille.

Johtopäätös

Merkle-puut ovat kiinteä osa lohkoketjuja ja antavat niiden tehokkaan toiminnan todistettavalla muuttumattomuudella ja tapahtumien eheydellä.

Heidän roolinsa ymmärtäminen hajautetuissa verkoissa ja heidän salausteknologiansa perusteknologia on ensiarvoisen tärkeää ymmärtää salausvaluutan peruskäsitteet, kun ne kehittyvät edelleen suuremmiksi ja monimutkaisemmiksi järjestelmiksi.

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