In un precedente articolo abbiamo esposto i tratti fondamentali, strutturali e funzionali, della blockchain. Occorre adesso entrare più nel dettaglio, al fine di comprendere a pieno come tale tipologia di ecosistema possa soddisfare le aspettative dei suoi attuali sostenitori nonché dei possibili futuri utilizzatori.
Come già illustrato in precedenza, il tema della decentralizzazione ricopre uno dei più importanti ruoli all’interno delle svariate infrastrutture blockchain. Tuttavia, bisogna conoscere a fondo i molteplici aspetti della decentralizzazione, la quale, nonostante permetta di operare senza il bisogno di un’entità centralizzata, non è sufficiente a garantire la sicurezza del sistema. È ormai chiaro che la blockchain permette di salvare qualunque tipo di informazione in modo permanente e soprattutto immutabile. È legittimo domandarsi, però, quali siano le caratteristiche specifiche del caso che garantiscono tale rinomata sicurezza. Ricorrendo a un banale esempio, si cercherà di far luce su come sia possibile riconoscere eventuali manomissioni e, successivamente, come si possa porvi rimedio.
Analizzando un ipotetico utente malintenzionato, intento a modificare, a suo vantaggio, una transazione avvenuta l’anno precedente, si tratta di verificare come l’ecosistema blockchain risponderebbe a tale mancata diligenza. Come in un domino, tutti i blocchi successivi a quello della suddetta transazione, creati negli ultimi due anni, subirebbero una modifica intaccando gli hash, ovvero i codici identificativi, dei vari blocchi. Tuttavia, dal momento che l’hash code di ogni blocco è generato a partire dal codice del precedente blocco, i partecipanti della rete sono immediatamente in grado di sapere se l’integrità della blockchain sia stata o meno preservata nel tempo. È doveroso però evidenziare come l’hashing non garantisca l’immutabilità ma solo la capacità di rendere immediatamente evidente, per tutti i nodi o partecipanti della rete, qualunque modifica effettuata.
Dunque, se non l’immutabilità, cosa rende tale sistema a prova di manomissione? La compartecipazione di tutti i membri presenti all’interno di un’infrastruttura di tale tipologia è uno dei fattori di successo della suddetta tecnologia. Manipolare la blockchain può risultare di estrema facilità; al contrario, convincere tutti i partecipanti del network che la modifica sia lecita risulta estremamente inverosimile. Difatti, l’immutabilità risiede nel protocollo di consenso piuttosto che nella struttura di partenza, già ampiamente discussa nel precedente articolo.
Per semplicità di esposizione è possibile prendere in considerazione un ulteriore esempio illustrativo. Supponiamo che un genitore abbia venduto un immobile dal valore di 500.000 euro, somma che avrebbe dovuto essere successivamente divisa tra i suoi cinque figli. In seguito, per distribuire una minore eredità egli afferma che l’immobile è stato venduto a 400.000 euro e che ogni figlio riceverà 75.000 euro contro i 100.000 euro stabiliti al momento della vendita del bene. Nel caso in cui tale transazione fosse avvenuta utilizzando una blockchain, i partecipanti della rete, in questo caso i figli, si sarebbero immediatamente resi conto che la somma spettante a ciascuno era 100.000 euro e non 75.000, decidendo, così, di non convalidare tale stato finale, differente, della “catena di blocchi”. Rifiutando, tramite il protocollo del consenso, la modifica della transazione effettuata dal padre, la quale risulta essere scorretta e non giustificata dal risultato finale, i membri della famiglia saranno in grado di tutelarsi e di ricevere l’ammontare dovuto.
Prima di discutere il modo in cui vengono generati indirizzi e wallet, unitamente al loro funzionamento, occorre spendere qualche parola sulla crittografia, elemento estremamente complesso ma fondamentale ormai in qualunque applicazione utilizzata quotidianamente. Per crittografia si intende, anzitutto, la ricerca di tecniche di comunicazione con la finalità di rendere un messaggio “offuscato” in modo da non essere comprensibile a persone prive dell’autorizzazione per leggerlo. Affinché non vi sia alcun tipo di dubbio nella comprensione del funzionamento del sistema crittografico, bisogna effettuare una distinzione tra crittografia a chiave pubblica e crittografia a chiave privata. Quest’ultima è generata in modo casuale e va custodita in modo diligente, senza mai procedere alla sua condivisione. Al contrario, una chiave pubblica, derivata matematicamente dalla rispettiva chiave privata, può essere condivisa con chiunque, essendo proprio questo il suo scopo finale. Difatti, generare una chiave pubblica a partire da una chiave privata risulta essere un calcolo computazionale banale; mentre invertire tale operazione è praticamente impossibile.
Senza entrare eccessivamente nel dettaglio, ci si limiterà a spiegare come il concetto di criptazione sia del tutto complementare al concetto di hashing. Nonostante il contenuto di un messaggio criptato sia nascosto a chi non possiede la corretta chiave privata di lettura, è pur sempre possibile modificarne il contenuto anche senza conoscerlo. Per ovviare a tale problematica si è fatto uso dell’hashing, in cui eventuali modifiche non sono ammesse non presentando alcuna possibilità di invertire il processo. Su quest’ultimo passaggio è possibile chiamare in causa la cosiddetta firma digitale, perfetto esempio di un’esistente complementarietà tra crittografia a chiave pubblica e hashing. Con una firma digitale è possibile ottenere non solo l’autenticazione, grazie all’utilizzo della chiave privata per la firma del documento, ma anche l’integrità, ovvero l’impossibilità di modificare successivamente il messaggio poiché invalidante la firma precedentemente apposta dallo stesso soggetto.
Tornando invece ai concetti di indirizzo e wallet, e alle loro differenze in termini di definizioni e rispettivi utilizzi, ne occorre una piena comprensione, necessaria per esplorare con maggior successo la tecnologia della blockchain. Nonostante sia un pensiero comune associare indirizzi e wallet, è fondamentale distinguere quest’ultimi e ricordare come all’interno di un’infrastruttura blockchain, a prescindere dalle relative finalità di utilizzo, non vi siano profili utenti ma piuttosto indirizzi. In realtà, gli indirizzi degli utenti non contengono criptovalute, poiché hanno come scopo principale quello di segnalare e identificare la destinazione di una transazione avente come oggetto qualunque tipo di asset digitale, un po’ come un indirizzo di casa. Dunque, essere in possesso di un indirizzo permette di abilitare le transazioni verso (e da) un’entità unica. Inoltre, gli indirizzi possono essere condivisi liberamente, senza alcun tipo di preoccupazione, non contenendo alcun tipo di asset digitale.
Viene allora spontaneo chiedersi dove sia possibile avere riscontro, in ipotesi di acquisto di asset digitali, della loro esistenza e del possesso degli stessi. In realtà, potrà sembrare strano e per certi versi destabilizzante, in nessun luogo. Infatti, una blockchain è solo ed esclusivamente una lista di transazioni in cui il concetto di oggetto fisicamente percepibile scompare, dando spazio all’idea di moneta come oggetto non tangibile. D’altronde, siamo già abituati a osservare i nostri averi solo sotto forma di voci contabili e saldi finali; non occorre altresì dimenticare come all’interno del nostro sistema monetario circa il 92% dell’intero denaro in circolazione esiste esclusivamente come voce contabile nei sistemi informatici.
Qual è, dunque, l’eterogeneità riscontrabile nella ricerca di un’eventuale differenza tra indirizzi e wallet? Quest’ultimi sono funzionali all’utilizzo dei primi; gli indirizzi vengono, infatti, gestiti utilizzando i wallet, i quali, a differenza dei portafogli tradizionali, non contengono nessun tipo di denaro. Un portafoglio digitale memorizza le chiavi pubbliche e private di un indirizzo, rappresenta quello che oggi definiremo account privato. Di conseguenza, risulta impossibile perdere le proprie criptovalute; al contrario, però, è possibile smarrire le chiavi private necessarie per accedere a tale account.
Al momento esistono tre tipologie di portafogli: software wallet, hardware wallet e wallet cartacei. Tali tipi di wallet, a loro volta, possono essere, a seconda dell’ambiente in cui operano, suddivisi in hot storage e cold storage. Un wallet cartaceo è la forma più semplice di cold storage, essendo le chiavi private stampate su un pezzo di carta; la sicurezza di tale portafoglio dipende esclusivamente dal luogo in cui esso viene custodito. Invece, un software wallet è un’applicazione installata su un computer o su uno smartphone. Viene scelto per la sua estrema semplicità di utilizzo; tuttavia, nel caso in cui la macchina venisse compromessa si potrebbe riscontrare una possibile perdita delle chiavi private. Per quel che riguarda un hardware wallet, esso memorizza le chiavi private in un dispositivo fisico avente la forma di un dispositivo usb. In tal caso, le transazioni vengono firmate all’interno del dispositivo stesso e anche nel caso di compromissione del dispositivo non sarebbe possibile sottrarre le chiavi private. Da questo punto di vista risulta essere il miglior compromesso in termini di sicurezza e semplicità di utilizzo.
Purtroppo, però, la maggior parte degli utenti, non conoscendo tali soluzioni, rimane ancorata all’utilizzo di exchange wallet. Quest’ultimi sono portafogli presenti su intermediari di criptovalute come Coinbase o Binance; il loro utilizzo consiste nella delegazione della gestione del proprio wallet all’intermediario stesso. Un wallet hot storage è pienamente collegato alla rete internet, ovvero le chiavi private sono state create o memorizzate su una macchina connessa a internet. Al contrario un wallet cold storage fa riferimento a un portafoglio le cui chiavi private non sono mai entrate in contatto con Internet. Si comprende pertanto facilmente che una soluzione cold storage è caratterizzata da un maggiore grado di sicurezza.
Avendo chiari i concetti base dei componenti principali di una blockchain, è possibile adesso passare a introdurre il concetto di transazione. Una transazione valida implica un cambio di stato nella blockchain, come già spiegato negli esempi precedenti. In assenza di un’autorità centrale, risulta necessario trovare un metodo per poter raggiungere, in modo efficiente, un accordo sullo stato corretto della blockchain: “Quali transazioni sono avvenute correttamente? In quale ordine?”. In questi scenari è fondamentale trattare il protocollo del consenso, che rappresenta l’unica verità possibile sul corretto stato della blockchain. Di conseguenza, una transazione è valida solo se approvata dal consenso di tutti i partecipanti alla rete.
Appare, dunque, strabiliante l’esistenza di una tecnologia, la quale non solo non richiede un’entità centralizzata, ma che ricambia i propri utenti con elevata sicurezza, fiducia e, soprattutto, coinvolgendoli in qualunque modifica o problematica dell’ecosistema. Di conseguenza, auspicare alle generazioni future un mondo decentralizzato è paragonabile all’auspicio di un mondo realmente libero da qualunque potere forte e caratterizzato da uguaglianza, ormai solo un lontano ricordo.
— — — —
Abbiamo bisogno del tuo contributo per continuare a fornirti una informazione di qualità e indipendente.