Hvordan bygges Merkle-roten?
Begynn med ID-en til hver transaksjon i blokken. Den er selv en dobbelt SHA-256-hash. Sett dem i rekkefølge, med coinbase først. Slå sammen hashene to og to, og hash hvert par. Nå har du halvparten så mange hasher. Gjenta til det bare er én igjen: Merkle-roten.
Hvis et nivå har et oddetall hasher, pares den siste med seg selv. Endrer du en transaksjon, selv med én satoshi, endres alle hasher på veien opp til toppen, også roten. Prøv det i demoen over.
Hvorfor et tre og ikke én stor hash?
Bevis. For å vise at en transaksjon er med i en blokk, trenger du bare hasher fra grenen dens, ikke hele blokken. For en blokk med omtrent 4 000 transaksjoner trenger du bare 12 av dem, noen hundre byte. Satoshis whitepaper beskriver lette lommebøker som sjekker betalinger på denne måten, og bare lagrer blokkheadere.
Dette er også viktig for mining. Når en miner endrer den ekstra noncen i coinbase-transaksjonen, endres Merkle-roten, og blokkheaderen får et nytt sett med noncer å prøve.
Kilder
- Bitcoin: Et node-til-node-basert elektronisk kontantsystem · Satoshi Nakamoto, 2008
- Referanse for blokkjeder: blokkheadere, Merkle-trær, målverdi · dokumentasjon for Bitcoin-utviklere
- Merkle-tre · Bitcoin Wiki
Live-tall på denne siden hentes fra CloudMineCrypto API og offentlige blokkjede-data, oppdateres jevnlig og merkes der de vises. Kun til læring, ikke økonomisk rådgivning.