Opas Merklen puille

Oletko kuullut Merklen puista keskustellessasi blockchain-tekniikasta? Tämä johtuu siitä, että Merkle-puu on itse tekniikan ydin. 

Joten mikä se on?

Tässä artikkelissa käymme läpi Merkle-puun perusteellisesti ja ymmärrämme sen roolin blockchain-tekniikan onnistumisessa.

Aloitetaan.

 

Mikä on Merklen puu?

Merkle-puu on tietorakenne, jota käytetään tietojen turvalliseen varmistamiseen suuressa sisältöpoolissa. Se on myös tehokasta ja johdonmukaista tietojen tarkistamisessa.

Ethereum ja Bitcoin käyttävät molemmat Merkle-puita.

Ongelma: Keskitetyn verkon ytimessä tietoja voidaan käyttää yhdestä kopiosta. Tämä tarkoittaa, että heidän ei tarvitse tehdä paljon tietojen tallentamiseksi tai käyttämiseksi. Hajautetun lohkoketjuverkon kohdalla asiat menevät kuitenkin hajanaiseen tapaan, kun jokainen data kopioidaan solmujen kesken. Joten tietojen haastaminen on haastavaa. Haasteena on myös kopioida tiedot ja jakaa ne solmujen kesken. Tämän lisäksi jaetut tiedot on vahvistettava jokaiselle vastaanottavalle solmulle.

Ratkaisu: Merkle Treesin avulla hajautetut lohkoketjut voivat jakaa tietoja, tarkistaa ne ja tehdä niistä luotettavia. Se järjestää tiedot siten, että tietojen jakamiseen ja tarkistamiseen ei tarvita paljon käsittelytehoa. Se myös helpottaa turvallista tapahtumaa hash-toimintojen ja salauksen avulla.

Satoshi Nakamoto oli ensimmäinen henkilö, joka toteutti Merkle-puut blockchain-tekniikassa Bitcoinin kautta. Hänen käyttönsä avasi uuden tietojenkäsittelytieteen haaran, jossa ei tarvita keskitettyä viranomaista. Hän käytti myös Merklen puita liiallisessa määrin ja Fast Merkle -puita.

Käsitteen otti kuitenkin ensimmäisen kerran käyttöön Ralph Merkle, joka patentoi sen vuonna 1979. Se nimettiin hänen mukaansa.

Lue myös Hyperledger Cactus: New Hyperledger Framework


Salaushajautustoiminnot

Ennen kuin keskustelemme Merklen puista, meidän on ymmärrettävä paremmin salauksen hajautusfunktio.

Hajautusfunktio on vastuussa minkä tahansa minkä tahansa pituisen mielivaltaisen datan kartoittamisesta kiinteäkokoiseen lähtöön. Se on salausfunktio ja sitä käytetään siksi laajalti salauksessa.

Hajautusfunktiot ovat tehokkaita ja tunnetaan yhdestä ominaisuudestaan, toisin sanoen toimintoa ei voida peruuttaa. Se on yksisuuntainen toiminto, joka on suunniteltu toimimaan vain tällä tavalla. 

Hajautuksella on useita käyttötarkoituksia, mukaan lukien

  • Salasanasuojaus
  • Tiedostojen eheystarkastukset
  • Kryptovaluutta

Siellä on useita hash-perheitä, mukaan lukien Message Direct (MD), Secure Hash Function (SHF) ja RIPE Message Direct (RIPEMD).

Jos käytät SHA256-hajautusalgoritmia ja syötät 101Blockchains-syötteen, saat seuraavan tuloksen

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Yhteenvetona voidaan todeta, että hash-toimintojen tärkeimmät ominaisuudet ovat:

  • Deterministinen
  • Pre-Image Resistant
  • Laskennallisesti tehokas
  • Ei voida peruuttaa
  • Törmäyskestävä

Jos haluat oppia lisää kryptografisista hajautustoiminnoista, tutustu yksityiskohtaisiin artikkeleihin täällä: 

Kuinka Merklen puut toimivat?

Nyt kun meillä on jonkin verran hyvä käsitys Hash-toiminnoista, on nyt aika oppia lisää Merkle-puista.

Joten, teknisesti, Merkle-puut ovat tietorakenteita, joissa ei-lehtinen solmu määritellään vastaavien alisolmujen hash-arvoksi.

Tämä tarkoittaa myös, että Merkle-puu käännetään alaspäin, missä lehtisolmut ovat alin solmu. 

Jotta saisimme paremman käsityksen siitä, mitä yritän välittää, katsotaanpa Merkle-puun esimerkkiä:

Lähde: Wikipedia

Merkle-puiden ytimessä meidän on opittava kolme tärkeää termiä. Ne ovat seuraavat:

  • Merkle Root
  • Lehtisolmut
  • Muut kuin lehtisolmut

