Een Merkle-boom (ook wel binaire hashboom genoemd) is een datastructuur die in blockchains wordt gebruikt om grote datasets efficiënt samen te vatten en te verifiëren. Elk bladknooppunt bevat een hash van een datablok (een transactie), elk niet-bladknooppunt bevat een hash van zijn kindknooppunten en de wortel — het Merkle wortel — is een enkele hash die alle transacties in het hele blok vertegenwoordigt.
Bitcoin en Ethereum gebruiken beide Merkle-bomen om transacties binnen elk blok te organiseren. De Merkle-root wordt opgeslagen in de blokheader, waardoor transacties mogelijk worden. Merkle-bewijzen — wiskundige bewijzen dat een specifieke transactie in een blok is opgenomen met slechts een klein aantal hashes (O(log n)) in plaats van dat alle transacties gedownload hoeven te worden. Dit maakt lichtgewicht verificatie mogelijk voor SPV en lichte clients zonder de volledige blockchain te hoeven downloaden.
Merkle Boomstructuur
4 transactions in a block: Tx1, Tx2, Tx3, Tx4
Step 1: Hash each transaction (Bitcoin uses double SHA-256)
H1 = SHA256(SHA256(Tx1)) = "abc..."
H2 = SHA256(SHA256(Tx2)) = "def..."
H3 = SHA256(SHA256(Tx3)) = "ghi..."
H4 = SHA256(SHA256(Tx4)) = "jkl..."
Step 2: Hash pairs of child nodes
H12 = SHA256(SHA256(H1 + H2)) = "mno..."
H34 = SHA256(SHA256(H3 + H4)) = "pqr..."
Step 3: Hash to root
Merkle Root = SHA256(SHA256(H12 + H34)) = "stu..."
Tree structure:
Merkle Root (stu...)
/ \
H12 (mno...) H34 (pqr...)
/ \ / \
H1(abc) H2(def) H3(ghi) H4(jkl)
| | | |
Tx1 Tx2 Tx3 Tx4
Merkle Proof for Tx3 (prove Tx3 is in block):
Provide: H4, H12
Verifier computes:
H3 = hash(Tx3) ← from the transaction itself
H34 = hash(H3 + H4) ← H4 provided
Root = hash(H12 + H34) ← H12 provided
If computed Root matches block header Root → Tx3 confirmed ✓
Data required: 2 hashes (not all 4 transactions)
For a block with 4,096 transactions:
Proof requires only 12 hashes — not 4,096
For 1,000,000 transactions: ~20 hashes
Opmerking over afwijkende transactieaantallen: Als een blok een oneven aantal transacties bevat, wordt de hash van de laatste transactie gedupliceerd om een paar te vormen — een bekende eigenaardigheid van Bitcoin's Merkle-boomimplementatie.
Toepassingen van de Merkle-boom
| Toepassing | Hoe Merkle-bomen worden gebruikt |
|---|---|
| Bitcoin-blokken | De Merkle-root van de transactie wordt opgeslagen in de blokheader; dit maakt SPV-bewijzen mogelijk voor lichte wallets. |
| Ethereum-status | Merkle Patricia Trie (MPT) voor accountstatussen, opslag en transactie-/ontvangstbewijzen; Verkle Trees gepland als upgrade. |
| Geschiktheid voor Airdrop | Merkle-bewijzen verifiëren individuele adressen on-chain zonder de volledige lijst met ontvangers in het contract op te slaan. |
| ZK bewijzen | Merkle-bewijzen kunnen worden geverifieerd binnen ZK-circuits voor compacte inclusiebewijzen. |
| Git (versiebeheer) | Git gebruikt een inhoudsgeadresseerde DAG (Directed Acyclic Graph) van objecten — een structuur die is geïnspireerd op en nauw verwant is aan Merkle-bomen. |
| Certificaattransparantie | Merkle-logboeken met alleen toevoegingen maken openbare controle mogelijk van alle uitgegeven TLS-certificaten. |
| Stateless-clients | Merkle/Verkle-bewijzen stellen knooppunten in staat blokken te verifiëren zonder de volledige toestand op te slaan. |
FAQ
V: Hoe maken DeFi-airdrops gebruik van Merkle-bomen?
Airdrops gebruiken Merkle-bomen om de geschiktheid on-chain te bewijzen zonder alle in aanmerking komende adressen in het contract op te slaan, wat op grote schaal onbetaalbaar zou zijn. Het protocol creëert een Merkle-boom van alle in aanmerking komende adressen en bedragen, en de root wordt on-chain opgeslagen. In aanmerking komende gebruikers dienen hun adres in, samen met een Merkle-bewijs – een kleine set hashes. Het contract verifieert het bewijs aan de hand van de opgeslagen root en, indien geldig, geeft het de claim vrij. Dit maakt een gas-efficiënte verificatie van miljoenen in aanmerking komende adressen mogelijk met slechts één Merkle-root van 32 bytes die on-chain is opgeslagen.
V: Wat is een Merkle Patricia Trie?
Ethereum gebruikt een complexere variant, genaamd een Merkle Patricia Trie (MPT) — een combinatie van een Merkle-boom (cryptografische hashing voor integriteitsverificatie) met een Patricia-trie (een prefix-gecomprimeerde structuur voor efficiënte sleutel-waarde-opzoeking). Ethereum onderhoudt drie afzonderlijke MPT's per blok: de staatstrie (alle rekeningsaldi en contractopslag), de transactietrie (alle transacties in het blok), en de ontvangstbewijs (resultaten en logboeken van de uitvoering van transacties). Dit maakt efficiënte statusbewijzen mogelijk — waarmee het saldo van een account of de opslagwaarde op elk historisch blok kan worden bewezen. De roadmap van Ethereum omvat de overgang van MPT's naar Verkle Bomen, die nog kleinere bewijzen produceren en stateless clients mogelijk maken.
V: Hoe helpen Merkle-bewijzen lichte clients (SPV-wallets)?
Een lichte wallet – zoals een mobiele Bitcoin-wallet – downloadt niet de volledige blockchain, maar alleen de blokheaders (80 bytes per stuk). Om te verifiëren of een transactie is bevestigd, vraagt de wallet een Merkle-bewijs aan een full node: een kleine set hashes die bewijzen dat de transactie in een specifiek blok is opgenomen. Voor een Bitcoin-blok met duizenden transacties vereist dit bewijs ongeveer 20 hashes in plaats van het downloaden van alle transacties. Dit maakt transactieverificatie mogelijk met kilobytes aan data in plaats van gigabytes, waardoor praktische mobiele cryptowallets mogelijk worden.
V: Wat gebeurt er als een Merkle-boom een oneven aantal bladeren heeft?
Bij Bitcoin wordt, als er een oneven aantal transacties is, de hash van de laatste transactie gedupliceerd zodat deze gekoppeld en gehasht kan worden. Dit is een bekende eigenaardigheid van het oorspronkelijke Merkle-boomontwerp van Bitcoin en heeft in de praktijk geen gevolgen voor de beveiliging, hoewel protocolonderzoekers het als onelegant hebben beschouwd.
V: Wat is het verschil tussen Merkle-bomen en Verkle-bomen?
Verkle-bomen zijn een voorgestelde opvolger van Merkle Patricia Tries in Ethereum. Ze maken gebruik van vectorverplichtingen (gebaseerd op elliptische curve-cryptografie) in plaats van hash-gebaseerde toezeggingen, wat resulteert in aanzienlijk kleinere bewijzen. Een Verkle-bewijs voor een groot aantal bladeren kan een fractie van de grootte hebben van een equivalent Merkle-bewijs — een cruciale eigenschap voor het mogelijk maken van stateless Ethereum-clients die niet de volledige status hoeven op te slaan.
Gerelateerde termen
SHA-256 · Cryptografische hashfunctie · Bitcoin · Ethereum · Light Client (SPV) · Airdrop · ZK-bewijs · Verkle Tree · Merkle Patricia Trie
UPay-tip: Merkle-bomen verklaren waarom blockchainverificatie efficiënt is, en niet alleen theoretisch compleet. Wanneer je een transactie op Etherscan verifieert, controleer je in feite een Merkle-bewijs. Wanneer je een airdrop claimt door een on-chain transactie in te dienen, dien je een Merkle-bewijs in dat je daarvoor in aanmerking komt. Wanneer een mobiele wallet een Bitcoin-betaling bevestigt zonder de volledige blockchain te downloaden, gebruikt deze SPV met Merkle-bewijzen. Inzicht in Merkle-bomen helpt je te begrijpen waarom blockchainverificatie zowel cryptografisch bewijsbaar als praktisch efficiënt is: je hoeft nooit alles te downloaden om iets te verifiëren.
Disclaimer: Deze inhoud is uitsluitend bedoeld voor educatieve doeleinden en vormt geen financieel advies.










