Hvordan bygges Merkle-roden?
Start med ID'et for hver transaktion i blokken. Det er i sig selv et dobbelt SHA-256-hash. Sæt dem i rækkefølge med coinbase først. Sæt dem sammen to og to, og hash hvert par. Nu har du halvt så mange hashes. Gentag, indtil der kun er én tilbage: Merkle-roden.
Hvis et niveau har et ulige antal hashes, parres den sidste med sig selv. Ændr en transaktion, selv med én satoshi, og alle hashes på dens vej til toppen ændres, inklusive roden. Prøv det i demoen ovenfor.
Hvorfor et træ og ikke én stor hash?
Beviser. For at vise, at en transaktion er med i en blok, skal du kun bruge hashene langs dens gren, ikke hele blokken. En blok med omkring 4.000 transaktioner kræver kun 12 af dem, altså et par hundrede bytes. I Satoshis whitepaper beskrives lette wallets, der tjekker betalinger på denne måde og kun gemmer blokheadere.
Det har også betydning for mining. Når en miner ændrer den ekstra nonce i coinbase-transaktionen, ændres Merkle-roden, og blokheaderen får et nyt sæt noncer at prøve.
Kilder
- Bitcoin: Et peer-to-peer elektronisk kontantsystem · Satoshi Nakamoto, 2008
- Reference til blockchain: headere, Merkle-træer, mål · Bitcoin developer documentation
- Merkle-træ · Bitcoin Wiki
Live-tal på denne side kommer fra CloudMineCrypto API og offentlige blockchain-data. De opdateres jævnligt og er mærket dér, hvor de vises. Kun til læring, ikke finansiel rådgivning.