Jos katsot Merklen puuta kokonaisuutena, se on ylösalaisin oleva puu. Puu pystyy tiivistämään kokonaisen tapahtumaryhmän itse. Tämä tarkoittaa, että käyttäjä voi tarkistaa, onko tapahtuma osa lohkoa vai ei.

Merklen puiden toimimiseksi käytetään hajautusta. Se yksinkertaisesti tekee solmujen parit toistuvasti, kunnes vain yksi hash-arvo on jäljellä. Vasemmanpuoleisen tiivisteen arvo tunnetaan nimellä Merkle Root tai Root Hash. Puu luodaan alhaalta ylös käyttämällä yksittäisiä tapahtumien tiivisteitä. Yksittäiset tapahtumahajautukset tunnetaan myös nimellä Transaction ID. 

Lehtisolmut ovat solmuja, jotka sisältävät tapahtumadatan hajautuksia. Muiden kuin lehtisolmujen tapauksessa ne tallentavat kahden edellisen tiivisteen hashin.

Merkle-puiden toinen tärkeä ominaisuus on, että se on luonteeltaan binäärinen. Tämä tarkoittaa, että se vaatii lehtisolmujen olevan tasaisia, jotta se toimii. Siinä tapauksessa, että lehtisolmuja on pariton määrä, se yksinkertaisesti kopioi viimeisen hashin ja tekee siitä tasaisen.

 

Esimerkki

Yritetään ymmärtää se ottamalla esimerkki.

Merkle Tree -esimerkki

Tässä näemme, että lohkossa on tapahtunut neljä tapahtumaa. Nämä tapahtumat on nimetty X, Y, Z ja W. Tapahtumat sitten tiivistetään ja tallennetaan sitten lehtisolmuihin, joita kutsumme nimellä Hash X, Hash Y, Hash Z ja Hash W.

Kun se on tehty, Hash X: n, Y: n, Z: n ja W: n lehtisolmut sekoitetaan jälleen ja luodaan XY: n ja ZW: n yhdistetyksi hashiksi. Lopuksi näitä kahta hajautusta käytetään luomaan Merkle Root tai Root Hash.

Koko hajautusprosessi voidaan tehdä erittäin suurella tietojoukolla, mikä tekee Merkle Trees -tietorakenteesta hyödyllisen hajautettujen verkkojen tapauksessa.

Kuten aiemmin keskustelimme, hajautusalgoritmien käyttö riippuu toteutuksesta. Yksi yleisimmistä käytetyistä hajautusfunktioista sisältää kuitenkin SHA-2-salauksen hajautusfunktion. 

Joten tapahtuma voidaan tarkistaa, jos edelliset tapahtumat ovat todennettavissa, hash-arvojen ansiosta.

 

Entä tietojen eheys?

Merkle-puu on ihanteellinen tietojen eheyden kannalta. Ei myöskään tarvitse käydä läpi koko tapahtumaa sen todentamiseksi. Tapahtumat voidaan tarkistaa käyttämällä lohkon otsikkoon tallennettuja tietoja. Merklen juuriarvoa muutetaan myös aiempien tapahtumien mukaan.

Tämä tarkoittaa myös, että juuriarvoja muutetaan usein ja niitä voidaan käyttää tapahtumien tarkistamiseen melkein välittömästi. 

Kaikki nämä voivat kuulostaa hieman samanlaisilta kuin hash-lista, mutta tämä ei ole totta. Hajautusluetteloa varten sinun on ladattava täydellinen luettelo tapahtumien tai tietojen vahvistamiseksi.

Merkle-puun tapauksessa voit ladata haaran ja käyttää sitä sitten tapahtumien vahvistamiseen.

Tapahtumien vahvistamiseksi ei tarvitse ladata koko puuta. Tämä tarkoittaa myös sitä, että koko puu voidaan jakaa pieniin tietolohkoihin, joita voidaan käyttää tapahtumien tarkistamiseen verkon kautta. Käsite tunnetaan nimellä Merkle todistaa.

Voit myös tarkistaa Merkle-puupythonin – Merkle-puun toteutuksen Pythonissa artikla.

 

Kuinka Merklen puut toimivat Bitcoinissa

Bitcoin oli ensimmäinen kryptovaluutta, joka käytti Merklen puita tehokkaasti. Varmistaakseen, että hajautusarvot ovat suojattuja eikä niitä voida helposti peruuttaa, se käyttää tunnettua Secure Hasash -algoritmia SHA-256. Tämä tarkoittaa myös sitä, että hash-arvojen tuotos on 256 bittiä pitkä. Merklen puita käytetään ytimessä tietojen tallentamiseen ja myös liiketoimien karsimiseen.

