Cos’è una blockchain?

La blockchain è un libro mastro digitale distribuito (cioè privo di un unico database) e decentralizzato, resistente ai tentativi di manomissione. Al suo livello più elementare, consente agli utenti di registrare le transazioni in un libro mastro condiviso all'interno di una rete: il risultato è che nessuna transazione può essere modificata una volta pubblicata.

Nel 2008, l'idea di blockchain è stata unita ad altre tecnologie e concetti informatici per creare le attuali criptovalute ossia denaro elettronico protetto tramite processi crittografici piuttosto che da un'autorità centrale. 

Le implementazioni della blockchain sono spesso create con un obiettivo o una funzione specifica in mente. Le criptovalute, gli smart contract e i sistemi di registro distribuito per le aziende sono tutti esempi di tali applicazioni.

Bitcoin è stata la prima criptovaluta basata su blockchain, che consente agli utenti di condividere pubblicamente i dati in modo che i partecipanti possano verificare in modo indipendente la validità delle transazioni. Le criptovalute sono costruite sulla tecnologia blockchain, e prendono questo nome dall'uso di funzioni crittografiche.

Per firmare digitalmente e transare in modo sicuro all'interno della rete, gli utenti utilizzano chiavi pubbliche e private. Gli utenti possono, inoltre, partecipare alla soluzione di un problema matematico – basato sulle funzioni hash – nella speranza di essere ricompensati con una quantità fissa di criptovaluta nelle reti blockchain basate su meccanismi di consenso “Proof of Work”.

Questo articolo spiega la tecnologia blockchain e fornisce una panoramica del suo funzionamento. Per saperne di più sui diversi tipi di blockchain, dà un'occhiata a quest'altro articolo.

Come funziona una blockchain?

L'obiettivo fondamentale di una blockchain è quello di consentire alle persone, soprattutto in contesti privi di fiducia, di comunicare informazioni in modo sicuro e a prova di manomissione. Funzione di hash, blocchi, nodi, miner, wallet, firme digitali e protocolli sono i vari concetti alla base della blockchain.

La funzione di hash

Immaginiamo che 10 persone in una stanza decidano di creare una nuova valuta. Devono seguire il flusso dei soldi per garantire la validità delle monete nel loro nuovo ecosistema monetario. Una persona – chiamiamola Bob – decide di tenere un elenco di tutte le azioni in un registro. Tuttavia un'altra persona – chiamiamola Jack – decide di rubare parte dei fondi. Per nascondere il malfatto, Jack cambia le annotazioni del registro.

Un giorno Bob si accorge che qualcuno ha alterato il suo registro. Decide di cambiare il suo formato per evitare future manomissioni: inizia a utilizzare un programma chiamato funzione di hash, che trasforma il testo della transazione in una serie di numeri e lettere, come mostrato nella tabella seguente.

Questo processo sfrutta un algoritmo di hash, o SHA, che trasforma le lettere in stringhe di caratteri alfanumerici. Bob può scegliere diversi tipi di SHA che variano per complessità e per esigenze diverse.

Un hash è una stringa di numeri e lettere, prodotta da funzioni hash. Una funzione hash è una funzione matematica che converte un numero variabile di caratteri in una stringa con un numero fisso di caratteri. 

Basta una piccola alterazione di una stringa per creare un hash completamente nuovo. Dopo ogni voce del registro, Bob inserisce un hash. Jack però decide di cambiare di nuovo le annotazioni: prende il registro, modifica la registrazione e genera un nuovo hash.

Bob nota che qualcuno ha di nuovo manomesso il registro. Decide quindi di complicare la registrazione di ogni transazione: dopo ogni registrazione, inserisce un nuovo hash generato dall'ultimo hash registrato. Pertanto, ogni registrazione dipende dalla precedente.

Se Jack tentasse di modificare il registro, dovrebbe cambiare l'hash di tutte le voci precedenti. Jack, tuttavia, è un ladro determinato e passa l'intera notte a contare tutti gli hash.

