Wat ass e Merkle Tree? Ufänger Guide fir dës Blockchain Komponent

Merkle Trees sinn e fundamentale Bestanddeel vu Blockchainen déi hir Funktionalitéit ënnersträichen. Si erlaben effizient a sécher Verifizéierung vu groussen Datestrukturen, an am Fall vu Blockchainen, potenziell grenzlos Datesets.

D'Ëmsetzung vu Merkle Beem a Blockchainen huet verschidde Effekter. Et erlaabt hinnen ze skaléieren, wärend och d'Hash-baséiert Architektur ubitt fir d'Datenintegritéit z'erhalen an e triviale Wee fir d'Integritéit vun den Donnéeën z'iwwerpréiwen.

Kryptografesch Hashfunktioune sinn déi Basisdaten Technologie déi d'Merkle Beem erlaabt ze schaffen, also als éischt ass et wichteg ze verstoen wat kryptographesch Hashfunktiounen sinn.

Quick Verdikt: Merkle Beem sinn Datestrukture besteet aus kryptographesche Hashes déi effizient Integritéitsverifizéierung a Kartéierung vu groussen Datesets erlaben, sou datt se en integralen Bestanddeel vu Systemer wéi Blockchainen a verdeelt Versiounskontrolle maachen.


Quick Facts

Schlëssel Punktendescription
Cryptographesch Hash FunktiounenHash Funktiounen déi en Input vun all Gréisst huelen an e fixe Längt Hashwäert ausginn. Benotzt an Merkle Beem.
Merkle Bam StrukturBamdatenstruktur wou all Net-Blat Node en Hash vu senge Kannerknäppchen ass. Erméiglecht effizient Kartéierung a Verifizéierung vu groussen Datesets.
Root HashHash op der Spëtzt vum Merkle Bam deen den Hash vum ganze Bam duerstellt. Akten als Fangerofdrock fir de ganzen Datesaz.
Merkle BeweiserErlaabt d'Verifizéierung vun der Dateintegritéit an der Positioun am Bam ouni de ganzen Dateset ze brauchen, nëmmen root Hash.
Ëmsetzung an BitcoinMerkle Beem späicheren Transaktiounen a Blocken. Root Hash am Block Header gespäichert erlaabt SPV Noden Transaktiounen z'iwwerpréiwen.
Aner Blockchain ImplementatiounenBenotzt a ville Blockchainen wéi Ethereum déi méi komplex Merkle Patricia Trees benotzt.
Verdeelt SystemerErlaabt Versiounskontrollsystemer wéi Git & IPFS fir einfach Daten z'iwwerpréiwen, déi tëscht Kollegen gedeelt ginn.

Kryptografesch Hash Funktiounen

Einfach gesot, eng Hash Funktioun ass all Funktioun déi benotzt gëtt fir Daten vun enger arbiträrer Gréisst (Input) op eng fix Gréisst Output ze mapen. En Hashing Algorithmus gëtt op den Dateinput applizéiert an déi resultéierend fix Längtausgang gëtt den Hash bezeechent.

Vill Hashing Algorithmen si wäit ëffentlech verfügbar a kënne ausgewielt ginn op Basis vun Äre Besoinen.

De resultéierende Hash vum arbiträren Input ass net nëmmen an der Längt fixéiert, et ass och komplett eenzegaarteg fir den Input an d'Funktioun selwer ass deterministesch. Dat ass, egal wéi oft Dir d'Funktioun um selwechten Input leeft, d'Ausgab wäert ëmmer d'selwecht sinn.

Zum Beispill, wann Dir déi folgend Datesets hei ënnen als Input hutt, sinn déi resultéierend Ausgänge eenzegaarteg fir all Input. Notéiert wéi an den zweeten an drëtten Beispiller, och wann den Ënnerscheed vun den Input nëmmen ee Wuert ass, déi resultéierend Ausgänge komplett anescht sinn.

Dëst ass ganz wichteg well et erlaabt "Fangerofdrock" vun Daten.

Eng kryptographesch Hashfunktioun, Bild vu Wikipedia

Zënter datt d'Ausgab (Hash Sum am Beispill) Längt ëmmer d'selwecht ass wéi vum benotzten Hashing Algorithmus bestëmmt, kënnen enorm Quantitéiten un Daten eleng duerch hiren resultéierende Hash identifizéiert ginn.

Mat Systemer déi massiv Quantitéiten un Daten enthalen, kënnen d'Virdeeler fir Daten mat enger fixer Längtausgang ze späicheren an z'identifizéieren enorm Späicherspueren ze kreéieren an d'Effizienz ze erhéijen.

Bannent Blockchaine ginn Hashing Algorithmen benotzt fir den Zoustand vun der Blockchain ze bestëmmen.

Blockchains si verlinkte Lëschten déi Daten enthalen an en Hash-Pointer deen op de fréiere Block weist, eng Kette vu verbonne Blocken erstellt, dohier den Numm "Blockchain".