Lue myös: Kuinka aloittaa Blockchainin käyttö

Bitcoinissa kukin lohko on yhdistetty edellisiin lohkoihin hash-arvojen avulla. Näin koko lohkoketju luodaan. Lohkossa on lohkootsikot, jotka sisältävät tärkeitä tietoja, kuten:

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

Saadaksemme paremman käsityksen katsotaan alla olevaa kaaviota. Se on otettu Bitcoin-valkopaperi itse.

Kuvateksti: Merklen puut Bitcoinissa

Kuten näette, se vaatii kaivostyöläisten sisällyttämään tapahtumat tapahtumaan. Kun se on tehty, se sekoitetaan ja siitä tulee osa Merkle-puuta.

Merkle-puiden käyttö tällä tavalla voi johtaa moniin etuihin. Tähän sisältyy yksi merkittävä etu, yksinkertainen maksun vahvistus (SPV). Nämä SVP: t ovat solmuja, joita voidaan kutsua myös kevyiksi asiakkaiksi. Joten mitä he tekevät? He yksinkertaisesti lataavat pisimmät ketjulohkojen otsikot, joten heidän ei tarvitse ladata koko lohkoketjua. Kaikkien näiden tekemiseksi heidän on tarkistettava, onko sillä tallennettuja lohkootsikoita pisimmälle ketjulle. Näin Merkle-puun toteutus tapahtuu bitcoinissa.

Loppujen lopuksi SPV voi käyttää Merkle Proof of Map -ohjelmaa ja vahvistaa tapahtuman Merkle-puun juurihajalla. 

Merklen puiden käyttö Ethereumissa

Ethereum-lohkoketju hyödyntää myös Merklen puita. Tässä lähestymistapa on kuitenkin erilainen kuin se, miten bitcoin hyödynsi sitä. Ethereumissa käytetään Merkle Patricia -puuta, joka on monimutkainen versio Merkle-puusta. Tämä on mahdollista, koska Ethereum on Turing-täydellinen.

Jos haluat oppia lisää Merklen puiden toiminnasta Ethereumissa, tutustu yksityiskohtaiseen viestiin tässä.

Muita Merklen puiden toteutus: Käytä tapauksia

Siellä on tietysti muita Merkle-puiden toteutuksia. Yksi suosituimmista on Git – hajautettu versionhallintajärjestelmä. Ohjelmoijat ympäri maailmaa käyttävät sitä projektien hallintaan. 

Toinen hyödyllinen toteutus nähdään Planeettojen välinen tiedostojärjestelmä – peer-to-peer hajautettu protokolla. Se on myös avoimen lähdekoodin ja mahdollistaa tietokonelaitteiden liittymisen ja yleisen tiedostojärjestelmän käyttämisen.

Jopa varmentajat käyttävät Merklen puita hyödyksi. He käyttävät sitä mekanismissa luotettavien varmenteiden läpinäkyvyyslokien luomiseen. Koska loki on valtava, Merklen puiden avulla tietokoneet voivat tarkistaa sen tuhlaamatta liikaa aikaa ja vaivaa.

Viimeinen käyttötapaus, josta aiomme keskustella, on tietokantajärjestelmät, kuten Amazon DynamoDB ja Apache Cassandra. Nämä ei-SQL-hajautetut tietokannat hallitsevat epäjohdonmukaisuuksia Merkle-puiden avulla tietojen replikointiprosessin aikana. Jos on ongelmia, se voi päivittää tai korjata tiedot käyttämällä entropian korjausprosessia.

Lyhyesti sanottuna Merkle-puiden tapausten käyttö sisältää

  • Tietojen synkronointi
  • Tietojen todentaminen
  • Johdonmukaisuuden todentaminen

Merkle Puut hyötyvät

Tässä osassa tarkastelemme nopeasti Merkle-puun etuja.

  • Vahvista tietojen eheys: Sitä voidaan tehokkaasti käyttää tietojen eheyden vahvistamiseen.
  • Vie vähän levytilaa: Merkle-puu vie vähän levytilaa muihin tietorakenteisiin verrattuna.
  • Pieniä tietoja verkon kautta: Merkle-puut voidaan jakaa tarkkoja tietoja varten.
  • Tehokas todentaminen: Tietorakenne on tehokas, ja tietojen eheyden varmistaminen vie vain jonkin aikaa.

Johtopäätös

Merkle-puu on yksi tärkeistä tietojenkäsittelyn käsitteistä. Sitä käytetään laajalti monissa käyttötapauksissa, ja sen käyttö kryptovaluutassa on synnyttänyt vallankumouksellisen tekniikan, – blockchain.

Joten mitä tiedät Merklen puista? Kommentoi alla ja kerro siitä meille.

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