Guida al Bitcoin – Parte 6 – La Block Chain

La Block Chain

Il sistema che è stato inventato per ordinare le transazioni Bitcoin raggruppa le transazioni in “blocchi” e li collega insieme nella Blockchain.

La Blockchain è diversa dalla catena delle transazioni che abbiamo mostrato in precedenza. La Blockchain serve per ordinare le transazioni mentre la catena delle transazioni tiene traccia del passaggio di proprietà dei BTC.

Nella Blockchain ogni blocco fa riferimento ad un altro, e questo permette di individuarli in funzione del tempo: scorrendo la blockchain al contrario si può tornare indietro fino al primo gruppo di transazioni che è stato eseguito.

blockchain

Le transazioni che fanno parte dello stesso blocco si considerano come effettuate contemporaneamente, mentre le transazioni che non sono ancora in un blocco vengono considerate non confermate. Ogni nodo può raggruppare le transazioni in un blocco ed inviarle alla rete suggerendo il blocco appena creato come prossimo blocco nella Blockchain. Poiché più nodi possono creare blocchi allo stesso tempo ci possono essere molti “prossimi blocchi” tra cui scegliere.

Come si fa a scegliere qual è il prossimo blocco?

Non possiamo far affidamento su quello che arriva prima perché, come per le transazioni, i blocchi possono arrivare in ordine diverso su punti diversi della rete.

Per ordinare i blocchi ci si basa anche qui sulla matematica. Ogni blocco contiene un problema matematico che deve essere risolto. I computer passano in rassegna l’intero testo di un blocco più un numero casuale tramite un HASH finché l’output non è sotto un certo valore.

La funzione HASH è un meccanismo per creare un numero (chiamato digest) a partire da un testo qualsiasi. Nel nostro caso il numero generato è un numero a 32 byte, generato tramite la funzione SHA256, che viene spesso riferito come un numero esadecimale (sono i numeri che iniziano con 0x).

Ecco alcuni esempi da cui possiamo vedere come il numero cambi a partire da un minimo cambiamento della frase di partenza

hash-crittografico

Possiamo vedere che l’output è completamente impredicibile, per cui l’unico modo è quello di tirare ad indovinare.

Come per una cassaforte, indovinare il numero random di un blocco non è facile e in media ci vogliono molti tentativi. Infatti nella rete Bitcoin ad un computer potrebbero volerci diversi anni per risolvere un singolo blocco, ma dato l’elevato numero di computer presenti nella rete, il tempo medio di risoluzione di un blocco è di 10 minuti.

Il primo computer che risolve il blocco lo inoltra al resto della rete e tale blocco ottiene il posto successivo nella Blockchain. La casualità nel problema di risoluzione del blocco è fatta in maniera tale che sia molto improbabile che 2 computers risolvano lo stesso blocco simultaneamente.

Ad ogni modo può capitare che in posti diversi si risolvano allo stesso tempo blocchi diversi, il che porta alla creazione di diverse branches della blockchain.

In questo caso ogni nodo si comporta normalmente e continua ad inserire i blocchi successivi di seguito al blocco che hanno risolto. Tutto ritorna ad una blockchain unica quando viene risolto il blocco successivo, perché come regola generale tutti i nodi adottano la blockchain più lunga tra quelle disponibili. E’ già difficile che 2 blocchi vengano risolti allo stesso tempo, pertanto è rarissimo che 2 blocchi consecutivi lo siano.

Vediamo un esempio qua sotto:

blockchain-branches

Se vuoi speculare sull'andamento delle criptovalute principali, clicca qui sotto:Confronto Piattaforme Broker >>

Per questo meccanismo la blockchain si stabilizza e, dopo qualche blocco dalla fine della catena, tutti i nodi sono d’accordo sull’ordine dei blocchi.