Een gids voor merkle-bomen

Heb je gehoord over Merkle-bomen bij het bespreken van blockchain-technologie? Dat komt omdat de Merkle-boom de kern vormt van de technologie zelf. 

Dus, wat is het precies??

In dit artikel gaan we dieper in op de Merkle-boom en begrijpen we de rol ervan om blockchain-technologie tot een succes te maken.

Laten we beginnen.

 

Wat is een Merkle Tree?

Een Merkle-boom is een gegevensstructuur die wordt gebruikt voor veilige verificatie van gegevens in een grote inhoudspool. Het is ook efficiënt en consistent als het gaat om het verifiëren van de gegevens.

Ethereum en Bitcoin gebruiken beide Merkle Trees.

Het probleem: In de kern van het gecentraliseerde netwerk zijn gegevens toegankelijk vanaf één enkele kopie. Dit betekent dat ze niet veel hoeven te doen om gegevens op te slaan of er toegang toe te krijgen. Als het echter om het gedecentraliseerde blockchain-netwerk gaat, lopen de zaken in de war omdat elke gegevens tussen de knooppunten wordt gekopieerd. Het is dus een uitdaging om efficiënt toegang te krijgen tot gegevens. De uitdaging is ook om een ​​kopie van de gegevens te maken en deze tussen knooppunten te delen. Bovendien moeten de gedeelde gegevens worden geverifieerd voor elk van de ontvangende knooppunten.

De oplossing: Merkle Trees stellen gedecentraliseerde blockchains in staat om gegevens te delen, te verifiëren en betrouwbaar te maken. Het organiseert gegevens zo dat er niet veel rekenkracht nodig is om gegevens te delen en te verifiëren. Het vergemakkelijkt ook de veilige transactie dankzij het gebruik van hash-functies en cryptografie.

Satoshi Nakamoto was de eerste persoon die Merkle-bomen implementeerde in blockchain-technologie via Bitcoin. Zijn gebruik opende een nieuwe tak van informatica waar geen gecentraliseerde autoriteit nodig is. Hij gebruikte ook in overmatige mate Merkle-bomen en gebruikte Fast Merkle-bomen.

Het concept werd echter voor het eerst geïntroduceerd door Ralph Merkle, die het in 1979 patenteerde. Het werd naar hem vernoemd.

Lees ook Hyperledger Cactus: A New Hyperledger Framework


Cryptografische hash-functies

Voordat we Merkle-bomen bespreken, moeten we een beter begrip krijgen van de cryptografische hashfunctie.

Een hash-functie is verantwoordelijk voor het in kaart brengen van elke vorm van willekeurige gegevens van elke lengte naar een uitvoer met een vaste grootte. Het is een cryptografische functie en wordt daarom veel gebruikt in cryptografie.

De hash-functies zijn efficiënt en staan ​​bekend om hun enige eigenschap, d.w.z. de functie kan niet worden teruggedraaid. Het is een eenrichtingsfunctie die is ontworpen om alleen op deze manier te werken. 

Hashing heeft meerdere toepassingen, waaronder

  • Wachtwoord beveiliging
  • Controle en verificatie van bestandsintegriteit
  • Cryptogeld

Er zijn meerdere hash-families waaronder Message Direct (MD), Secure Hash Function (SHF) en RIPE Message Direct (RIPEMD).

Als u een SHA256-hash-algoritme gebruikt en 101Blockchains als invoer doorgeeft, krijgt u de volgende uitvoer

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Om het samen te vatten, zijn de belangrijkste eigenschappen van hash-functies:

  • Deterministisch
  • Bestand vóór afbeelding
  • Computationeel efficiënt
  • Kan niet worden omgekeerd
  • Bestand tegen botsingen

Als je meer wilt weten over de cryptografische hash-functies, bekijk dan hier de gedetailleerde artikelen: 

Hoe werken Merkle-bomen?

Nu we een redelijk goed begrip hebben van de hash-functies, is het nu tijd om meer te leren over Merkle Trees.

Dus technisch gezien zijn Merkle-bomen datastructuurbomen waarbij het niet-bladknooppunt wordt gedefinieerd als een hash-waarde van de respectieve onderliggende knooppunten.

Dit betekent ook dat de Merkle-boom naar beneden wordt omgekeerd, waarbij de bladknooppunten het laagste knooppunt zijn. 

Laten we, om een ​​beter begrip te krijgen van wat ik probeer over te brengen, eens kijken naar het voorbeeld van de Merkle-boom:

Bron: wikipedia