Bob non vuole arrendersi e aggiunge un numero differente e casuale dopo ogni registrazione. Questo numero è chiamato "nonce". I nonce devono essere scelti in modo che l'hash generato termini con due zeri.

Per falsificare il registro con il sistema di registrazione aggiornato, Jack dovrebbe ora passare ore e ore a determinare il nonce per ogni riga. I nonce sono difficili da determinare in maniera automatica anche per i computer; il compito è tuttavia possibile, poiché i miner competono per scoprirli come parte del processo di mining della blockchain.

I blocchi

Nel registro di Bob, il primo foglio composto da 5000 transazioni è chiamato blocco genesi: il punto di partenza di questa blockchain. L'adozione di questa valuta si è diffusa, quindi le transazioni avvengono rapidamente e con più frequenza. Vengono creati nuovi blocchi che possono anch'essi contenere fino a 5000 transazioni e hanno hash correlati ai blocchi precedenti, rendendoli non falsificabili. 

Supponiamo che questa blockchain (il registro di Bob) si aggiorni ogni 10 minuti con un nuovo blocco. Lo fa automaticamente. Nessun sistema di controllo o computer centrale dà istruzioni ai computer per farlo.

Non appena il registro viene aggiornato con nuove transazioni, non può più essere modificato. È quindi impossibile falsificarlo: si possono solo aggiungere nuove voci. Il registro viene aggiornato contemporaneamente su tutti i computer della rete. Le modifiche alle blockchain richiedono il consenso della maggioranza dei partecipanti alla rete.

Un rischio potenziale per una blockchain è un "Attacco del 51%", durante il quale qualcuno supera la maggioranza dell'hash rate di una blockchain, consentendogli di assumere il controllo della rete.

In generale, un blocco contiene: un timestamp, un riferimento al blocco precedente, le transazioni e il problema computazionale che doveva essere risolto prima che il blocco fosse inserito nella blockchain. La rete distribuita di nodi che devono raggiungere il consenso rende quasi impossibile la frode all'interno della blockchain.

I nodi

Bob continua a tenere il registro in questo modo per un breve periodo di tempo. Il continuo susseguirsi di nuove transazioni rappresenta un carico di lavoro eccessivo: ha quindi ritenuto che il sistema attuale non fosse più sostenibile. Così, non appena il registro ha raggiunto le 5000 transazioni, lo ha convertito in un foglio elettronico.

Bob ha poi distribuito il suo foglio elettronico a 3000 computer diversi, ognuno dei quali si trova in diverse regioni del mondo. Questi computer sono chiamati nodi. Ogni volta che si verifica una transazione, questa deve essere approvata dai nodi, ognuno dei quali ne verifica la validità. Una volta che ogni nodo ha controllato una transazione, si verifica essenzialmente una sorta di votazione elettronica. Alcuni nodi possono ritenere valida la transazione, mentre altri possono considerarla fraudolenta. 

Ogni nodo ha una copia del foglio elettronico del registro. Ogni nodo controlla la validità di ogni transazione. Se la maggioranza dei nodi ritiene valida una transazione, questa viene scritta in un blocco. Ora, se Jack volesse cambiare una voce nel foglio elettronico del registro... non potrebbe più farlo, perché tutti gli altri computer possiedono la transazione originale e rifiutano, dunque, la modifica.

I miner

Il mining è il processo con cui i miner aggiungono nuovi blocchi alla catena. Ogni blocco di una blockchain ha un nonce e un hash unici, ma si riferisce anche all'hash del blocco precedente: questo rende difficile la modifica di un blocco, soprattutto nelle catene più estese.

I miner utilizzano un software specializzato per risolvere il problema matematico (estremamente difficile e costoso) per generare un hash accettabile utilizzando un nonce. Poiché il nonce è lungo solo 32 bit e l'hash è lungo 256 bit, ci sono circa quattro miliardi di combinazioni nonce-hash da estrarre prima di trovare quella giusta.

