Hoe wordt de Merkle-root opgebouwd?
Begin met de ID van elke transactie in het block. Elke ID is zelf een dubbele SHA-256-hash. Zet ze op volgorde, met de coinbase-transactie eerst. Koppel telkens twee naast elkaar liggende ID’s en hash elk paar. Nu heb je half zoveel hashes. Herhaal dit tot er één overblijft: dat is de Merkle-root.
Heeft een niveau een oneven aantal hashes, dan wordt de laatste aan zichzelf gekoppeld. Verander een transactie, al is het maar met één satoshi, en alle hashes op het pad naar boven veranderen, inclusief de root. Probeer het in de demo hierboven.
Waarom een boom en niet één grote hash?
Bewijzen. Om aan te tonen dat een transactie in een block zit, heb je alleen de hashes langs de tak nodig, niet het hele block. Voor een block met ongeveer 4.000 transacties heb je er maar 12 nodig, enkele honderden bytes. Satoshi’s whitepaper beschrijft light wallets die betalingen op deze manier controleren en alleen block headers bewaren.
Dit is ook belangrijk voor mining. Als een miner de extra nonce in de coinbase-transactie verandert, verandert de Merkle-root en krijgt de block header een nieuwe reeks nonces om te proberen.
Bronnen
- Bitcoin: een peer-to-peer elektronisch geldsysteem · Satoshi Nakamoto, 2008
- Naslag over de blockchain: headers, Merkle-bomen, doelwaarde · Bitcoin developer-documentatie
- Merkle-boom · Bitcoin Wiki
De live cijfers op deze pagina komen van de CloudMineCrypto API en openbare blockchaingegevens. Ze worden regelmatig bijgewerkt en waar nodig van een label voorzien. Alleen bedoeld ter informatie, geen financieel advies.