In de kern van Merkle-bomen moeten we drie belangrijke termen leren. Ze zijn zoals hieronder:

  • Merkle Root
  • Bladknooppunten
  • Niet-bladknooppunten

Als je de Merkle-boom als geheel bekijkt, is het een omgekeerde boom. De boom is in staat om zelf een hele reeks transacties samen te vatten. Dit betekent dat de gebruiker kan controleren of een transactie deel uitmaakt van het blok of niet.

Om Merkle-bomen te laten werken, wordt hashing gebruikt. Het doet gewoon de hash-paren knooppunten herhaaldelijk totdat er nog maar één hash-waarde over is. De linker hash-waarde staat bekend als Merkle Root of de Root Hash. De boom wordt van onderaf gemaakt met behulp van de individuele transactiehashes. De individuele transactie-hashes worden ook wel transactie-ID’s genoemd. 

De bladknooppunten zijn de knooppunten die transactionele datahashes bevatten. In het geval van de niet-bladknooppunten slaan ze de hash op van de twee voorgaande hashes.

Een andere belangrijke eigenschap van Merkle-bomen is dat het binair van aard is. Dit betekent dat het bladknooppunten vereist om gelijk te zijn om het te laten werken. In het geval dat er een oneven aantal leaf-knooppunten is, zal het eenvoudig de laatste hash dupliceren en deze gelijk maken.

 

Een voorbeeld

Laten we het proberen te begrijpen door een voorbeeld te nemen.

Merkle Tree-voorbeeld

Hier zien we dat er vier transacties hebben plaatsgevonden in het blok. Deze transacties heten X, Y, Z en W. De transacties worden vervolgens gehasht en vervolgens opgeslagen in leaf-knooppunten die we Hash X, Hash Y, Hash Z en Hash W noemen.

Als je klaar bent, worden de bladknooppunten van Hash X, Y, Z en W opnieuw gehasht en gemaakt tot een gecombineerde hash van XY en ZW. Ten slotte worden deze twee hashes gebruikt om de Merkle Root of Root Hash te maken.

Het hele proces van hashing kan worden gedaan op een zeer grote dataset, waardoor de Merkle Trees-datastructuur nuttig is in het geval van gedecentraliseerde netwerken.

Zoals we eerder hebben besproken, hangt het gebruik van hash-algoritmen af ​​van de implementatie. Een van de meest voorkomende hash-functies die worden gebruikt, omvat echter de SHA-2 cryptografische hash-functie. 

Een transactie kan dus worden geverifieerd als de vorige transacties verifieerbaar zijn, dankzij de hash-waarden.

 

Hoe zit het met gegevensintegriteit?

Merkle-structuur is ideaal voor gegevensintegriteit. Het is ook niet nodig om de hele transactie te doorlopen om de verifieerbaarheid ervan te zien. De transacties kunnen worden geverifieerd met behulp van de informatie die is opgeslagen in de blokheader. De Merkle-rootwaarde wordt ook gewijzigd afhankelijk van de eerdere transacties.

Dit betekent ook dat de root-waarden regelmatig worden gewijzigd en kunnen worden gebruikt om transacties vrijwel onmiddellijk te verifiëren. 

Deze kunnen allemaal een beetje lijken op de hash-lijst, maar dit is niet waar. Voor een hash-lijst moet u de volledige lijst downloaden om transacties of gegevens te verifiëren.

In het geval van de Merkle-structuur kunt u de tak downloaden en deze vervolgens gebruiken om de transacties te verifiëren.

Het is niet nodig om de hele stamboom te downloaden om transacties te verifiëren. Dit betekent ook dat de hele boom kan worden onderverdeeld in kleine datablokken die kunnen worden gebruikt om transacties over het hele netwerk te verifiëren. Het concept staat bekend als Merkle bewijst.

Je kunt ook de Merkle-boompython bekijken – een Merkle-boomimplementatie in Python artikel.

 

Hoe Merkle Trees werken in Bitcoin

Bitcoin was de eerste cryptocurrency die Merkle-bomen effectief gebruikte. Om ervoor te zorgen dat de hash-waarden worden beschermd en niet gemakkelijk kunnen worden teruggedraaid, maakt het gebruik van het beroemde Secure Hashing-algoritme SHA-256. Dit betekent ook dat de output van de hash-waarden 256 bits lang is. In de kern worden Merkle-bomen gebruikt om gegevens op te slaan en ook om transacties te snoeien.

Lees ook Hoe u aan de slag kunt met Blockchain