Quando i miner trovano il nonce giusto, il loro blocco viene aggiunto alla catena. Per poter modificare un blocco all'inizio della catena è necessario minare nuovamente non solo il blocco interessato, ma anche tutti i blocchi successivi.

Questo è il motivo per cui la manomissione di un network blockchain è così difficile. Consideratela una "sicurezza matematica", perché l'identificazione del giusto nonce richiede molto tempo e molte risorse computazionali. Quando un blocco viene estratto con successo, tutti i nodi della rete lo riconoscono e il miner viene ricompensato finanziariamente.

Leggi anche: Come minare Bitcoin: guida per principianti

Wallet, firme digitali e protocolli

Continuiamo con lo stesso esempio: Bob riunisce le dieci persone che utilizzano la nuova moneta, per spiegare loro il funzionamento del libro mastro. Jack confessa i suoi illeciti al gruppo e si scusa: per dimostrare la sua sincerità, restituisce ad Ann e Mary le loro monete.

Dopo aver sistemato il tutto, Bob spiega perché questo non potrà mai più accadere. Decide di implementare una cosiddetta firma digitale per confermare ogni transazione, ma prima distribuisce a tutti i presenti un wallet.

Cos’è un wallet?

Se possedete valuta digitale, avrete bisogno di un wallet, di una piattaforma online o di un exchange per la custodirla. Un wallet è un software che interagisce con la blockchain. Viene visualizzato come un indirizzo alfanumerico che apparirà nei vari blocchi della blockchain man mano che effettua delle transazioni. Non sono inclusi nomi o informazioni di identificazione personale, ma solo l’indirizzo identificativo del wallet. 

Gli indirizzi dei wallet pubblici sono stringhe di caratteri a cui è possibile inviare determinati asset. L'indirizzo di ogni particolare wallet è generato da una chiave pubblica.

Leggi anche: Wallet Bitcoin per principianti: tutto ciò che c'è da sapere

Firma digitale

Per effettuare una transazione sono necessari due elementi: un wallet e una chiave privata. La chiave privata è una stringa di numeri casuali. A differenza dell'indirizzo del wallet, però, la chiave privata deve essere tenuta segreta. Una chiave privata controlla i fondi detenuti dal proprietario del relativo wallet.

Quando qualcuno decide di inviare denaro a qualcun altro, deve utilizzare la propria chiave privata per firmare il messaggio contenente la transazione. Il sistema a due chiavi – una privata e una pubblica – è il cuore della crittografia e della cifratura, e il suo utilizzo precede di molto l'esistenza della blockchain. È stato proposto per la prima volta negli anni '70.

Una volta inviato il messaggio sopracitato, questo viene trasmesso alla rete blockchain. La rete di nodi lavora quindi sul messaggio per assicurarsi che la transazione in esso contenuta sia valida. Se la rete ne conferma la validità, la transazione viene inserita in un blocco. Dopodiché, nessuna informazione su di essa può essere modificata.

Cosa sono le chiavi crittografiche?

Una chiave crittografica è una stringa di numeri e lettere. Le chiavi crittografiche sono create da generatori di chiavi, o keygens. Questi generatori di chiavi utilizzano funzioni matematiche molto avanzate basate sui numeri primi. Tali chiavi possono essere utilizzate per criptare o decriptare le informazioni.

Protocolli

La tecnologia blockchain si compone di un ampio insieme di regole, chiamate protocolli. L'implementazione di specifici protocolli rende essenzialmente la blockchain ciò che è: un database di informazioni distribuito, peer-to-peer e protetto. I protocolli della blockchain assicurano che la rete funzioni nel modo previsto dai suoi creatori, anche se è completamente autonoma e non è controllata da nessuno. 

