Definitie
Een Merkle tree is een hashstructuur die grote datasets samenvat tot één wortel-hash, zodat je losse data snel kunt verifiëren.
Samengevat in 10 seconden
Een Merkle tree is een boomvormige datastructuur die een grote hoeveelheid gegevens samenvat tot één enkele hash, de Merkle root. Elke laag bestaat uit hashes van de laag eronder, zodat de wortel verandert zodra ook maar één onderliggend gegeven wijzigt. Daardoor kun je controleren of een stuk data tot de set behoort zonder alles op te halen.
Merkle tree samengevat
- Een Merkle tree vat een dataset samen in één wortel-hash, de Merkle root
- Elke knoop is de hash van zijn twee kinderen; wijzig één gegeven en de root verandert
- Met een Merkle proof bewijs je dat één transactie in een blok zit, zonder het hele blok te downloaden
- Blockchains als Bitcoin en Ethereum gebruiken de structuur om data compact en controleerbaar te houden
Wat een Merkle tree precies is
Het uitgangspunt is een hashfunctie: een rekenregel die elk stuk data omzet in een vaste, korte reeks tekens. Diezelfde invoer geeft altijd dezelfde uitvoer, maar de kleinste wijziging geeft een totaal andere hash. Een hash valt bovendien niet terug te rekenen naar de oorspronkelijke data.
In een Merkle tree staan de losse gegevens onderaan, als bladeren. Van elk gegeven wordt eerst een hash gemaakt. Vervolgens worden die hashes twee aan twee samengevoegd en opnieuw gehasht, tot er één hash overblijft. Die laatste hash bovenaan is de Merkle root. Hij is een vingerafdruk van álle onderliggende data tegelijk.
Hoe de boom wordt opgebouwd
Stel je vier transacties voor: A, B, C en D. Eerst krijgt elke transactie een eigen hash. Daarna worden hash(A) en hash(B) gecombineerd tot één nieuwe hash, en hash(C) en hash(D) tot een andere. Die twee uitkomsten worden nog één keer samengevoegd. Het resultaat is de root.
Het effect van die opbouw is dat een verandering laag in de boom omhoog doorwerkt. Verander één letter in transactie C, dan verandert hash(C), daarna de hash van het CD-paar, en uiteindelijk de root. Eén afwijkende root verraadt dus dat er ergens iets niet klopt, zonder dat je hoeft te weten wáár.
Is het aantal bladeren oneven? Dan wordt de laatste hash meestal met zichzelf gepaard, zodat elke laag netjes in paren opgaat.
Waarvoor blockchains een Merkle tree gebruiken
De grootste winst zit in verificatie. Een blok in een blockchain bevat soms duizenden transacties, maar in de blokheader staat alleen de Merkle root. Een lichte client — denk aan een wallet op je telefoon — hoeft daardoor niet het hele blok te bewaren om te controleren of één specifieke transactie erin staat.
Dat controleren gebeurt met een Merkle proof: een korte lijst van naburige hashes waarmee je de root opnieuw kunt narekenen. Klopt de uitkomst met de root in de header, dan zat de transactie in het blok. Buiten crypto duikt dezelfde structuur op in versiebeheersysteem Git en in het bestandsnetwerk IPFS, telkens om data efficiënt te vergelijken en op fouten te controleren.
Welke varianten er bestaan
Niet elke keten gebruikt exact dezelfde boom. De varianten verschillen in wat ze opslaan en hoe snel je een waarde kunt opzoeken of bijwerken.
| Variant | Waar gebruikt | Kenmerk |
|---|---|---|
| Binaire Merkle tree | Bitcoin | Transacties per blok, alleen lidmaatschap aantonen |
| Merkle Patricia trie | Ethereum | Sleutel-waardeparen, ook saldo's en contractstatus opzoekbaar |
| Merkle-DAG | IPFS, Git | Geen vaste boom maar gerichte graaf, voor versies en bestanden |
De binaire variant is het eenvoudigst: hij bewijst alleen dát een transactie meedeed. Een Patricia trie kan daarnaast de actuele staat van de hele keten samenvatten, zoals het saldo achter elk adres. Een Merkle-DAG laat meerdere ouders per knoop toe, handig wanneer dezelfde data in verschillende versies terugkomt.
Een Merkle proof stap voor stap
Terug naar de boom met A, B, C en D. Je wilt aantonen dat transactie A erin zat. De keten geeft je twee hashes mee: hash(B) en de hash van het CD-paar. Zelf bereken je hash(A). Daarmee heb je genoeg om hash(A) en hash(B) te combineren, dat resultaat met de CD-hash samen te voegen en zo de root te reconstrueren.
Komt jouw uitkomst overeen met de root in de blokheader, dan is het bewijs rond. Je hebt slechts twee extra hashes nodig in plaats van alle transacties. Bij een blok met duizenden transacties scheelt dat enorm aan opslag en bandbreedte, wat juist op apparaten met weinig geheugen telt.
Grenzen en zwakke plekken van Merkle trees
Een Merkle tree bewijst dat data niet ongemerkt is gewijzigd, maar zegt niets over de inhoud zelf. Of een transactie geldig of zinvol is, valt buiten de structuur — dat beoordeelt het netwerk met andere regels. De boom is een controlemiddel, geen oordeel.
De veiligheid leunt volledig op de hashfunctie. Zou iemand twee verschillende invoeren met dezelfde hash kunnen verzinnen (een botsing), dan valt de garantie weg. De moderne hashfuncties achter Bitcoin en Ethereum gelden vooralsnog als bestand tegen zulke aanvallen, maar de structuur is nooit sterker dan de hash eronder.
Voor jou als belegger is een Merkle tree vooral achtergrondtechniek: het is een reden waaróm een blockchain als grootboek lastig te vervalsen is. Crypto-activa zelf vallen in de EU onder de MiCA-verordening, met de AFM en DNB als toezichthouders in Nederland en de FSMA in België; reclame voor crypto draagt in België een verplichte risicowaarschuwing. Deze uitleg is educatief en geen beleggingsadvies.
Veelgestelde vragen over merkle tree
De Merkle tree is de volledige boom van hashes; de Merkle root is de ene hash bovenin die de hele boom samenvat. De root is dus de uitkomst, de tree het rekenwerk eronder.
Om transacties compact te bewaren en snel te verifiëren. In de blokheader staat alleen de root, zodat een wallet kan controleren of een transactie in een blok zit zonder het hele blok op te slaan.
Nee. Een hash valt niet terug te rekenen naar de invoer. De root bewijst alleen of data ongewijzigd is; de gegevens zelf moet je apart hebben.
Dan verandert de hash van die transactie, en die wijziging werkt via alle tussenlagen door tot de root. Een afwijkende root signaleert meteen dat er iets is aangepast.
Kennischeck
Test je kennis
Beantwoord 5 korte vragen om deze les af te ronden.
Je hebt minstens 4 goede antwoorden nodig.
Bronnen
- www.afm.nl/nl-nl/consumenten — **AFM — consumenteninformatie over beleggen**