En guide til Merkle Trees

Har du hørt om Merkle-trær når du diskuterer blockchain-teknologi? Det er fordi Merkle-treet er kjernen i selve teknologien.

Så hva er det egentlig??

I denne artikkelen vil vi gå gjennom Merkle-treet grundig og forstå dets rolle i å gjøre blockchain-teknologi til en suksess.

merkle tree

La oss komme i gang.

Hva er et merkeltre?

Et Merkle-tre er en datastruktur som brukes til sikker verifisering av data i et stort innholdsbasseng. Det er også effektivt og konsekvent når det gjelder å verifisere dataene.

Ethereum og Bitcoin bruker begge Merkle Trees.

Problemet: I kjernen av det sentraliserte nettverket kan du få tilgang til data fra en enkelt kopi. Dette betyr at de ikke trenger å gjøre mye for å lagre eller få tilgang til data. Imidlertid, når det gjelder det desentraliserte blockchain-nettverket, går ting i orden når hver data kopieres mellom nodene. Så det er en utfordring å få tilgang til data effektivt. Utfordringen er også å lage en kopi av dataene og dele dem mellom noder. I tillegg må de delte dataene verifiseres for hver av de mottakende nodene.

Løsningen: Merkle Trees gjør det mulig for desentraliserte blokkeringer å dele data, verifisere dem og gjøre dem pålitelige. Den organiserer data på en slik måte at ikke mye prosessorkraft er nødvendig for å dele og verifisere data. Det letter også den sikre transaksjonen takket være bruken av hash-funksjoner og kryptografi.

Satoshi Nakamoto var den første personen som implementerte Merkle-trær i blockchain-teknologi via Bitcoin. Hans bruk åpnet for en ny gren av informatikk der det ikke er behov for en sentralisert autoritet. Han brukte også Merkle-trær i overdreven grad og brukte raske Merkle-trær.

Konseptet ble imidlertid først introdusert av Ralph Merkle, som patenterte det i 1979. Det ble oppkalt etter ham.


Les også, Hyperledger Cactus: A New Hyperledger Framework

Kryptografiske Hash-funksjoner

Før vi diskuterer Merkle-trær, må vi få en bedre forståelse av kryptografisk hash-funksjon.

En hash-funksjon er ansvarlig for å kartlegge enhver form for vilkårlige data av hvilken som helst lengde til en fast størrelse. Det er en kryptografisk funksjon og blir derfor mye brukt i kryptografi.

Hashfunksjonene er effektive og er kjent for sin ene egenskap, dvs. funksjonen kan ikke reverseres. Det er en enveisfunksjon som er designet for kun å fungere på denne måten.

Hashing har flere bruksområder inkludert

  • Passordbeskyttelse
  • Kontroll og verifisering av filintegritet
  • Kryptovaluta

Det er flere hashfamilier der ute, inkludert Message Direct (MD), Secure Hash Function (SHF) og RIPE Message Direct (RIPEMD).

Hvis du bruker en SHA256-hash-algoritme og sender 101Blockchains som inngang, får du følgende utdata

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

For å oppsummere inkluderer nøkkelegenskapene til hashfunksjoner:

  • Deterministisk
  • Pre-Image Resistant
  • Beregningseffektivt
  • Kan ikke reverseres
  • Kollisjonssikker

Hvis du vil lære mer om Cryptographic Hash-funksjonene, kan du sjekke ut de detaljerte artiklene her:

Hvordan fungerer Merkle Trees?

Nå som vi har en litt god forståelse av Hash-funksjoner, er det nå på tide å lære mer om Merkle Trees.

Så, teknisk sett er Merkle-trær datastrukturstrær der ikke-bladnoden er definert som en hash-verdi av sine respektive underordnede noder.

Dette betyr også at Merkle-treet er invertert ned der bladnodene er den laveste noden.

For å få en bedre forståelse av hva jeg prøver å formidle, la oss se på eksemplet på Merkle-treet:

Merkle-trær

Kilde: Wikipedia