Ecco alcuni esempi di protocolli implementati nelle blockchain:

  • Le informazioni di ogni input devono includere il numero di hash del blocco precedente.
  • In Bitcoin, la ricompensa per l'estrazione di un blocco si dimezza ogni 210.000 blocchi minati. Questo processo si chiama halving (dimezzamento). Con 10 minuti per blocco, l'estrazione di 210.000 blocchi richiede circa quattro anni; di conseguenza, l'halving di Bitcoin si verifica ogni quattro anni.
  • Per mantenere il tempo necessario per estrarre un blocco a circa 10 minuti, la difficoltà di estrazione viene ricalcolata ogni 2.016 blocchi. La difficoltà di mining bilancia essenzialmente la rete per tenere conto del numero di miner e della potenza di calcolo complessiva.

Examples of protocols implemented in blockchains

Pro e contro della blockchain

La maggior parte delle blockchain è costruita come un database decentralizzato che funge da libro mastro distribuito. Questi registri blockchain tengono traccia e memorizzano i dati in blocchi, disposti in ordine cronologico e collegati da prove crittografiche. 

Lo sviluppo della tecnologia blockchain ha portato numerosi vantaggi in un'ampia gamma di attività, tra cui una maggiore sicurezza in situazioni dove la fiducia tra le parti è assente. Tuttavia, il fatto che sia decentralizzata comporta anche degli svantaggi: ad esempio, le blockchain hanno un'efficienza limitata rispetto ai database centralizzati e richiedono uno spazio di archiviazione maggiore.

Pros and cons of blockchain technology

Cos’è la decentralizzazione e perché è importante

Le blockchain sono essenzialmente dei database distribuiti. Il database è la blockchain e ogni nodo di una blockchain ha accesso all'intera catena. Nessun nodo o computer regola le informazioni contenute. Ogni nodo può convalidare i dati della blockchain. Tutto questo avviene senza il controllo di una manciata di intermediari.

È una struttura decentralizzata e non esiste un singolo punto di vulnerabilità che possa far crollare l'intero network: questo è un elemento chiave dei sistemi blockchain.

Peer-to-peer (p2p) transmission

Trasmissione peer-to-peer

Nella trasmissione decentralizzata peer-to-peer (P2P), la comunicazione avviene sempre direttamente tra peer anziché attraverso un nodo centrale. Le informazioni su ciò che accade sulla blockchain vengono memorizzate su ogni nodo e poi passate ai nodi adiacenti. In questo modo, le informazioni si diffondono attraverso l'intera rete.

Peer-to-peer (p2p) transmission

La trasparenza di una blockchain

Chiunque ispezioni la blockchain è in grado di vedere ogni transazione e il suo corrispondente hash. Chi utilizza la blockchain può agire in modo pseudonimo, se lo desidera, oppure può fornire la propria identificazione ad altri. Tutto ciò che si vede sulla blockchain è una registrazione delle transazioni tra gli indirizzi dei wallet.

Una volta che una transazione viene registrata sulla blockchain, diventa impossibile alterarne la registrazione. Perché? Il dato di quella particolare transazione è collegato al dato di ogni transazione precedente, rendendolo immutabile. I record della blockchain sono permanenti, sono ordinati cronologicamente e sono disponibili a tutti gli altri nodi.

È quasi impossibile disattivare la rete. Poiché esistono numerosi nodi che operano a livello globale, per un singolo soggetto è praticamente impossibile prendere il controllo dell'intero network.

Anche falsificare un blocco è quasi impossibile: la validità di ogni blocco, e di conseguenza la sua inclusione nella blockchain, è determinata dal consenso dei nodi. Questi nodi sono migliaia, sparsi in tutto il mondo. Di conseguenza, controllare la rete richiederebbe un computer con un potenza maggiore rispetto al 50% dei nodi della rete.

Utilizzare la tecnologia blockchain come un normale database si rivelerebbe comunque difficile. È possibile memorizzare diversi GB di file sulla blockchain nello stesso modo in cui si utilizzano piattaforme di database come Microsoft Access, FileMaker o MySQL? Non sarebbe una buona idea: la maggior parte delle blockchain non sono adatte a questo scopo o semplicemente non hanno la capacità di memoria necessaria.

