Come Funziona la Blockchain?

Condividi
Copied to clipboard!
Ascolta questo articolo
00:00 / 00:00

Un elemento centrale in ogni blockchain è l’algoritmo di mining, prendiamo l’algoritmo di Bitcoin come esempio. Si chiama SHA-256, abbreviazione di "Secure hash algorithm 256 bits". Prende un input in un formato qualsiasi, testo, numeri o anche un file di qualsiasi dimensione. L’output prodotto è chiamato "hash" e presenta sempre la stessa lunghezza, 256 bit in codice macchina.

Lo stesso input renderà lo stesso output ogni volta, non è casuale. Ma basta una minima modifica all’input per cambiare totalmente l’output.

Viene chiamata funzione unidirezionale, per indicare che è impossibile partire dall’output e risalire all’input corrispondente. Si può solo tentare di indovinare l’input, e le probabilità di indovinare sono 1 in 2^256, cosa praticamente impossibile. In altre parole, è sicura.

Ora che sappiamo cosa fa l’algoritmo, dimostriamo come funziona una blockchain con un semplice esempio di transazione.

Ci sono due persone, Alice e Bob, che usano Bitcoin. Alice deve 2 bitcoin a Bob.

Per inviare 2 bitcoin a Bob, Alice trasmette un messaggio con la transazione che vuole eseguire a tutti i miner nel network.

In questa trasmissione, Alice fornisce ai miner l’indirizzo pubblico di Bob, la somma di bitcoin che vuole inviare, insieme a una firma digitale e alla sua chiave pubblica. La firma viene generata con la chiave privata di Alice e i miner possono verificare che Alice è effettivamente in possesso dei bitcoin e che vuole eseguire la transazione.

Quando i miner sono sicuri che la transazione è valida possono inserirla in un blocco insieme a tante altre transazioni, per poi cercare di minare il blocco. Questo avviene inserendo il blocco nell’algoritmo SHA-256. L’output deve iniziare con un determinato numero di 0 per poter essere considerato valido. Il numero di 0 necessari dipende da un fattore chiamato "difficoltà" di mining, che varia a seconda della potenza di calcolo presente all’interno del network.

Per produrre una hash che inizi con il numero di 0 desiderato, i miner aggiungono un numero casuale chiamato "nonce" all’interno del blocco prima di inserirlo nell’algoritmo. Dato che una piccola modifica all’input cambia completamente l’output, i miner provano a usare diverse nonce fino a quando non trovano una hash valida.

A questo punto, il miner trasmette il nuovo blocco a tutti gli altri miner, i quali verificano che il blocco sia effettivamente valido per poter aggiungerlo alla propria copia della blockchain e completare la transazione. Nel blocco, i miner devono anche aggiungere l’hash di output del blocco precedente per fare in modo che tutti i blocchi siano concatenati, da cui deriva il nome block-CHAIN, letteralmente catena di blocchi. Si tratta di un processo fondamentale per il modo in cui la fiducia funziona nel sistema.

Ciascun miner possiede la propria copia della blockchain nel proprio computer e tutti si fidano della blockchain in cui è stato investito il maggior lavoro computazionale, la blockchain più lunga. Se un miner cambia una transazione in un blocco precedente, l’hash di output per quel blocco cambierà, portando alla modifica di tutte le hash successive a causa del collegamento tra blocchi attraverso hash. Il miner dovrebbe rifare tutto il lavoro per fare in modo che qualcuno accetti la sua blockchain come quella valida. Quindi, se un miner vuole ingannare il sistema deve avere più del 50% della potenza di calcolo del network, eventualità molto improbabile. Gli attacchi di questo tipo vengono chiamati 51% attack.

Il modello che richiede lavoro da parte di computer per produrre blocchi è chiamato Proof-of-Work (PoW). Esistono altri modelli come la Proof-of-Stake (PoS), che necessita di meno potenza di calcolo e utilizza meno elettricità, rimanendo però in grado di adattarsi a un maggior numero di utenti.

Queste sono le basi su come funziona una blockchain!

Loading