I kjernen av Merkle-trær må vi lære oss tre viktige begreper. De er som nedenfor:

  • Merkle Root
  • Bladknuter
  • Ikke-bladnoder

Hvis du tar en titt på Merkle-treet som helhet, er det et opp-ned-tre. Treet er i stand til å oppsummere et helt sett med transaksjoner av seg selv. Dette betyr at brukeren kan verifisere om en transaksjon er en del av blokken eller ikke.

For å få Merkle-trær til å fungere, brukes hashing. Det gjør bare hashing-parene av noder gjentatte ganger til bare en hash-verdi er igjen. Den venstre hashverdien er kjent som Merkle Root eller Root Hash. Treet blir opprettet nedenfra og opp ved hjelp av de enkelte transaksjonshashene. De individuelle transaksjonshashene er også kjent som Transaction IDs.

Bladnodene er nodene som inneholder transaksjonsdata-hashes. Når det gjelder ikke-bladnoder, lagrer de hasjen til de to forrige hasjene.

En annen viktig egenskap ved Merkle-trær er at de er binære. Dette betyr at det krever at bladnoder er like for at det fungerer. I tilfelle hvis det er et ulikt antall bladnoder, vil det ganske enkelt duplisere den siste hasjen og gjøre den jevn.

Et eksempel

La oss prøve å forstå det ved å ta et eksempel.

merkle-tree-eksempel

Merkle Tree Eksempel

Her ser vi at fire transaksjoner har funnet sted i blokken. Disse transaksjonene heter X, Y, Z og W. Transaksjonene blir deretter hash og deretter lagret i bladnoder som vi kaller Hash X, Hash Y, Hash Z og Hash W.

Når det er gjort, blir bladnodene til Hash X, Y, Z og W igjen hasjet og opprettet til en kombinert hash av XY og ZW. Til slutt brukes disse to hasjene til å lage Merkle Root eller Root Hash.

Hele prosessen med hashing kan gjøres på et veldig stort datasett som gjør Merkle Trees datastruktur nyttig når det gjelder desentraliserte nettverk.

Som vi diskuterte tidligere, avhenger bruk av algoritmer av implementering. Imidlertid inkluderer en av de vanligste hashfunksjonene som brukes SHA-2 kryptografisk hashfunksjon.

Så en transaksjon kan verifiseres hvis de tidligere transaksjonene er verifiserbare, takket være hashverdiene.

Hva med dataintegritet?

Merkle-treet er ideelt for dataintegritet. Det er heller ikke nødvendig å gå gjennom hele transaksjonen for å se om den kan verifiseres. Transaksjonene kan verifiseres ved bruk av informasjonen som er lagret i blokkoverskriften. Merkle-rotverdien endres også avhengig av tidligere transaksjoner.

Dette betyr også at rotverdiene endres ofte og kan brukes til å verifisere transaksjoner nesten umiddelbart.

Alle disse kan høres litt ut som hash-listen, men dette er ikke sant. For en hash-liste må du laste ned hele listen for å bekrefte transaksjoner eller data.

Når det gjelder Merkle-treet, kan du laste ned grenen og deretter bruke den til å verifisere transaksjonene.

Det er ikke nødvendig å laste ned hele treet for å bekrefte transaksjoner. Dette betyr også at hele treet kan deles inn i små datablokker som kan brukes til å verifisere transaksjoner over hele nettverket. Konseptet er kjent som Merkle bevis.

Du kan også sjekke ut Merkle Tree Python – en implementering av Merkle Tree i Python artikkel.

Hvordan fungerer Merkle Trees i Bitcoin

Bitcoin var den første kryptovalutaen som brukte Merkle-trær effektivt. For å sikre at hashverdiene er beskyttet og ikke kan reverseres enkelt, bruker den den berømte Secure Hashing Algorithm SHA-256. Dette betyr også at utgangene for hashverdier er 256 bits. I kjernen brukes Merkle-trær til å lagre data og også beskjære transaksjoner.

Les også, Hvordan komme i gang med Blockchain