In bitcoin is elk blok verbonden met eerdere blokken met behulp van hash-waarden. Dit is hoe de hele blockchain wordt gemaakt. In een blok zijn er blokkoppen die belangrijke informatie bevatten, zoals:

  • Merkle Root Hash
  • Blok versienummer
  • Tijdstempel
  • Nonce
  • Mijnbouw moeilijkheidsgraad
  • Vorige Block Hash

Laten we het onderstaande diagram eens bekijken om een ​​beter begrip te krijgen. Het is afkomstig uit de Bitcoin-whitepaper zelf.

Bijschrift: Merkle-bomen in Bitcoin

Zoals u kunt zien, vereist het dat mijnwerkers de transacties in het blok opnemen. Als het eenmaal is gedaan, wordt het gehasht en wordt het onderdeel van de Merkle-boom.

Het gebruik van Merkle Trees kan op deze manier tot meerdere voordelen leiden. Dit omvat een opmerkelijk voordeel, namelijk Simple Payment Verification (SPV). Deze SVP’s zijn knooppunten die ook wel lichtgewicht klanten kunnen worden genoemd. Dus, wat doen ze? Ze downloaden simpelweg de langste chain block headers en hoeven dus niet de hele blockchain te downloaden. Om dit allemaal te doen, moeten ze controleren of het de opgeslagen block headers voor de langste keten heeft. Dit is hoe Merkle-boomimplementatie wordt gedaan in bitcoin.

Uiteindelijk kan een SPV vervolgens het Merkle Proof of Map gebruiken en een transactie verifiëren met behulp van de root-hash van de Merkle-boom. 

Hoe Merkle Trees wordt gebruikt in Ethereum

Ethereum-blockchain maakt ook gebruik van Merkle-bomen. De benadering hier is echter anders dan die van hoe bitcoin het gebruikte. In Ethereum wordt Merkle Patricia Tree gebruikt, een complexe versie van de Merkle-boom. Dit is mogelijk omdat Ethereum Turing-compleet is.

Als je meer wilt weten over hoe Merkle-bomen werken in Ethereum, bekijk dan het gedetailleerde bericht hier.

Andere Merkle Trees-implementatie: use cases

Er zijn natuurlijk andere Merkle-bomen-implementatie die er zijn. Een van de meest populaire is Git – een gedistribueerd versiebeheersysteem. Het wordt gebruikt door programmeurs van over de hele wereld om hun projecten te beheren. 

Een andere nuttige implementatie is te zien in Interplanetair bestandssysteem – een peer-to-peer gedistribueerd protocol. Het is ook open-source en stelt computerapparatuur in staat zich aan te sluiten en een alomtegenwoordig bestandssysteem te gebruiken.

Zelfs certificeringsinstanties gebruiken Merkle-bomen in hun voordeel. Ze gebruiken het in het mechanisme om verifieerbare certificaattransparantielogboeken te maken. Omdat het logboek enorm is, stellen Merkle-bomen computers in staat het te verifiëren zonder al te veel tijd en moeite te verspillen.

De laatste use-case die we gaan bespreken, zijn databasesystemen zoals Amazon DynamoDB en Apache Cassandra. Deze niet-SQL-gedistribueerde databases nemen de controle over inconsistenties met behulp van Merkle-bomen tijdens het gegevensreplicatieproces. Als er problemen zijn, kan het de gegevens bijwerken of repareren met behulp van het anti-entropieherstelproces.

Kortom, het gebruik van gevallen van Merkle-bomen omvat

  • Gegevenssynchronisatie
  • Gegevensverificatie
  • Consistentieverificatie

Merkle Trees voordelen

In dit gedeelte zullen we een korte blik werpen op de voordelen van de Merkle-boom.

  • Valideer de integriteit van gegevens: Het kan effectief worden gebruikt om de integriteit van de gegevens te valideren.
  • Neemt weinig schijfruimte in beslag: Merkle-boom neemt weinig schijfruimte in beslag in vergelijking met andere datastructuren.
  • Kleine informatie over netwerken: Merkle-bomen kunnen ter verificatie worden onderverdeeld in kleine informatie.
  • Efficiënte verificatie: De datastructuur is efficiënt en duurt slechts een tijdje om de integriteit van de data te verifiëren.

Gevolgtrekking

De Merkle-boom is een van de belangrijke concepten in de informatica. Het wordt veel gebruikt in veel use-cases en het gebruik ervan in cryptocurrency heeft geleid tot een revolutionaire technologie, – blockchain.

Dus, wat weet je over Merkle-bomen? Reageer hieronder en laat het ons weten.

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