Çfarë është një pemë Merkle? Udhëzues fillestar për këtë komponent të Blockchain

Pemët Merkle janë një komponent themelor i blockchains që mbështesin funksionalitetin e tyre. Ato lejojnë verifikimin efikas dhe të sigurt të strukturave të mëdha të të dhënave, dhe në rastin e blockchains, grupe të dhënash potencialisht të pakufishme.

Zbatimi i pemëve Merkle në blockchains ka efekte të shumëfishta. Ai u lejon atyre të shkallëzohen, ndërkohë që u siguron atyre arkitekturën e bazuar në hash për të ruajtur integritetin e të dhënave dhe një mënyrë të parëndësishme për të verifikuar integritetin e të dhënave.

Funksionet hash kriptografike janë teknologjia themelore që lejojnë funksionimin e pemëve Merkle, kështu që së pari, është e rëndësishme të kuptojmë se cilat janë funksionet hash kriptografike.

Vendim i shpejtë: Pemët Merkle janë struktura të dhënash të përbëra nga hashe kriptografike që lejojnë verifikimin efikas të integritetit dhe hartimin e grupeve të mëdha të të dhënave, duke i bërë ato një komponent integral të sistemeve si zinxhirët e bllokimit dhe kontrolli i versioneve të shpërndara.


Faktet e Shpejta

Pikat kyçePërshkrim
Funksionet hash kriptografikeFunksionet hash që marrin një hyrje të çdo madhësie dhe nxjerrin një vlerë hash me gjatësi fikse. Përdoret në pemët Merkle.
Struktura e pemës MerkleStruktura e të dhënave të pemës ku çdo nyje pa gjethe është një hash i nyjeve të saj fëmijë. Mundëson hartëzimin dhe verifikimin efikas të grupeve të mëdha të të dhënave.
Root hashHash në krye të pemës Merkle që përfaqëson hash-in e të gjithë pemës. Vepron si një gjurmë gishti për grupin e plotë të të dhënave.
Merkle provatLejo verifikimin e integritetit të të dhënave dhe pozicionit në pemë pa pasur nevojë për grupin e plotë të të dhënave, vetëm hash rrënjë.
Zbatimi në BitcoinPemët Merkle ruajnë transaksionet në blloqe. Root hash i ruajtur në kokën e bllokut lejon nyjet SPV të verifikojnë transaksionet.
Implementime të tjera të blockchainPërdoret në shumë blockchain si Ethereum i cili përdor Merkle Patricia Trees më komplekse.
Sistemet e shpërndaraLejo që sistemet e kontrollit të versioneve si Git & IPFS të verifikojnë me lehtësi të dhënat e ndara midis kolegëve.

Funksionet e hashit kriptografik

E thënë thjesht, një funksion hash është çdo funksion që përdoret për të hartuar të dhënat e një madhësie (hyrje) arbitrare në një dalje me madhësi fikse. Një algoritëm hashing zbatohet në hyrjen e të dhënave dhe dalja me gjatësi fikse që rezulton referohet si hash.

Shumë algoritme hashing janë gjerësisht të disponueshme për publikun dhe mund të zgjidhen në bazë të nevojave tuaja.

Hash-i që rezulton nga hyrja arbitrare nuk është vetëm i fiksuar në gjatësi, por është gjithashtu krejtësisht unik për hyrjen dhe vetë funksioni është përcaktues. Kjo do të thotë, pavarësisht se sa herë e ekzekutoni funksionin në të njëjtën hyrje, dalja do të jetë gjithmonë e njëjtë.

Për shembull, nëse keni grupet e mëposhtme të të dhënave më poshtë si hyrje, rezultatet që rezultojnë janë unike për çdo hyrje. Vini re se si në shembullin e dytë dhe të tretë, edhe pse ndryshimi i hyrjeve është vetëm një fjalë, rezultatet që rezultojnë janë krejtësisht të ndryshme.

Kjo është shumë e rëndësishme pasi lejon "gjurmën e gishtërinjve" të të dhënave.

Një funksion hash kriptografik, Imazhi nga Wikipedia

Meqenëse gjatësia e daljes (shuma hash në shembull) është gjithmonë e njëjtë me atë të përcaktuar nga algoritmi hash i përdorur, sasi të mëdha të dhënash mund të identifikohen vetëm përmes hash-it që rezulton.

Me sistemet që përmbajnë sasi masive të dhënash, përfitimet e aftësisë për të ruajtur dhe identifikuar të dhënat me një dalje fikse të gjatësisë mund të krijojnë kursime të mëdha ruajtjeje dhe të ndihmojnë në rritjen e efikasitetit.

Brenda blockchain, algoritmet e hashimit përdoren për të përcaktuar gjendjen e blockchain.

Blockchains janë lista të lidhura që përmbajnë të dhëna dhe një tregues hash që tregon në bllokun e mëparshëm, duke krijuar një zinxhir blloqesh të lidhura, prandaj emri "blockchain".

