Blockchain e Cryptovalute, la rivoluzione di Internet
A costo di deludere qualche lettore, ci tengo a specificare da subito che in questo articolo non verrà trattato l’aspetto finanziario legato al mondo delle Cryptovalute, ma solamente l’aspetto Tecnologico ed informatico. Per la trattazione di questo articolo si considererà quasi unicamente Bitcoin che rappresenta la prima e la più importante Blockchain.
La Blockchain ovvero la tecnologia che sta alla base di questo tipo di valuta, è una vera e propria rivoluzione nella conservazione di dati ed informazioni in modo sicuro, decentralizzato e Open Source. L’intero programma è in fatti in mano a nodi di persone indipendenti sparse in tutto il mondo, che mettendo a disposizione i loro calcolatori, contribuiscono a mantenere sicura e protetta la rete. Questo tipo di tecnologia sta già trovando diverse applicazioni nei settori della sanità, dell’identità digitale, della beneficienza, del gaming e delle catene di fornitura (Internet of Things).
Cos’è la Blockchain?
La Blockchain è un programma all’interno del quale vengono conservate delle informazioni, si tratta dunque di un Database condiviso. I dati che transitano all’interno del programma vengono compattati in strutture chiamate blocchi di informazione. Ogni blocco ha una dimensione massima ben precisa, quando questa viene raggiunta il blocco viene attaccato a quello precedente garantendo la continuità dei dati e formando una vera e propria catena . Il primo blocco all’interno di una Blockchain prende il nome di blocco genesi; una volta che un blocco viene aggiunto alla catena, diventa impossibile modificarlo o cancellarlo. Ma come si decide come e se aggiungere un blocco al programma?
Collegamento dei blocchi
Per il collegamento le Blockchain utilizzano delle funzioni di criptografia chiamate funzioni di hash. Queste funzioni consistono nel prendere in input una quantità di dati qualsiasi e produrre un output, chiamato hash, sempre con dimensione fissata. L’algoritmo usato nel programma Bitcoin si chiama SHA256, esso prende in input i dati compattati nel blocco e produce un output di 256 bit (o 64 caratteri). Per esempio proviamo a far eseguire dalla funzione la parola “Ensight” in due forme diverse.
Ensight=
1176dbd92f6ec49fcd139f8ccb710d24721bc0fdecdbaf59eb1832202b1dbcc0
ensight=
90895ace1413071d60143077c1b6462f2e64680faa01b2501202bfa1f7b7e15d
Come si può notare, è bastato cambiare una lettera maiuscola per ottenere un output completamente diverso. Si può infatti dire che la Resistenza alle collisioni di questo tipo di funzione è molto elevata. Ciò significa che è quasi impossibile ottenere lo stesso output da due input diversi. L’hash rappresenta infatti l’impronta digitale unica di uno specifico blocco e questa informazione è contenuta all’interno del blocco successivo. Dunque qualsiasi tentativo di modifica ai blocchi più vecchi sarà immediatamente evidente analizzando i nuovi.
Cos’è un nodo?
Un nodo all’interno di una rete come quella delle Blockchain, non è altro che un qualsiasi utente che ha scaricato il software (ad esempio Bitcoin) e scambia informazioni con la rete. Ogni nodo ha un copia di tutta la Blockchain e può eseguire delle transazioni all’interno di essa.
Transazioni Blockchain
I programmi hanno una valuta nativa che può essere scambiata al loro interno, nel caso della Blockchain Bitcoin la valuta prende il nome di BTC (Bitcoin). Prendiamo il caso di uno scambio bancario classico in cui Alice(A) vuole pagare 50€ a Bob(B). A e B dovranno prima di tutto comunicare alla banca la loro intenzione di scambiarsi 50€, la banca verificherà che Alice abbia i fondi necessari e infine la banca aggiornerà il proprio Database togliendo i soldi ad A e aggiungendoli a B. All’interno delle Blockchain il processo è quasi del tutto analogo; la differenza fondamentale è che non c’è un singolo nodo centralizzato che verifica, approva ed esegue la transazione, ma è l’intera rete a farlo. Infatti ogni singolo nodo terrà traccia dello scambio avvenuto. In questo modo qualora un nodo isolato provasse a cambiare l’importo o annullare la transazione avvenuta, verrà smentito e bloccato da tutta la rete. Ogni utente ha accesso alla blockchain attraverso la propria chiave privata che genera un’indirizzo pubblico visibile da tutti. Non è possibile da un indirizzo pubblico risalire alla chiave privata.
Coordinamento dei partecipanti
Come ho detto in precedenza, le Blockchain diventano particolarmente interessanti quando assumono la forma di Database decentralizzato. In questo modo tutti gli utenti sono pari e nessuno può cancellare i dati o prenderne il controllo. Ma come si fa a far andare d’accordo tutti gli utenti fra loro?
Qui entra in gioco una delle caratteristiche innovative di queste tecnologie, i partecipanti si coordinano attraverso la competizione. Infatti i meccanismi di consenso della rete sono studiati e creati grazie alla teoria dei giochi che analizza e studia come la competizione tra i singoli riesca a creare beneficio per la collettività
Meccanismi di consenso Blockchain
Poiché il sistema deve essere equo per ogni partecipante, c’è bisogno di uno strumento che incentivi i comportamenti positivi degli utenti e punisca i comportamenti negativi. Il mining è quel processo in base a quale si determina quale dei tanti utenti avrà diritto ad attaccare il nuovo blocco. Ogni qual volta un blocco nuovo viene attaccato, il programma ricompensa l’utente che ha eseguito l’operazione generando dei Bitcoin e assegnandoglieli.
Proof of Work (PoW)
La Proof of work è il meccanismo di consenso su cui si basa Bitcoin. Una volta che le informazioni vengono accorpate all’interno di un blocco per poterlo collegare al precedente gli utenti dovranno trovare l’Hash specifico di quel blocco. Poiché come abbiamo visto in precedenza, non c’è modo di prevedere l’output, l’unico modo che un utente ha di trovare l’hash corretto è procedere per tentativi. Infatti tutti gli utenti della rete hanno a disposizione come input i dati relativi alle transazioni del blocco, queste informazioni le utilizzeranno per generare un hash. Per far sì che si ottenga un risultato diverso ad ogni tentativo, viene introdotta una variabile che si cambia in modo casuale ogni volta. Questa variabile è chiamata nonce. Ogni utente della rete andrà a ricercare la ricompensa per la risoluzione del blocco nella speranza di essere il validatore.
È importante notare che grazie alla ricompensa offerta dal programma, tutti i miner saranno spinti a lavorare sul blocco contenente le informazioni corrette sui dati e sulle transazioni, mentre invece qualsiasi tentativo di modificare il blocco manipolando i dati renderà impossibile trovare l’hash richiesto dal programma. Nel meccanismo della Proof of work ogni utente mette a disposizione la potenza di calcolo del proprio computer per verificare e validare e blocchi. Maggiore è la potenza di calcolo in gioco, maggiore è la sicurezza della rete poiché più persone avranno scaricato la blockchain e contribuiranno a verificarla.
Proof of Stake (PoS)
Nella proof of work i validatori mettono a disposizione la loro potenza di calcolo nella speranza di ottenere la ricompensa, ciò che li spinge al comportamento corretto è anche l’investimento che essi fanno in corrente elettrica e hardware. Nella proof of stake ogni candidato validatore deve mettere come garanzia un quantitativo di Cryptovaluta nativa della blockchain stessa. In questo modo qualora il validatore creasse problemi alla rete, la sua garanzia potrebbe in alcuni casi subire fenomeni di slashing , ovvero andrebbe a perdere parte di quel valore. La proof of stake o delle sue varianti sono alla base di altri promettenti progetti blockchain come Polkadot ,Cardano ed Ethereum2.0.
Pro e contro dei due meccanismi
Per quanto riguarda la PoW, uno dei principali argomenti con cui viene criticata riguarda il suo consumo energetico. Viene infatti accusata di essere responsabile di inquinamento a causa dell’elettricità richiesta dalla rete. A mio avviso si tratta di una criticità che non riguarda le blockchain in sé, bensì il modo con cui produciamo l’energia. La transizione energetica deve essere fatta il prima possibile a prescindere dall’utilizzo che ne viene fatto. In generale il nostro obiettivo in quanto società non dovrebbe essere quello di ridurre i consumi o abbassare la nostra qualità della vita, bensì dovrebbe essere, qualora fosse possibile, adattare e creare nuove tecnologie che possano sostenere il progresso e l’aumentare dei consumi in maniera sostenibile per tutti. Si rimanda a questo articolo in cui tratto la tematica della transizione energetica. Un grande vantaggio della PoW è che negli anni si è dimostrata estremamente sicura ed affidabile; Caratteristiche fondamentali per ogni sistema di pagamento o di riserva di valore.
La PoS al contrario non necessita di grandi utilizzi di hardware o di energia, poiché ciò che mettono in gioco i validatori è la Cryptovaluta stessa. La maggior parte dei progetti blockchain più recenti lavora in PoS o meccanismi simili (ad esempio Delegated Proof of Stake DPoS). Si tratta di un’idea molto promettente che nei prossimi anni avrà ancora tanto da dimostrare in quanto sicurezza e scalabilità.
Perché è nato Bitcoin
Bitcoin nasce nel 2008 quando il suo creatore pubblicò un whitepaper in cui presentò il suo progetto al mondo. Tutt’oggi l’identità del creatore delle blockchain è sconosciuta, sappiamo solo che si firmò con lo pseudonimo di Satoshi Nakamoto. L’idea di Nakamoto, era quello di creare un sistema di pagamento decentralizzato, sicuro e affidabile, che non si basasse sulla fiducia e che potesse essere gestito da tutte le persone grazie alla sua caratteristica di essere open source. Parla chiaro il messaggio che ci è stato lasciato da Nakamoto nel blocco genesi di Bitcoin.
Tuttavia ad oggi Bitcoin è visto prevalentemente come oro digitale, ovvero un asset che non sia soggetto ad inflazione e che funga da riserva di valore. Esso infatti presenta la caratteristica della scarsità, ovvero c’è una quantità massima di 21 milioni di BTC che non potrà mai essere superata. Inoltre Bitcoin rispetto all’oro può essere detenuto in modo più semplice e sicuro.
Conclusioni finali
La capacità delle blockchain di conservare e scambiare informazioni in modo sicuro e decentralizzato, è sicuramente un qualcosa che si cercherà di sfruttare sempre di più nel futuro prossimo. Tutt’oggi le migliori menti informatiche al mondo stanno lavorando a progetti blockchain-based che potrebbero rivoluzionare il mondo dell’internet. Come ogni grande rivoluzione ci vorrà del tempo prima le barriere di accesso si abbassino e questa tecnologia si diffonda su scala globale. Ritengo estremamente importante ed interessante iniziare a familiarizzare con questo tipo tecnologie il prima possibile, diventando dei veri e propri early adopters.