Merkle tree
Een Merkle tree is een hiërarchische hashstructuur waarin elk blad een data-hash is en elke parent de hash van zijn children, zodat de integriteit van een grote dataset met één root-hash gecontroleerd kan worden.
In Bitcoin gebruikt elk block een Merkle tree om alle transacties samen te vatten in één merkle root in de block header. Dat maakt twee dingen mogelijk: compacte block-headers (80 bytes), en SPV-proofs — een lichte client kan met slechts log(n) hashes bewijzen dat een transactie in een block zit, zonder het hele block te downloaden. Merkle trees zijn ook de basis van Git, ZFS, IPFS en talloze andere systemen.
Voorbeeld
Een block met 4096 transacties heeft een merkle root van 32 bytes. Om te bewijzen dat transactie #1247 erin zit, volstaan 12 hashes (log₂(4096)) — efficient zichtbaar in elke SPV-wallet.
Veelgestelde vragen
Wat is een Merkle proof?
De lijst van sibling-hashes op het pad van blad tot root. Met die hashes plus de transactie kan iedereen bereknen of de root klopt — zonder de andere 4095 transacties te hoeven zien.
Kwetsbaar voor collisions?
Bitcoin gebruikt SHA-256 dubbel. Theoretisch birthday-aanval op 128 bits effectieve sterkte, praktisch onhaalbaar tot grootschalige quantum. Veilig voor de voorzienbare toekomst.
Merkle tree vs. Merkle Mountain Range?
MMR is een variant geoptimaliseerd voor append-only data met efficiënt blijvende proofs. Gebruikt in o.a. Grin/Mimblewimble en bepaalde Bitcoin L2-designs.
Gerelateerde termen
Verder lezen
- → Onze dienst: Bitcoin & Fintech