I bitcoin er hver blokk koblet til tidligere blokker ved hjelp av hash-verdier. Slik blir hele blockchain opprettet. I en blokk er det blokkoverskrifter som inneholder viktig informasjon som:

  • Merkle Root Hash
  • Blokker versjonsnummer
  • Tidsstempel
  • Nonce
  • Mining Vanskelighetsmål
  • Forrige Block Hash

For å få en bedre forståelse, la oss ta en titt på diagrammet nedenfor. Det er hentet fra Hvitbok for Bitcoin seg selv.

merkle-tree-in-bitcoin

Bildetekst: Merkeltrær i Bitcoin

Som du kan se, krever det gruvearbeidere å inkludere transaksjonene i blokken. Når det er gjort, blir det hasjert og blir en del av Merkle-treet.

Bruk av Merkle Trees, på denne måten, kan føre til flere fordeler. Dette inkluderer en bemerkelsesverdig fordel, dvs. Simple Payment Verification (SPV). Disse SVP-ene er noder som også kan betegnes som lette klienter. Så hva gjør de? De laster bare ned de lengste kjedeblokkoverskriftene og trenger derfor ikke å laste ned hele blokkjeden. For å gjøre alle disse, må de verifisere om den har de lagrede blokkoverskriftene for den lengste kjeden. Slik gjennomføres Merkle-treet i bitcoin.

Til slutt kan en SPV deretter bruke Merkle Proof of Map og verifisere en transaksjon ved hjelp av Merkle-treets rothash.

Hvordan Merkle Trees brukes i Ethereum

Ethereum blockchain bruker også Merkle-trær. Tilnærmingen her er imidlertid en annen enn hvordan bitcoin brukte den. I Ethereum brukes Merkle Patricia Tree som er en kompleks versjon av Merkle-treet. Dette er mulig fordi Ethereum er Turing-komplett.

Hvis du vil lære mer om hvordan Merkle-trær fungerer i Ethereum, kan du sjekke det detaljerte innlegget her.

Andre implementeringer av Merkle Trees: Use Cases

Det er selvfølgelig andre Merkle-trær implementering der ute. En av de mest populære er Git – et distribuert versjonskontrollsystem. Den brukes av programmerere fra hele verden for å styre prosjektene sine.

En annen nyttig implementering ses i Interplanetært filsystem – en peer-to-peer distribuert protokoll. Det er også åpen kildekode og gjør at dataenheter kan bli med og bruke et allestedsnærværende filsystem.

Selv sertifikatmyndigheter bruker Merkle-trær til deres fordel. De bruker den i mekanismen for å lage verifiserbare logg for sertifikatgjennomsiktighet. Siden loggen er enorm, lar Merkle-trær datamaskiner bekrefte den uten å kaste bort for mye tid og krefter.

Den siste brukssaken vi skal diskutere er databasesystemer som Amazon DynamoDB og Apache Cassandra. Disse distribuerte databasene uten SQL tar kontroll over inkonsekvenser ved bruk av Merkle-trær under datareplikasjonsprosessen. Hvis det er noen problemer, kan den oppdatere eller reparere dataene ved hjelp av anti-entropi-reparasjonsprosessen.

Kort sagt inkluderer bruk av tilfeller av Merkle-trær

  • Datasynkronisering
  • Databekreftelse
  • Konsistensbekreftelse

Merkle Trees fordeler

I denne delen vil vi se raskt på fordelene ved Merkle-treet.

  • Valider integriteten til dataene: Den kan effektivt brukes til å validere integriteten til dataene.
  • Tar lite diskplass: Merkle-treet tar liten diskplass sammenlignet med andre datastrukturer.
  • Liten informasjon på tvers av nettverk: Merkle trær kan deles inn i liten informasjon for verifisering.
  • Effektiv verifisering: Datastrukturen er effektiv og tar bare en stund å verifisere integriteten til dataene.

Konklusjon

Merkle-treet er et av de viktigste begrepene innen informatikk. Det er mye brukt i mange brukstilfeller, og bruken i kryptovaluta har gitt opphav til en revolusjonerende teknologi, – blockchain.

Så hva vet du om Merkle-trær? Kommenter nedenfor og gi oss beskjed.

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