Cos’è la blockchain?
In breve, la blockchain equivale a un registro digitale decentralizzato che registra una serie di dati. Questi dati sono organizzati in blocchi, protetti mediante crittografia e disposti in ordine cronologico.
I primi modelli di blockchain furono costruiti all’inizio degli anni ’90. All'epoca, l'informatico Stuart Haber e il fisico W. Scott Stornetta utilizzavano la tecnologia di crittografia per proteggere i dati da manomissioni.
Questo risultato di Haber e Stornetta ha ispirato molti scienziati informatici e appassionati di crittografia a studiare la blockchain, che ha anche promosso la nascita di Bitcoin, il primo sistema di cassa elettronico decentralizzato al mondo (la prima criptovaluta).
Sebbene la tecnologia blockchain abbia preceduto le criptovalute, è stato solo nel 2008, quando è nato Bitcoin, che la prima ha gradualmente ottenuto il riconoscimento. Da allora, l’interesse del pubblico per la tecnologia blockchain è cresciuto e le criptovalute hanno iniziato a guadagnare popolarità.
La tecnologia Blockchain viene utilizzata principalmente per registrare transazioni di criptovaluta, ma può anche registrare una varietà di dati digitali e può essere applicata anche ad altri campi. La rete blockchain più antica, più sicura e più grande è Bitcoin, che è stata attentamente progettata per fondere crittografia e teoria dei giochi in modo equilibrato.
Come funziona la blockchain?
Nel mondo delle criptovalute, possiamo pensare a una blockchain come a una catena di blocchi stabili, ognuno dei quali memorizza una sequenza di dati di transazione precedentemente confermati. La rete blockchain è gestita congiuntamente da innumerevoli computer, quindi la sua funzione principale è quella di fungere da database (o registro) decentralizzato. In altre parole, tutti i partecipanti (ovvero i nodi) nella blockchain conservano copie dei dati blockchain e mantengono una buona comunicazione tra loro per garantire che tutti siano sempre sulla stessa pagina (o blocco).
Di conseguenza, le transazioni blockchain avvengono in una rete globale peer-to-peer, promuovendo Bitcoin come una criptovaluta decentralizzata, senza confini e resistente alla censura. Tuttavia, la maggior parte delle blockchain non richiedono alcun meccanismo di fiducia e sono considerate sistemi trustless. Bitcoin inoltre non ha un regolatore indipendente.
Quasi tutte le blockchain hanno al centro il mining, che è inseparabile dagli algoritmi di hashing. Bitcoin utilizza l'algoritmo SHA-256 (Secure Hash Algorithm 256 bit), che consente di inserire una stringa di qualsiasi lunghezza per produrre un output della stessa lunghezza. Il risultato di output può essere chiamato "valore hash", che è sempre di 64 caratteri (256 bit).
Pertanto, non importa quante volte si ripete il "mining", lo stesso input produce sempre lo stesso output. Tuttavia, se l’input cambia leggermente, l’output sarà completamente diverso. Pertanto, la funzione hash è deterministica, mentre la maggior parte delle criptovalute sono progettate con una funzione hash unidirezionale.
Questo tipo di funzione determina che l'utente non può dedurre l'input in base ai risultati di output. L'unico modo è indovinare, ma la probabilità di indovinare è molto ridotta. Questo è uno dei motivi per cui la blockchain Bitcoin è sicura e affidabile.
Ora che abbiamo compreso la funzionalità dell’algoritmo, illustriamo come funziona la blockchain attraverso un semplice esempio di transazione.
Supponiamo che Alice e Bob siano due possessori di Bitcoin e che Alice debba a Bob due Bitcoin.
Per ripagare Bob con due Bitcoin, Alice trasmette queste informazioni sulla transazione ai minatori dell'intera rete.
In questa transazione, Alice informa i minatori dell'indirizzo di Bob e del numero di Bitcoin scambiati e allega una firma digitale alla sua chiave pubblica. Questa firma è generata dalla chiave privata di Alice e consente ai minatori di verificare che Alice sia l'effettivo proprietario di questi Bitcoin.
Dopo aver confermato che la transazione è autentica e valida, il minatore può inserire queste informazioni sulla transazione in un blocco insieme ad altre informazioni sulla transazione e provare a "estrarre" questo blocco. Questo blocco viene gestito tramite l'algoritmo SHA-256 e il risultato dell'operazione deve iniziare con un certo numero di "0" prima di poter essere giudicato valido. Il numero "0" dipende dalla "difficoltà" dell'operazione, che cambierà al variare della potenza di calcolo dell'intera rete.
Per produrre correttamente il numero previsto di hash "0", i minatori aggiungono un "nonce" al blocco prima di eseguire l'algoritmo di crittografia. Lievi modifiche a questo valore cambieranno completamente il risultato dell'operazione e i minatori dovranno provare diversi nonce casuali finché non ottengono il valore hash corretto.
Ogni volta che viene estratto un blocco, i minatori trasmettono le informazioni del nuovo blocco all'intera rete in modo che altri minatori possano confermare la validità del blocco. Successivamente, aggiungeranno le informazioni valide sul blocco alla propria blockchain, indicando che la transazione è stata completata. Tuttavia, i miner devono comunque aggiungere il valore hash del blocco precedente al nuovo blocco, ed eventualmente connettere tutti i blocchi per formare una vera e propria “blockchain”. Questo è molto importante e riflette il ruolo della fiducia nel sistema.
Ogni minatore memorizza la propria copia della blockchain su un personal computer e raggiunge un consenso: la blockchain con maggiore potenza di calcolo deve essere la più lunga. Se qualcuno desidera modificare le informazioni sulla transazione nel blocco precedente, cambierà anche il valore hash di questo blocco, causando la modifica dei valori hash di tutti i blocchi successivi a questo blocco. Deve rifare tutti i calcoli precedenti per convincere gli altri che le informazioni sul suo blocco sono corrette. Pertanto, se un minatore tenta di manomettere le informazioni del blocco, deve investire più del 50% della potenza di calcolo dell’intera rete, il che è quasi una fantasia. Attacchi di rete simili sono quindi chiamati attacchi 51%.
Questo modello che richiede operazioni del computer per generare nuovi blocchi si chiama Proof of Work (PoW). Esistono anche altri meccanismi, come la Proof of Stake (PoS), che non richiedono un’enorme potenza di calcolo, consumano meno energia e attirano più utenti a partecipare.

