Siccome di definizioni in rete ce ne sono già tante, oggi voglio aggiungere anche la mia:
“La blockchain è un registro informatico decentralizzato che permette di verificare e registrare informazioni in ordine cronologico, in autonomia e senza intervento umano, in modo permanente e anonimo ma che può essere consultato da tutti liberamente”.
Lo potremmo definire un database autonomo, persistente, condiviso ed inalterabile.
La blockchain è un database che serve a registrare e marcare temporalmente delle informazioni (dati e/o documenti). Di per sé, non serve a fare soldi. Ma grazie al Bitcoin, a Ethereum e alle ICO, tutti la vogliono usare per questo scopo e per farla accettare con maggiore semplicità, i big dell’informatica usano parole come: fiducia e verità.
In effetti, nella definizione di blockchain la parola “verità” non c’è, tantomeno la parola “fiducia”.
Analizziamo la definizione per capire meglio cos’è una blockchain:
- è un registro. Nel linguaggio informatico, è un database cioé un file più o meno grande contenente dati. Come tutti i database è composto da un programma informatico, che deve essere eseguito su un computer o un server.
- Permette di verificare e registrare informazioni: come tutti i database, ogni volta che qualcuno vuole registrare un’informazione, il programma ne verifica la correttezza e la registra sul disco. I database come Oracle hanno anche un meccanismo cronologico (flashback) che permette di tracciare quando il dato è stato scritto e recuperarne una versione più vecchia.
E fino a qui non ci sono differenze con uno dei tantissimi e normalissimi database usati tutti i giorni da milioni di persone e aziende.
Ecco da cosa differisce, quindi, una blockchain da un normale database:
- Registra in ordine cronologico, in autonomia e senza intervento umano e in modo permanente: nella blockchain le operazioni di cancellazione e aggiornamento (update e delete, per intenderci con un linguaggio sql) non esistono, si può solo scrivere e leggere. Inoltre nella blockchain data e ora sono registrati insieme al dato (marca temporale) e prima di scrivere vengono effettuate una serie di controlli automatici da tutti i nodi che devono raggiungere un consenso rispetto al risultato dei controlli.
- è anonimo: per ogni utente che partecipa alla blockchain, vengono generati automaticamente: un “indirizzo” esadecimale, una chiave pubblica e una chiave privata; a parte l’utente stesso, nessun’altro sa a chi corrisponde un certo indirizzo.
- può essere consultato da tutti liberamente: tutti possono leggere e scrivere le proprie informazioni (siano esse transazioni, files di testo o multimediali) e tutti possono vedere tutte le registrazioni nel database.
- è condiviso: tutti hanno una copia del registro quando partecipano alla blockchain. Ogni utente forma un nodo e tutti i nodi sono collegati e replicati tra loro, un po’ come i DNS di internet.
- è inalterabile: tutte le operazioni sono legate in un insieme di blocchi per formare una catena: se un blocco è modificato, la catena è “spezzata” e quella copia del database diventa non valida. L’utente che la possiede viene escluso fino a che non reinstalla il programma e si ricollega alla blockchain per caricare una copia valida (sempre che si sia ricordato di fare una copia della sue chiavi pubblica e privata!)
- è decentralizzato: non esiste un unico server centrale ed un amministratore (ma questo vale solo per le blockchain pubbliche, non per le private).
Questa definizione ci fa capire, quindi, che dare fiducia ad una blockchain vuol dire fidarsi del pc di qualcuno in qualche parte nel mondo.
La “verità” della blockchain altro non è che l’informazione scritta da qualcuno in un dato momento ma che nessun essere umano ha verificato. Se ci pensate bene non è molto diverso da quello che già oggi accade con i siti di e-commerce (nessuno sa con certezza se dopo aver pagato un acquisto online riceveremo la merce oppure no), con la differenza che un minimo di regole ci sono e ci mettono relativamente al sicuro dalle frodi, come ad esempio il fatto di dover pubblicare il numero di partita IVA, la ragione sociale, i dati per la gestione della privacy, ecc., dati che possono essere verificati attraverso istituzioni pubbliche riconosciute, mentre per la blockchain non ci sono ancora regole e procedure da seguire. Ma questo sarà argomento di un nuovo post.