Çdo bllok është i lidhur me njëri-tjetrin përmes një treguesi hash, i cili është hash-i i të dhënave brenda bllokut të mëparshëm së bashku me adresën e bllokut të mëparshëm. Duke lidhur blloqe të dhënash në këtë format, çdo hash që rezulton i bllokut të mëparshëm përfaqëson të gjithë gjendjen e blockchain pasi të gjitha të dhënat e hashuara të blloqeve të mëparshme hashohen në një hash.

Kjo përfaqësohet (në rastin e algoritmit SHA-256) nga një dalje (hash) si ky:

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Hashi i mësipërm është shenja e gishtit e të gjithë gjendjes së blockchain përpara tij. Gjendja e blockchain para bllokut të ri (si të dhëna të hashuara) është hyrja, dhe hash-i që rezulton është dalja.

Megjithëse është e mundur të përdoren hash kriptografikë pa pemë Merkle, ai është jashtëzakonisht joefikas dhe jo i shkallëzueshëm. Përdorimi i hasheve për të ruajtur të dhënat në një bllok në një format serie kërkon kohë dhe të rëndë.

Siç do ta shihni, pemët Merkle lejojnë zgjidhjen e parëndësishme të integritetit të të dhënave, si dhe hartimin e atyre të dhënave nëpër të gjithë pemën duke përdorur provat Merkle.


Merkle Trees dhe Merkle Proofs

Emërtuar sipas Ralph Merkle, i cili e patentoi konceptin në 1979, pemët Merkle në thelb janë pemë të strukturës së të dhënave ku çdo nyje jo fletë është një hash i nyjeve të veta përkatëse fëmijë.

Nyjet e gjetheve janë niveli më i ulët i nyjeve në pemë. Në fillim, mund të duket e vështirë për t'u kuptuar, por nëse shikoni figurën e përdorur zakonisht më poshtë, do të bëhet shumë më e lehtë për t'u kuptuar.

Pema e Hashit

Një shembull i një peme binar hash, Imazhi nga Wikipedia

E rëndësishmja, vini re se si nyjet pa gjethe ose "degët" (të përfaqësuara nga Hash 0-0 dhe Hash 0-1) në anën e majtë, janë hash të fëmijëve të tyre përkatës L1 dhe L2. Më tej, vini re se si dega Hash 0 është hash-i i fëmijëve të tij të lidhur, degëzon Hash 0-0 dhe Hash 0-1.

Shembulli i mësipërm është forma më e zakonshme dhe e thjeshtë e një peme Merkle e njohur si Pema Binare Merkle. Siç mund ta shihni, ekziston një hash i sipërm që është hash i të gjithë pemës, i njohur si hash rrënjë. Në thelb, pemët Merkle janë një strukturë të dhënash që mund të marrë numrin "n" të hasheve dhe ta përfaqësojë atë me një hash të vetëm.

Struktura e pemës lejon hartëzimin efikas të sasive të mëdha arbitrare të të dhënave dhe mundëson identifikimin e lehtë se ku ndodhin ndryshimet në ato të dhëna. Ky koncept mundëson provat Merkle, me të cilat, dikush mund të verifikojë që hashimi i të dhënave është i qëndrueshëm deri në pemë dhe në pozicionin e duhur pa pasur nevojë të shikojë në të vërtetë të gjithë grupin e hash-eve.

Në vend të kësaj, ata mund të verifikojnë që një pjesë e të dhënave është në përputhje me hash-in rrënjë duke kontrolluar vetëm një nëngrup të vogël të hash-eve dhe jo të gjithë grupin e të dhënave.

Për sa kohë që hash-i rrënjë është i njohur publikisht dhe i besuar, është e mundur për këdo që dëshiron të bëjë një kërkim të vlerës së çelësit në një bazë të dhënash të përdorë një provë Merkle për të verifikuar pozicionin dhe integritetin e një pjese të të dhënave brenda një baze të dhënash që ka një rrënjë të veçantë.

Kur hash-i rrënjë është i disponueshëm, pema hash mund të merret nga çdo burim jo i besueshëm dhe një degë e pemës mund të shkarkohet në të njëjtën kohë me verifikim të menjëhershëm të integritetit të të dhënave, edhe nëse e gjithë pema nuk është ende e disponueshme.

Një nga përfitimet më të rëndësishme të strukturës së pemës Merkle është aftësia për të vërtetuar grupe të mëdha arbitrare të të dhënave përmes një mekanizmi të ngjashëm hashing që përdoret për të verifikuar sasi shumë më të vogla të dhënash.

Pema është e dobishme për shpërndarjen e grupeve të mëdha të të dhënave në pjesë më të vogla të menaxhueshme, ku pengesa për verifikimin e integritetit është reduktuar ndjeshëm pavarësisht nga madhësia e përgjithshme e të dhënave më të mëdha.

