Hur skapas Merkle-roten?
Börja med ID:t för varje transaktion i blocket. Varje ID är i sig en dubbel SHA-256-hash. Lägg dem i ordning, med coinbase först. Slå ihop hashvärdena två och två och hasha varje par. Nu har du hälften så många hashvärden. Upprepa tills ett enda återstår: det är Merkle-roten.
Om en nivå har ett udda antal hashar paras den sista ihop med sig själv. Ändra en transaktion, om så bara med en satoshi, så ändras varje hash längs vägen till toppen, även roten. Testa i demon ovan.
Varför ett träd och inte en enda stor hash?
Bevis. För att visa att en transaktion ingår i ett block behöver du bara hasharna längs dess gren, inte hela blocket. Ett block med cirka 4 000 transaktioner behöver bara 12 av dem, vilket blir några hundra byte. I sin vitbok beskriver Satoshi lätta plånböcker som kontrollerar betalningar på det här sättet och bara sparar blockhuvuden.
Det spelar också roll för mining. När en miner ändrar extra nonce i coinbase-transaktionen ändras Merkle-roten, och blockhuvudet får en ny uppsättning nonce-värden att prova.
Källor
- Bitcoin: Ett peer-to-peer-system för elektroniska kontanter · Satoshi Nakamoto, 2008
- Referens om blockkedjan: blockhuvuden, Merkle-träd, mål · Bitcoin utvecklardokumentation
- Merkle-träd · Bitcoin Wiki
Livedata på den här sidan kommer från CloudMineCrypto API och offentliga blockkedjedata. Den uppdateras regelbundet och märks ut där den visas. Endast i utbildningssyfte, inte finansiell rådgivning.