Come si costruisce la radice di Merkle?
Parti dall’ID di ogni transazione nel blocco, che è a sua volta un hash doppio SHA-256. Mettili in ordine, con la coinbase per prima. Abbina gli hash vicini a due a due e calcola l’hash di ogni coppia. Otterrai la metà degli hash. Ripeti finché ne resta uno: quella è la radice di Merkle.
Se un livello contiene un numero dispari di hash, l’ultimo viene abbinato a sé stesso. Basta modificare una transazione, anche di un solo satoshi, perché cambino tutti gli hash lungo il suo percorso fino in cima, compresa la radice. Prova nella demo qui sopra.
Perché un albero e non un unico hash?
Prove. Per dimostrare che una transazione è inclusa in un blocco, bastano gli hash lungo il suo ramo, non l’intero blocco. Per un blocco con circa 4.000 transazioni ne bastano 12, poche centinaia di byte. Il whitepaper di Satoshi descrive i wallet leggeri che verificano i pagamenti in questo modo, conservando solo le intestazioni dei blocchi.
È importante anche per il mining. Quando un miner modifica il nonce extra nella transazione coinbase, cambia la radice di Merkle e l’intestazione del blocco riceve nuovi nonce da provare.
Fonti
- Bitcoin: A Peer-to-Peer Electronic Cash System · Satoshi Nakamoto, 2008
- Riferimento sulla blockchain: intestazioni, alberi di Merkle, target · Documentazione per sviluppatori Bitcoin
- Albero di Merkle · Bitcoin Wiki
I dati in tempo reale su questa pagina provengono dall’API di CloudMineCrypto e dai dati pubblici della blockchain. Vengono aggiornati regolarmente e contrassegnati nel punto in cui compaiono. Solo a scopo informativo, non sono una consulenza finanziaria.