Root hash mund të përdoret si gjurmë gishtash për një grup të tërë të dhënash, duke përfshirë një bazë të dhënash të tërë ose që përfaqëson të gjithë gjendjen e një blockchain. Në seksionet vijuese, ne do të diskutojmë se si Bitcoin dhe sistemet e tjera zbatojnë pemët Merkle.


Pemët Merkle në Bitcoin

Funksioni hash kriptografik i përdorur nga Bitcoin është algoritmi SHA-256. Kjo qëndron për "Secure Hashing Algorithm", prodhimi i të cilit është një gjatësi fikse 256 bit. Funksioni bazë i pemëve Merkle në Bitcoin është ruajtja dhe përfundimisht krasitja e transaksioneve në çdo bllok.

Siç u përmend më herët, blloqet në një blockchain lidhen përmes hash-eve të bllokut të mëparshëm. Në Bitcoin, çdo bllok përmban të gjitha transaksionet brenda atij blloku si dhe kokën e bllokut që përbëhet nga:

  • Blloko numrin e versionit
  • Blloku i mëparshëm Hash
  • Timestamp
  • Objektivi i Vështirësisë së Minierave
  • rast i vetëm
  • Merkle Root Hash

Imazhi më poshtë është nga letra e bardhë e Bitcoin dhe ilustron se si pema Merkle përshtatet në çdo bllok.

Pema e Merkle

Transaksionet përfshihen në blloqe nga minatorët dhe hashohen si pjesë e një peme Merkle, duke çuar në rrënjën Merkle që ruhet në kokën e bllokut. Ky dizajn ka një sërë përfitimesh të dallueshme.

Më e rëndësishmja, siç përshkruhet në letrën e bardhë, kjo lejon ekzistencën e nyjeve të verifikimit të thjeshtë të pagesës (SPV), të njohura gjithashtu si "klientë të lehtë". Këto nyje nuk duhet të shkarkojnë të gjithë bllokun e Bitcoin, vetëm kokat e bllokut të zinxhirit më të gjatë.

Nyjet SPV mund ta arrijnë këtë duke pyetur nyjet e tyre homologe derisa të binden se kokat e bllokut të ruajtur në të cilat po operojnë janë pjesë e zinxhirit më të gjatë. Një nyje SPV është në gjendje të përcaktojë më pas statusin e një transaksioni duke përdorur provën Merkle për të hartuar transaksionin në një pemë specifike Merkle me hash-in e rrënjës së pemës Merkle përkatëse në një kokë blloku që është pjesë e zinxhirit më të gjatë.

Për më tepër, zbatimi i pemëve Merkle nga Bitcoin lejon krasitjen e blockchain për të kursyer hapësirë. Ky është rezultat i vetëm rrënjosjes së rrënjës që ruhet në kokën e bllokut, prandaj, blloqet e vjetra mund të krasiten duke hequr degët e panevojshme të pemës Merkle duke ruajtur vetëm ato që nevojiten për provën Merkle.


Zbatimi i Pemëve Merkle në Blockchains dhe Sisteme të tjera

Megjithëse Bitcoin ishte blockchain i parë që zbatoi pemët Merkle, shumë blockchain të tjerë zbatojnë struktura të ngjashme të pemëve Merkle ose versione edhe më komplekse.

Më tej, zbatimi i pemës Merkle nuk është i kufizuar vetëm në blockchains dhe aplikohet në një sërë sistemesh të tjera.

Ethereum, duke qenë kriptomonedha tjetër më e njohur, është gjithashtu një shembull i shkëlqyer i një zbatimi të ndryshëm të pemës Merkle. Për shkak se Ethereum është i kompletuar si një platformë për ndërtimin e aplikacioneve shumë më komplekse, ai përdor një version më kompleks të pemës Merkle të quajtur Merkle Patricia Tree që në fakt është 3 pemë të veçanta Merkle të përdorura për tre lloje objektesh. Ju mund të mësoni më shumë rreth këtyre pemëve këtu.

Së fundi, pemët Merkle janë një komponent i rëndësishëm i sistemeve të kontrollit të versioneve të shpërndara si Git dhe IPFS. Aftësia e tyre për të siguruar dhe verifikuar me lehtësi integritetin e të dhënave të ndara ndërmjet kompjuterëve në një format P2P i bën ato të paçmueshme për këto sisteme.


Përfundim

Pemët Merkle janë një komponent integral i blockchains dhe në mënyrë efektive i lejojnë ato të funksionojnë me pandryshueshmëri të provueshme dhe integritet transaksioni.

Të kuptuarit e rolit që ata luajnë në rrjetet e shpërndara dhe teknologjinë e tyre themelore të funksioneve hash kriptografike është thelbësore për të kuptuar konceptet bazë brenda kriptomonedhave ndërsa ato vazhdojnë të zhvillohen në sisteme më të mëdha dhe më komplekse.

Burimi: https://blockonomi.com/merkle-tree/