Ook Merkle Tree ofhash-boom en van belang om alle transacties in een blok van de bitcoinblockchain samen te vatten tot een efficiënte datastructuur.
De vergelijking met een boom komt uit de informatica: hierin worden structuren aangeduid met ‘branches’ of vertakkingen. De ‘root’ of wortel van de boom is de uitkomst van het recursief hashen van alle data tot één hash. In de bitcoinblockchain dus de hashes van de transacties die de bladeren van de boom vormen.
Let op: een Merkleboom staat als het ware ‘op de kop’. De root zit bovenin en de ‘bladeren’ onderop.
Stel je hebt vier transacties: A, B, C en D. De vier transacties zijn allemaal een eigen blad. Eerst wordt elke transactie gehasht met een SHA256-hashingalgoritme (in het geval van bitcoin). Vervolgens worden hash A en hash B samengevoegd tot hash AB. Hetzelfde bij C en D, wat leidt tot hash CD. Hash AB en CD worden bij elkaar opgeteld en dan krijg je de Merkleroot of ‘Merkle root’ met hash ABCD.
Het maakt niet uit of er 1 of 10.000 transacties worden samengevat in de wortel; door het hashingalgoritme zal er altijd een getal van 32 bytes uitkomen.
Een Merkleboom is extreem efficiënt: bij 16 transacties zijn vier hashes nodig, bij 512 transacties 9 hashes en bij 65.535 transacties 16 hashes.1
Om te bewijzen of een transactie in een Merkleboom is opgenomen, wordt vanaf de Merkleroot de vertakking gevolgd naar het blad (de transactie). Er hoeft slechts een simpel pad afgelegd te worden. Met 16 transacties hoeven maar 4 paden ‘afgegaan’ te worden. Dit maakt het heel efficiënt en daardoor zeer bruikbaar voor grote datasets, zoals bij gebruik van light clients zoals SPV-nodes (zie nodes).