All Block ass matenee verbonne mat engem Hash Pointer, deen den Hash vun den Donnéeën am virege Block ass zesumme mat der Adress vum fréiere Block. Andeems Dir Blocks vun Daten an dësem Format verbënnt, representéiert all resultéierend Hash vum fréiere Block de ganzen Zoustand vun der Blockchain, well all hashed Daten vun de fréiere Blocks an een Hash gehat ginn.

Dëst gëtt representéiert (am Fall vum SHA-256 Algorithmus) duerch en Ausgang (Hash) wéi dësen:

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Den Hash uewen ass de Fangerofdrock vum ganzen Zoustand vun der Blockchain virun him. Den Zoustand vun der Blockchain virum neie Block (als hashed Daten) ass den Input, an de resultéierende Hash ass den Output.

Och wann et méiglech ass kryptografesch Hashes ouni Merkle Beem ze benotzen, ass et extrem ineffizient an net skalierbar. D'Benotzung vun Hashes fir Daten an engem Block an engem Serieformat ze späicheren ass ze laang an ëmständlech.

Wéi Dir gesitt, erlaaben d'Merkle Beem eng trivial Opléisung vun der Dateintegritéit souwéi Kartéierung vun dësen Donnéeën duerch de ganze Bam mat Merkle Beweiser.


Merkle Trees and Merkle Proofs

Benannt nom Ralph Merkle, deen d'Konzept am Joer 1979 patentéiert huet, sinn Merkle Beem grondsätzlech Datestrukturbeem, wou all Net-Blatknuet en Hash vu senge jeweilege Kannerknäppchen ass.

D'Blatknäppchen sinn déi ënnescht Tier vu Wirbelen am Bam. Am Ufank kléngt et vläicht schwéier ze verstoen, awer wann Dir déi allgemeng benotzt Figur hei ënnen kuckt, gëtt et vill méi einfach ze verstoen.

Hashbaum

E Beispill vun engem binären Hashbaum, Bild vu Wikipedia

Wichteg ass, bemierkt wéi d'Net-Blattknäppchen oder "Branchen" (representéiert duerch Hash 0-0 an Hash 0-1) op der lénker Säit, Hashes vun hire jeweilege Kanner L1 a L2 sinn. Weider, bemierkt wéi d'Branche Hash 0 den Hash vu senge verbonne Kanner ass, d'Branchen Hash 0-0 an Hash 0-1.

D'Beispill hei uewen ass déi allgemengst an einfachst Form vun engem Merkle Bam bekannt als Binary Merkle Tree. Wéi Dir kënnt gesinn, gëtt et en Top Hash deen den Hash vum ganze Bam ass, bekannt als de Root Hash. Wesentlech sinn d'Merkle Beem eng Datestruktur déi "n" Zuel vun Hashes kann huelen an et mat engem eenzegen Hash representéieren.

D'Struktur vum Bam erlaabt eng effizient Kartéierung vun arbiträr grouss Quantitéiten un Daten an erméiglecht et einfach z'identifizéieren wou Ännerungen an dësen Donnéeën optrieden. Dëst Konzept erméiglecht Merkle Beweiser, mat deenen een ka verifizéieren datt d'Hashing vun Daten konsequent ass bis zum Bam an an der korrekter Positioun ouni de ganze Set vun Hashes wierklech ze kucken.

Amplaz kënne se verifizéieren datt en Datebit konsequent mam Root-Hash ass andeems se nëmmen e klengen Ënnerdeel vun den Hashes iwwerpréift anstatt de ganzen Dateset.

Soulaang de Root-Hash ëffentlech bekannt a vertraut ass, ass et méiglech fir jiddereen, deen e Schlësselwäert Lookup op enger Datebank wëllt maachen, e Merkle Beweis ze benotzen fir d'Positioun an d'Integritéit vun engem Stéck Daten an enger Datebank z'iwwerpréiwen, déi eng bestëmmte Wuerzel.

Wann de Root Hash verfügbar ass, kann den Hashbaum vun all net-vertrauenswürdege Quell opgeholl ginn an eng Branche vum Bam kann gläichzäiteg erofgeluede ginn mat direkter Verifizéierung vun der Dateintegritéit, och wann de ganze Bam nach net verfügbar ass.

Ee vun de wichtegste Virdeeler vun der Merkle Bamstruktur ass d'Fäegkeet fir arbiträr grouss Sätz vun Daten duerch en ähnlechen Hashingmechanismus ze authentifizéieren, dee benotzt gëtt fir vill méi kleng Quantitéiten un Daten z'iwwerpréiwen.

De Bam ass avantagéis fir grouss Sätz vun Daten a handhabbar méi kleng Deeler ze verdeelen, wou d'Barrière fir d'Verifizéierung vun der Integritéit wesentlech reduzéiert gëtt trotz der allgemenger méi grousser Dategréisst.

