Blockchain, da Bitcoin a Ethereum
Scopri come la blockchain garantisce sicurezza e trasparenza nelle transazioni
9min
Scopri come la blockchain garantisce sicurezza e trasparenza nelle transazioni
9min
Episodi di Blockchain Revolution
Benvenuti a una nuova lezione di questo corso in formato podcast dedicato alla tecnologia blockchain e al web 3. Nelle precedenti lezioni abbiamo evidenziato la necessità di un registro condiviso a livello mondiale su cui poter scrivere transazioni e assegni digitali. Ma come funziona questo registro? Potete immaginarvelo come un quaderno sul quale possiamo scrivere a penna tutte le informazioni che vogliamo registrare. Qualunque cosa venga scritta su questo registro rimane quindi immutabile e indelebile e quindi il registro si chiama append-only, cioè posso solo aggiungere informazioni e non rimuoverne. Ovviamente è anche possibile aggiornare alcune di queste informazioni ma per tornare al nostro esempio è come se tirassimo una riga su un'informazione scrivessimo in una pagina successiva l'informazione corretta e quindi lasciassimo traccia sia delle informazioni precedenti sia di quella giornata. Non è quindi possibile cancellare o cambiare qualcosa senza lasciarne traccia. Su ogni pagina è ovviamente possibile memorizzare e registrare più transazioni, più assegni digitali. Ogni pagina rappresenta quindi un blocco di informazioni e la concatenazione di tutte le pagine del quaderno rappresenta appunto la blockchain, ovvero la catena di blocchi.
Ma come è possibile fare in modo che chiunque entri in possesso di questo quaderno non possa semplicemente strapparne via una pagina per cambiare la catena degli eventi? Ovviamente rimuovere un blocco vuol dire rimuovere le transazioni, gli assegni contenuti in quel blocco e quindi ovviamente se in quel blocco sono stati spesi dei token, sono stati inviati dei token a qualcuno, cioè è stato speso del valore, rimuovere la pagina è come rimuovere quelle transazioni, quindi come se quei soldi non fossero mai stati spesi e quindi andare a modificare la storia degli eventi. La soluzione che è stata trovata per far sì che non si potesse semplicemente rimuovere una pagina dal quaderno senza che nessuno se ne accorgesse è quella di concatenare le pagine del quaderno una con l'altra, cioè immaginatevi nella seconda pagina io vado a scrivere anche tutto il contenuto della prima e nella terza tutto il contenuto della seconda e così via, a quel punto rimuovendo una pagina nelle pagine successive ci sarebbe la traccia che qualcosa è stato rimosso.
Questo però comporta un grande problema, ovvero il fatto che se la prima pagina ha una certa dimensione la seconda pagina deve includere anche la prima e quindi avrà una dimensione doppia, la terza a quel punto dovrebbe includere la seconda e quindi avrà una dimensione tripla rispetto alla prima pagina e così via, cioè se ogni pagina deve contenere anche tutte le altre la dimensione di queste pagine cresce costantemente. Esiste però per fortuna una facile soluzione a questo problema, invece di memorizzare all'interno della pagina tutto il contenuto delle pagine precedenti è sufficiente memorizzare l'impronta digitale delle pagine precedenti utilizzando la cosiddetta funzione di hash. Quindi ogni pagina riporta non soltanto il contenuto della pagina stessa ma anche l'hash della pagina precedente e così via, creando quindi una catena di pagine. In questo modo è assolutamente facile verificare che non siano state rimosse delle pagine, basta controllare la sequenza degli hash, cioè l'hash di ogni pagina deve essere il contenuto nella pagina successiva. Se trovo una pagina il cui hash non corrisponde con l'hash della pagina precedente, beh, vuol dire che qualcuno ha manipolato il registro, qualcuno ha modificato le cose. A questo punto se io sono sicuro della prima pagina e dell'ultima, beh, la storia che c'è nel mezzo non può essere modificata da nessuno, perché facendolo si modificherebbe la sequenza degli hash e quindi non si potrebbe mai arrivare all'hash contenuto nell'ultima pagina.
Rimane però un problema. Cosa succede se qualcuno a un certo punto modifica la catena dal mezzo fino alla fine e quindi cambia tutte le pagine del mio quaderno da un certo punto in poi? Il meccanismo che mi garantisce che ciò non possa avvenire è duplice. Da una parte si dice che la catena più lunga vince sempre, cioè se ho un registro più corto e un registro più lungo, beh, il registro più lungo è quello che vince, è quello corretto. Però, d'altra parte, uno potrebbe dire, allora, chi vuole ingannare può modificare il registro e aggiungere pagine a sufficienza per far diventare quel registro falso più lungo di quello vero. Ecco, qua interviene il secondo meccanismo, e cioè rendere costoso, difficoltoso, aggiungere pagine a questo registro. E come si fa a rendere costosa l'aggiunta di una pagina al registro? Esistono diversi meccanismi. Per esempio in bitcoin, che è una delle più importanti blockchain, la prima che è stata inventata e messa in opera, il meccanismo è quello della cosiddetta proof of work, cioè bisogna risolvere un puzzle crittografico per poter aggiungere la pagina al registro. In particolare, bisogna calcolare un numero, che si chiama nonce, che, aggiunto alla mia pagina, fa sì che l'hash inizi con un certo numero di zeri. Questo richiede ovviamente tanta potenza computazionale. Immaginatevi che, con la difficoltà che abbiamo oggi proprio su bitcoin, un blocco viene aggiunto ogni dieci minuti con tutte le macchine del mondo che lavorano in parallelo per trovare un nonce, tale per cui il blocco inizi con il giusto numero di zeri. A questo punto io posso sì rimuovere le ultime tre pagine del registro e sostituirle con quattro nuove pagine e quindi creare una catena più lunga, ma creare queste quattro nuove pagine mi costa tantissimo potere computazionale e anche tantissima energia e, in quel tempo che mi è necessario per creare queste quattro pagine il resto del mondo avrà creato ancora più pagine. L'unico modo per aggiungere più pagine di quante ne sta creando tutto il resto del mondo è che io abbia almeno il 51% del potere computazionale dedicato, a livello mondiale, a questa attività. Quindi, non potendo modificare o rimuovere pagine nel mezzo e non potendone aggiungere di nuove e, quantomeno, non più di quelle che il resto del mondo sta scrivendo, ecco che la catena degli eventi, quindi la blockchain, viene salvaguardata e non può essere modificata da nessuno.
Questo non è l'unico meccanismo possibile. Per esempio Ethereum, che è una blockchain nata qualche anno dopo Bitcoin, che inizialmente utilizzava il proof of work, cioè lo stesso meccanismo di Bitcoin, è passata nel settembre 2022 a un altro meccanismo, il cosiddetto proof of stake, cioè i validatori mettono a garanzia del valore, del valore economico, e devono firmare, a maggioranza, al nuovo blocco. Se si scopre che qualche validatore ha firmato due blocchi diversi e quindi ha permesso, in qualche modo, la riscrittura della blockchain, ecco che il valore che quel validatore aveva messo a garanzia gli viene sottratto e quindi ne ha una penalità in termini economici. Esistono anche altri meccanismi ma, in generale, quello che succede è che viene sempre disincentivato, in termini economici, ogni comportamento che potrebbe portare alla violazione dei meccanismi cardine della blockchain, ovvero l'immutabilità della storia delle transazioni.
Come abbiamo accennato poco fa, esistono diverse blockchain, diverse tipologie di blockchain, ad esempio Bitcoin ed Ethereum, e non si distinguono soltanto per i meccanismi di consenso che permettono di mantenere valida la catena di blocchi, ma hanno anche altre caratteristiche che li contraddistinguono. Per esempio, Bitcoin è caratterizzata da uno script, da una programmabilità volutamente limitata per definizione, mentre Ethereum estende la possibilità di programmare e crea una sorta di computer a livello mondiale che può eseguire programmi di qualunque tipo. Questo argomento però lo approfondiremo più avanti, nelle prossime lezioni. Quello che risulta sempre vero per la maggior parte delle blockchain, e in particolare proprio per Bitcoin e Ethereum, è che le transazioni che vengono scritte sulla catena rimangono immutabili e immodificabili nella storia e non è possibile né alterarne il contenuto e quindi modificarlo, né rimuoverle e né cambiarne l'ordinamento temporale. Quindi, se una transazione è stata registrata all'interno di una blockchain prima di un'altra, sarà sempre vero che quella particolare transazione precede l'altra. Proprio grazie a questo fatto io posso essere sicuro che se qualcuno mi cede un bene, può essere un token fungibile o un token non fungibile, e io vedo che l'attuale proprietario lo sta trasferendo a me e questa cosa viene scritta su blockchain, ecco che posso essere tranquillo che quell'oggetto è diventato mio. E la cosa interessante è che non soltanto io ne posso essere sicuro, io posso a mia volta dimostrare a chiunque altro che io sono il nuovo proprietario, il nuovo possessore di quell'oggetto digitale, perché chiunque può vedere che il nuovo proprietario ha una determinata chiave pubblica e corrisponde a una determinata identità digitale che io posso dimostrare di possedere. Nasce proprio da qui il fenomeno delle criptovalute. Grazie alla tecnologia blockchain diventa quindi possibile detenere e scambiare valore digitale, proprio come abbiamo spiegato poco fa, senza la necessità di un ente centrale che gestisca gli scambi e i saldi di ogni singola persona. Ma questa non è nient'altro che una delle possibili applicazioni della tecnologia blockchain. Sicuramente una delle prime e una delle più famose, ma ce ne sono molte altre che vedremo nel prosieguo del corso.