Solitamente, i database online tradizionali utilizzano un'architettura di rete client-server. Ciò significa che gli utenti con diritti di accesso possono modificare le voci memorizzate nel database, ma il controllo generale rimane agli amministratori. Nel caso di un database blockchain, ogni utente è responsabile della manutenzione, del calcolo e dell'aggiornamento di ogni nuova voce. Ogni singolo nodo deve collaborare per assicurarsi di giungere alle stesse conclusioni.

L'architettura della tecnologia blockchain significa anche che ogni nodo deve lavorare in modo indipendente e confrontare i risultati del proprio lavoro con il resto della rete, per cui raggiungere un consenso può richiedere diverso tempo. Per questo motivo, le reti blockchain sono considerate lente rispetto ai tradizionali network centralizzati. Tuttavia, sono stati compiuti passi da gigante in tal senso negli ultimi anni, con nuove tecnologie volte a migliorare la velocità e la capacità delle blockchain.

Detto questo, vi sono esperimenti di produzione di database con la tecnologia blockchain. Queste piattaforme mirano a prendere un database distribuito di classe enterprise e a costruirci sopra un struttura con i tre attributi chiave della blockchain: decentralizzazione, immutabilità e capacità di registrare e trasferire beni.

Quanto è sicura la tecnologia blockchain?

Sebbene la blockchain non sia immune da potenziali attacchi hacker, la sua natura decentralizzata fornisce una linea di sicurezza più forte. Un hacker o un criminale dovrebbe controllare più della metà di tutte le macchine di un ledger distribuito per poterlo modificare.

Le reti blockchain più grandi e note, come Bitcoin ed Ethereum, sono aperte a chiunque abbia un computer e una connessione a Internet. Un maggior numero di partecipanti a una rete blockchain tende ad aumentare la sicurezza piuttosto che a diminuirla. Un maggior numero di nodi partecipanti significa che un maggior numero di individui esamina il lavoro degli altri e segnala i comportamenti scorretti. Questo è uno dei motivi per cui, in maniera forse controintuitiva, le reti blockchain private che richiedono un invito a partecipare possono essere più vulnerabili a hacking e manipolazioni. 

Inoltre, la blockchain è utile per contrastare gli attacchi di "double-spending" nei pagamenti e nei trasferimenti di denaro. In questo tipo di attacchi un utente spende la propria criptovaluta più di una volta, come se la stesse duplicando. Se si spende 1€ per una tazzina di caffè, non si potrà ovviamente spendere lo stesso euro per acquistare qualcos'altro. Tuttavia, quando si tratta di criptovalute, c'è la possibilità che un utente spenda la criptovaluta numerose volte prima che la rete se ne accorga.

Questo è un aspetto che la blockchain risolve. All'interno della blockchain, l'intera rete deve concordare la sequenza delle transazioni, confermare la transazione più recente e pubblicarla online, contribuendo così a preservare la sicurezza della rete.

Dove si può applicare la tecnologia blockchain?

L'ultima parte di questo articolo tratterà alcune delle numerose applicazioni della blockchain. La tecnologia blockchain è particolarmente adatta ai cosiddetti smart contract. Ma cosa sono esattamente?

Gli smart contract definiscono le regole e le sanzioni relative a un accordo specifico, in modo simile alla funzione dei contratti tradizionali. La grande differenza, tuttavia, è che gli smart contract applicano automaticamente tali accordi.

Finanza decentralizzata

La finanza decentralizzata, o DeFi, è un utilizzo della tecnologia blockchain che consente ai partecipanti di accedere a funzionalità comparabili a quelle mondo finanziario tradizionale, ma in modo decentralizzato. Utilizzando diverse soluzioni DeFi, i partecipanti possono prestare e prendere in prestito fondi – e accedere ad altre opportunità – allocati sulla blockchain, senza il controllo di un'autorità centralizzata.

NFT

I token non fungibili, o NFT, rappresentano un'applicazione della tecnologia blockchain con un ampio potenziale in diversi casi d'uso. Questi token sono unici e verificabili, il che significa che ognuno di essi avrà un proprio valore indipendente da quello degli altri. Un potenziale caso d'uso per gli NFT è l'autenticazione di opere d'arte, con pezzi d'arte legati agli NFT, che possono verificarne l'autenticità e la proprietà.