De Root Hash kann als Fangerofdrock fir e ganzen Datesaz benotzt ginn, inklusiv eng ganz Datebank oder representéiert de ganzen Zoustand vun enger Blockchain. An de folgende Rubriken wäerte mir diskutéieren wéi Bitcoin an aner Systemer Merkle Beem implementéieren.


Merkle Trees an Bitcoin

D'kryptographesch Hashfunktioun, déi vu Bitcoin benotzt gëtt, ass den SHA-256 Algorithmus. Dëst steet fir "Secure Hashing Algorithmus", deem säin Ausgang eng fix 256 Bit an der Längt ass. D'Basisfunktioun vu Merkle Beem a Bitcoin ass d'Späicheren a schliisslech Transaktiounen an all Block ze schneiden.

Wéi virdru scho gesot, Blocken an engem Blockchain sinn duerch Hashes vum fréiere Block verbonnen. A Bitcoin enthält all Block all Transaktioune bannent deem Block souwéi de Blockheader deen aus:

  • Block Versioun Zuel
  • Virdrun Block Hash
  • Timestamp
  • Biergbau Schwieregkeeten Zil
  • Nonce
  • Merkle Root Hash

D'Bild hei drënner ass aus dem Bitcoin Whitepaper an illustréiert wéi de Merkle Bam an all Block passt.

Merkle Baum

D'Transaktioune ginn a Blöcke vu Miner abegraff a ginn als Deel vun engem Merkle Bam gehat, wat zu der Merkle Root féiert, déi am Block Header gespäichert ass. Dësen Design huet eng Rei verschidde Virdeeler.

Virun allem, wéi am Whitepaper beschriwwen, erlaabt dëst d'Existenz vun Simple Payment Verification (SPV) Noden, och bekannt als "Liichtgewiicht Clienten". Dës Node mussen net de ganze Bitcoin Blockchain eroflueden, nëmmen d'Blockheader vun der längster Kette.

SPV Wirbelen kënnen dëst erreechen andeems se hir Peer Wirbelen ufroen bis se iwwerzeegt sinn datt déi gespäichert Block Header, op déi se operéieren, Deel vun der längster Kette sinn. En SPV Node ass fäeg de Status vun enger Transaktioun ze bestëmmen andeems de Merkle Beweis benotzt fir d'Transaktioun op e spezifesche Merkle Bam ze mapen mat deem jeweilege Merkle Bam säi Wuerzelhash an engem Blockheader deen Deel vun der längster Kette ass.

Zousätzlech erlaabt Bitcoin d'Implementatioun vu Merkle Beem d'Ofschneiden vun der Blockchain fir Plaz ze spueren. Dëst ass e Resultat vun nëmmen de Root-Hash, deen am Blockheader gelagert gëtt, dofir kënnen al Blöcke ofgeschnidden ginn andeems onnéideg Filialen vum Merkle Bam ewechgeholl ginn, wärend nëmmen déi fir de Merkle Beweis erhale bleiwen.


Ëmsetzung vu Merkle Trees an anere Blockchains a Systemer

Och wann Bitcoin déi éischt Blockchain war fir Merkle Beem ëmzesetzen, vill aner Blockchains implementéieren ähnlech Merkle Bamstrukturen oder nach méi komplex Versiounen.

Weider ass Merkle Bam Implementatioun net nëmme limitéiert op Blockchains a gëtt op eng Vielfalt vun anere Systemer applizéiert.

Ethereum, als déi aner erkennbarste Krypto-Währung, ass och e super Beispill vun enger anerer Merkle Bam Implementatioun. Well Ethereum turing-komplett ass als Plattform fir vill méi komplex Uwendungen ze bauen, benotzt et eng méi komplex Versioun vum Merkle Bam genannt Merkle Patricia Tree dat ass tatsächlech 3 separat Merkle Beem déi fir dräi Aarte vun Objeten benotzt ginn. Dir kënnt méi iwwer dës Beem léieren hei.

Schlussendlech si Merkle Beem e wichtege Bestanddeel vu verdeelte Versiounskontrollsystemer wéi Git an IPFS. Hir Fäegkeet fir d'Integritéit vun den Daten, déi tëscht Computeren an engem P2P Format gedeelt ginn, einfach ze garantéieren an z'iwwerpréiwen, mécht se onschätzbar fir dës Systemer.


Konklusioun

Merkle Beem sinn en integralen Bestanddeel vu Blockchainen an erlaben se effektiv mat beweisbarer Immutabilitéit an Transaktiounsintegritéit ze funktionéieren.

D'Roll ze verstoen déi se a verdeelt Netzwierker spillen an hir Basisdaten Technologie vu kryptografeschen Hashfunktiounen ass entscheedend fir d'Basiskonzepter bannent Krypto-Währungen ze begräifen wéi se weider a méi grouss a méi komplex Systemer entwéckelen.

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