03. Costruzione della Blockchain
In questo paragrafo verrà descritto il processo di creazione della Blockchain tramite una demo passo passo, introducendo i concetto fondamentali in modo progressivo.
L'impronta digitale di un documento (Hash)
A partire da un qualsiasi documento digitale, la funzione di hash consente di calcolare una stringa, di lunghezza prefissata (valore di hash), collegata al documento stesso in modo analogo a come le impronte digitali sono collegate ad una persona.
Qualsiasi variazione, anche di un solo carattere, del documento originario comporta l'associazione di un valore di hash differente.
Due documenti identici (ottenuti per copia, per intenderci) hanno lo stesso valore di hash.
SHA 256 produce un fingerprint di 256 bit e quindi 32 byte. Come è noto un byte può essere rappresentato con due cifre esadecimali.
Nell'esempio il risultato è rappresentato con 64 cifre esadecimali.
E' possibile confrontare il risultato con quello generato da un un qualsiasi altro programma on line che genera un hash SHA 256 (clicca qui).
Il blocco
Un blocco è un documento digitale che ha una forma particolare perché costituito da più campi:
Block Number: un numero progressivo di blocco
Nonce: un campo che serve per validare il blocco
Data: un campo che conterrà i dati da regisitrare (le transazioni)
Hash: il fingerprint dell'intero documento.
La particolarità è che si ritiene validato il blocco se l'hash del documento ha una forma particolare. In questa demo si richiede che la stringa di hash inizi con quattro zeri (nella realtà l'hash dei blocchi di bitcoin dovranno iniziare con un numero maggiore di zeri).
Per far si che l'hash assuma questa forma occorre modificare il campo Nonce a caso fin quando non capita che l'hash abbia la forma richiesta.
Questo procedimento richiede numerosi tentativi e quindi un'elaborazione molto dispendiosa anche per computer moderni.
E' questo il lavoro fatto dai miner ed in gergo si dice che devono risolvere un "puzzle crittografico".
La blockchain (catena)
I blocchi sono collegati gli uni gli altri tramite un ulteriore campo, il Previous, che registra l'hash del blocco precedente.
Questo campo fa parte del documento e quindi l'hash del blocco è sensibile anche a variazioni di questo campo.
Se si modifica un blocco intermedio, viene compromessa la catena, da quel punto in poi.
Le transazioni
Ogni blocco della catena registrerà una o più transazioni, tracciando l'ammontare movimentato, mittente e destinatario.
Questo esempio, tuttavia, evidenzia che sono registrate operazioni non consistenti: infatti non tutti disponevano dell'ammontare movimentato.
Transazioni Coinbase
Prima di validare una transazione, occorre scorrere la catena all'indietro per verificare se l'ammontare che desidera movimentare un soggetto è effettivamente nelle sue disponibilità.
Nell'esempio è inserito un ulteriore campo che registra le transazioni speciali di ricompensa per i miner, le transazioni coinbase.
Sito: 7ecnologie
Sezione: 15. Blockchain e Bitcoin
Capitolo: 03. Costruzione della Blockchain
Indice dei capitoli: 00. Risorse - 01. Introduzione - 02. Concetti generali - 03. Costruzione della Blockchain - 04. Gestione del portafoglio - 05. Evoluzioni: smart contract e NFT - 06. Sostenibilità ambientale