Cos’è la Blockchain? Il comico americano Stephen Colbert afferma che è “oro per nerd”. Beh, i nerd ora sono i ragazzi più popolari del quartiere, e la tecnologia blockchain sta diventando una delle tendenze finanziarie e dell’innovazione digitale più prominenti dalla creazione di Internet.
Le blockchain sono database. Invece di essere archiviati su un server centrale a cui accedono tutti gli utenti, i record delle blockchain sono archiviati sui computer degli utenti in tutto il mondo. Ciò rende la blockchain un database distribuito con un’architettura peer-to-peer. “Distribuito” significa che i dati sono archiviati in più posizioni e “peer-to-peer” significa che non esiste un’autorità centrale che detenga una copia originale dei dati.
La blockchain Bitcoin di Satoshi Nakamoto non è stata il primo database distribuito, né il primo database peer-to-peer. Non è stata la prima blockchain. Ma costituisce la base della prima criptovaluta moderna ed è il punto di partenza per le blockchain che sono venute dopo.
Come funziona la blockchain?
Supponiamo di voler memorizzare i dati di una mano di poker in un database. Inizieremo assegnando a ciascuna delle carte del mazzo un numero: 1 è l’asso di picche, 2 è il 2 di picche, 3 è il 3 di picche, fino a 52 che è il re di cuori. La tua mano potrebbe essere qualcosa del genere:
Record | Valore della carta |
---|---|
1 | 12 |
2 | 44 |
3 | 4 |
4 | 31 |
5 | 27 |
Pensa ai numeri dei record come ai numeri delle righe in un foglio di calcolo. I programmatori di database li chiamano appunto record, mentre i programmatori di blockchain li chiamano blocchi. Riga, record, blocco sono tutti termini che si riferiscono a una singola voce dei dati.
La mano del tuo avversario occuperà le righe 6-10, un’altra mano potrebbe essere memorizzata nell’intervallo 11-15 e così via. Quindi, per specificare di quale mano stiamo parlando, basta dire al database qual è la riga che contiene la prima carta.
Gli anelli della catena
Ovviamente, in un database peer-to-peer distribuito, altri utenti possono stare gestendo le mani di poker contemporaneamente a te. Perciò è improbabile che le tue carte compaiano in righe consecutive. Quindi possiamo aggiungere dei puntatori alla carta precedente e a quella successiva per collegare i dati in una catena:
Record | Valore della carta | Carta precedente | Carta successiva |
---|---|---|---|
15 | 12 | 0 | 37 |
37 | 44 | 15 | 118 |
118 | 4 | 37 | 121 |
121 | 31 | 118 | 199 |
199 | 27 | 121 | 999 |
La prima carta della tua mano è memorizzata nella riga 15. Il valore della carta è 12, quindi si tratta della regina di picche. Non ci sono righe precedenti nella tua mano, quindi mettiamo uno 0 nella colonna “Carta precedente”. La carta successiva è memorizzata nella riga 37.
Guardiamo poi la riga 37. Anch’essa specifica una sola carta, con un puntatore alla riga in cui si trova la carta precedente (15) e uno alla carta successiva, che è memorizzata alla riga 118.
In informatica, questa struttura è nota come lista doppiamente puntata, perché comprende un puntatore in avanti e uno all’indietro. I puntatori sono memorizzati nel database come dati insieme ai valori delle carte.
Proteggere i dati
Non c’è nulla che impedisca a noi o a un eventuale hacker di modificare i valori delle carte. Con questo database, barare è facile. Chiunque abbia accesso al database potrebbe modificare i valori delle prime quattro carte della tua mano in 1, 14, 27, 40, ovvero quattro assi.
Possiamo proteggerci dagli errori dei dati e dagli hacker aggiungendo una colonna. Per ogni riga, aggiungeremo una colonna che contiene la somma dei valori delle carte, in questo modo:
Record | Valore della carta | Carta precedente | Carta successiva | Checksum |
---|---|---|---|---|
15 | 12 | 0 | 37 | 12 |
37 | 44 | 15 | 118 | 56 |
118 | 4 | 37 | 121 | 48 |
121 | 31 | 118 | 199 | 35 |
199 | 27 | 121 | 999 | 58 |
Capito come funziona? Per la nostra seconda carta, il valore del checksum è 56, che è la somma dei valori delle prime due carte, 12 e 44. Il checksum della terza carta è la somma delle due carte successive. Ogni volta che leggiamo il valore di una carta possiamo calcolare il checksum e confrontarlo con il checksum memorizzato nel database. Se non corrispondono, sappiamo che i dati sono stati manomessi.
I chip di memoria all’interno del tuo computer o del tuo smartphone rilevano gli errori utilizzando questo sistema. Questo metodo viene usato anche per individuare errori sul disco fisso.
Questo semplice sistema del checksum è una componente essenziale della tecnologia blockchain. Qualunque studente al primo anno di informatica ne ha sentito parlare.
Ma è anche terribilmente vulnerabile agli hacker. Chiunque abbia diritti di accesso sufficienti per modificare i valori della carta potrebbe anche alterare i checksum per nascondere il suo operato. Oppure un hacker potrebbe alterare i puntatori “carta precedente” e “carta successiva” per sostituire una carta della tua mano con una carta memorizzata in una riga diversa.
Nakamoto ha previsto queste vulnerabilità nella sua architettura blockchain. Invece di ricorrere semplicemente all’aggiunta di un checksum e tenere traccia degli anelli nella catena dei dati, ha utilizzato un processo crittografico chiamato “hashing”.
Hashing e crittografia
L’hashing crea un identificatore univoco combinando il valore del record precedente con il valore del record attuale in un processo matematico unidirezionale che produce un valore hash come ad esempio 06C4D99F32047. Il processo è detto unidirezionale perché non esiste un processo matematico corrispondente per risalire dall’hash 06C4D99F32047 ai dati originali.
In una blockchain, il valore hash di ciascun blocco si basa sul valore hash del blocco precedente che, a sua volta, si basa sul valore hash del blocco precedente, risalendo via via fino al blocco 0 di Nakamoto. È possibile calcolare il valore hash di qualsiasi blocco e confrontarlo con il valore hash memorizzato nel blocco stesso. Se i valori non corrispondono, i dati sono stati manomessi.
In un database tradizionale, sarebbe possibile manomettere i dati, quindi calcolare nuovi valori hash e inserirli in blocchi o record successivi per occultare le modifiche. Ma questo non funziona con un database blockchain peer-to-peer distribuito perché, per farlo, un hacker dovrebbe modificare contemporaneamente le copie del database archiviate su centinaia o migliaia di computer.
Una conseguenza è che, sebbene sia possibile aggiungere nuovi blocchi di dati alla blockchain, i blocchi precedenti non possono essere cancellati o modificati. Questo significa che non puoi inviare a te stesso 100.000 $ in Bitcoin e poi cancellare la transazione.
Ogni transazione nella blockchain viene validata per mezzo questo meccanismo di hashing.
Inoltre, Nakamoto ha impostato una crittografia per assicurare che i dati memorizzati nella blockchain potessero essere visualizzabili da tutti gli utenti, ma decifrati solo da chi che dispone delle appropriate chiavi di decrittazione. Senza tale chiave, ciò che visualizzeresti sarebbe solo una serie di caratteri senza alcun senso.
La potenza della tecnologia blockchain
La tecnologia blockchain rende i dati riservati, permanenti e verificabili. Il registro dei dati e delle transazioni è pubblico, ma la crittografia lo protegge da occhi indiscreti e alterazioni. Questo è il motivo per cui la blockchain Bitcoin viene detta anche l’“open ledger” (che significa registro contabile aperto) di Bitcoin.
Tutto il sistema di hashing e della crittografia richiede molte risorse di elaborazione. È lento. In tutto il mondo, l’intera rete blockchain di Bitcoin non può elaborare più di di 4,6 transazioni al secondo (TPS). Le società di carte di credito elaborano regolarmente in media 1.700 TPS e affermano di essere in grado di gestire fino a 56.000 TPS. Il limite di 4,6 TPS è la principale causa del problema di scalabilità di Bitcoin. Gli informatici ci stanno lavorando.
Si ritiene che la rete di computer che, nel mondo, valida le transazioni in Bitcoin consumi più corrente elettrica di tutta la Svizzera.
Molti dei nodi di convalida delle transazioni di Bitcoin contengono l’intera blockchain, che attualmente è pari a circa 250 GB di dati. Questi nodi sono detti nodi completi. La rete comprende anche nodi SPV che effettuano la verifica semplificata dei pagamenti. Contare i nodi esistenti non è semplice. Un sito che si chiama Bitnodes fornisce un conteggio aggiornato dei nodi attualmente online e raggiungibili, ma una rapida ricerca su Google dimostra che gli esperti forniscono stime del numero di nodi che variano da 6.000 a 200.000. Nessuno sa veramente quanti siano.
Tutto ciò che c’è da sapere su Ethereum
La blockchain più utilizzata è Ethereum, che include modifiche che la rendono più flessibile della blockchain Bitcoin. Ethereum ha la sua criptovaluta, Ether, ma gli sviluppatori hanno creato molte altre criptovalute che si basano sulla blockchain Ethereum. Oltre che per la moneta elettronica, la stessa piattaforma viene utilizzata anche per molti diversi tipi di applicazioni.
Uno dei principali vantaggi di Ethereum è che, oltre ai dati, può contenere programmi eseguibili. Questi programmi sono detti “smart contract”. Ad esempio, uno smart contract potrebbe calcolare l’incremento del valore in Ether sul tuo account nel corso di questo mese e quindi effettuare una donazione in percentuale a un’associazione benefica.
Come la blockchain Bitcoin, Ethereum è a prova di manomissione. La marca di orologi di lusso Breitling fornisce ai proprietari dei suoi orologi un certificato elettronico che ne dimostra l’autenticità. Se vendi il tuo orologio, puoi trasferire il certificato al nuovo proprietario, creando una catena di proprietari verificabile. La tecnologia può essere utilizzata anche per tracciare la provenienza degli alimenti venduti al dettaglio, registrando ogni trasferimento delle materie prime e dei prodotti lavorati. La sensibilità in merito all’origine etica dei prodotti sta crescendo e la blockchain è lo strumento adatto per rispondere anche a queste nuove esigenze.
Nel 2020, l’Associated Press ha postato i risultati delle elezioni presidenziali americane minuto per minuto sulla blockchain Ethereum per creare un registro non modificabile dei conteggi dei voti ufficiali verificati.
La blockchain Ethereum gestisce circa 30 TPS. Gli sviluppatori sono al lavoro su versioni future di Ethereum che utilizzeranno una tecnica chiamata sharding per eseguire più blockchain contemporaneamente, con transazioni consolidate inviate in modo asincrono alla blockchain centrale. Gli sviluppatori sperano che le nuove versioni della blockchain di Ethereum potranno gestire fino a 100.000 TPS.
Dato che Ethereum è in grado di eseguire gli smart contract, funge da piattaforma per molte applicazioni riferite alla blockchain. La maggior parte delle applicazioni decentralizzate basate su blockchain, in particolare le app finanziarie decentralizzate (o DeFi), si basano sulla catena principale di Ethereum o su sue blockchain private.
Ethereum rappresenta anche un’ottima scelta per le aziende che desiderano implementare tecniche di token-economy. Ad esempio, un’azienda potrebbe realizzare un programma fedeltà in cui i clienti ricevono coin Acme a ogni acquisto. Potrebbe quindi esserci un negozio di articoli da regalo in cui è possibile spendere i coin Acme. L’azienda potrebbe anche creare una rete di partner che accettano i coin Acme, dando così ai token un valore di fatto, anche se non è possibile cambiarli in dollari o euro.
Inoltre la specifica Ethereum ERC-721 definisce un protocollo per la creazione di token non fungibili. È la base del mercato NFT.
Altre blockchain
Bitcoin ed Ethereum sono le blockchain più utilizzate, ma ne esistono ormai altre centinaia o migliaia, tutte basate sull’idea originale di Nakamoto. Le blockchain possono essere pubbliche come la blockchain Bitcoin oppure private, utilizzate per la gestione interna dei dati.
I ricercatori hanno creato molte varianti dell’architettura blockchain di base. Molte comprendono innovazioni per supportare un’elaborazione più rapida, una maggiore scalabilità o commissioni inferiori sulle transazioni. Numerosi progetti nel mondo delle criptovalute si occupano di meccanismi di consenso, coordinamento di sottocatene subordinate, blockchain private e altre tecnologie chiave.
Cos’è una blockchain? Ora lo sai
Qual è la definizione di blockchain? Come funziona la tecnologia blockchain? Speriamo che questa spiegazione della blockchain ti abbia aiutato a saperne di più e ad apprezzare la natura straordinariamente rivoluzionaria dell’architettura dei database peer-to-peer e delle sue applicazioni.
NOTA
Il testo è a solo scopo informativo e non conta come consiglio di investimento. Non esprime l’opinione personale dell’autore o del servizio. Qualsiasi investimento o azione di trading è rischiosa, i ritorni passati non garantiscono ritorni futuri - rischia solo i beni che sei disposto a perdere.