Supply chain

L'applicazione della tecnologia blockchain a una catena di approvvigionamento permette di tracciare ingredienti, alimenti, materiali e altro ancora fino alla fonte per dimostrarne l'origine, oltre a fornire altre informazioni pertinenti. 

Richieste di garanzia

La liquidazione delle richieste di garanzia può essere costosa, lunga e spesso difficile per chi la richiede. È possibile implementare smart contract utilizzando la tecnologia blockchain, che inevitabilmente renderà il processo molto più semplice.

Richieste di risarcimento assicurativo

Con gli smart contract è possibile stabilire una serie di criteri per situazioni specifiche legate alle assicurazioni. In teoria, con l'implementazione della tecnologia blockchain, si potrebbe semplicemente inoltrare la richiesta di risarcimento assicurativo online e ricevere un pagamento automatico istantaneo. A patto, ovviamente, che la richiesta soddisfi tutti i criteri richiesti.

Verifica dell'identità

Con la blockchain e la sua caratteristica di decentralizzazione, la verifica dell'identità online potrebbe essere molto più rapida e potenzialmente più sicura. Conservare i dati dell'identità online in una database centrale potrebbe diventare una pratica anacronistica grazie all'avvento della blockchain, il che significa che gli hacker informatici non avrebbero più a disposizione punti di vulnerabilità centralizzati da attaccare.

Internet of Things (IoT)

L'IoT è un ecosistema di oggetti connessi fra loro tramite Internet. La tecnologia blockchain potrebbe svolgere un ruolo chiave nel futuro dell'IoT, in parte fornendo potenziali metodi di protezione dagli hacker. Poiché la blockchain è costruita per il controllo decentralizzato, uno schema di sicurezza basato su di essa dovrebbe essere sufficientemente scalabile per coprire l'espansione dell'IoT.

Archiviazione e memorizzazione dei file

Google Drive, Dropbox e altri hanno sviluppato a fondo l'archiviazione elettronica dei documenti con l'uso di metodi centralizzati. I siti centralizzati fanno gola agli hacker. La blockchain e i suoi smart contract offrono la possibilità di ridurre in modo sostanziale questa minaccia.

Lotta al crimine

Man mano che la tecnologia si impone all'attenzione del grande pubblico, la blockchain e i suoi smart contract hanno il potenziale per contribuire alla lotta contro le tattiche di riciclaggio di denaro. La blockchain consente un'analisi più completa del sistema, anziché limitarsi a monitorare i punti di ingresso e di uscita. La blockchain è una rete decentralizzata in cui ogni utente o nodo è responsabile della convalida degli aggiornamenti, e questo ne incrementa notevolmente la sicurezza.

Votazioni

Le votazioni nelle elezioni e in processi simili potrebbero essere notevolmente migliorate grazie agli smart contract e alla blockchain. Nel corso del tempo sono nate diverse applicazioni correlate.

Il futuro della tecnologia blockchain

Il potenziale della tecnologia blockchain è virtualmente illimitato: i recenti progressi ci hanno avvicinato a un internet decentralizzato, privo della necessità di fidarsi di terze parti, con transazioni trasparenti e ad altro ancora.

Mentre ci allontaniamo dal periodo della pandemia per entrare nell'era della "nuova normalità," è probabile che le blockchain ci aiuteranno ad affrontare queste nuove sfide sociali e a ridefinire il vero significato di ricchezza nel mondo del denaro digitale.

Il futuro della tecnologia blockchain appare radioso: dato che sta già dimostrando il suo potenziale in quasi tutti i campi, sembra che il meglio debba ancora venire.

Nel frattempo, sarà interessante vedere dove si spingerà la tecnologia blockchain in futuro, in particolare in termini di servizi bancari, trasferimenti di denaro, mercati decentralizzati e altri settori.

Traduzione a cura di Giorgio Libutti