Cos'è la blockchain? Facciamola semplice!

Cos’è la blockchain? Facciamola semplice!

Con questo articolo renderemo finalmente comprensibile, un meccanismo complesso come quello della blockchain, e lo faremo utilizzando qualche esempio

La parola d’ordine di questo articolo è “semplicità”… Con questo articolo renderemo finalmente comprensibile, un meccanismo complesso come quello della blockchain, e lo faremo utilizzando qualche esempio.

La blockchain è il “meccanismo tecnologico” che sta alla base delle Criptovalute, e di cui potrai leggere l’affascinante storia “QUI.

Allora, tanto per iniziare comincia ad usare la tua immaginazione, ed ipotizza che nella grande città dove vivi, vi sia un unico grande parcheggio che contiene 200 automobili (beh forse la città non è cosi grande!). Questo parcheggio ha un ingresso principale che è chiuso e viene aperto solo quando un’auto entra o esce.

Ora analizziamo insieme questo parcheggio, e lo facciamo secondo vari punti di vista.

Prezzo: Qualche compagnia ha costruito questo parcheggio, e tutti i costi di manutenzione saranno a carico della compagnia proprietaria, i prezzi di un posto auto saranno quindi piuttosto alti.

Sicurezza: Se dei ladri riuscissero ad accedere all’ingresso principale, potrebbero facilmente prendere la tua auto! (o prenderne le ruote, il carburante, o danneggiare lo sterzo, qualsiasi cosa insomma!),  e potrebbero farlo non solo alla tua auto (non crederai mica di essere il solo sfortunato), lo potranno fare a tutte le auto presenti nel parcheggio (mal comune…)

Limiti: Cosa succede se il numero di auto in zona aumenta da 200 a 300? Il parcheggio non avrà abbastanza spazio per tutte le auto e qualche altro privato costruirà un nuovo parcheggio.

Fiducia: Ti affidi alla compagnia del parcheggio, che è responsabile per sicurezza e affidabilità.

Centralizzazione: Dal momento che tutte le auto sono in un unico luogo, possiamo considerarlo un parcheggio centralizzato.

Ecco che abbiamo descritto un bell’esempio di un cosiddetto “sistema centralizzato”. Nella nostra città immaginaria, tutte le auto convergono verso un sistema centrale (il parcheggio) che detiene il controllo assoluto di tutte le auto (una sorta di imperatore del regno delle automobili).

Ora però, per non annoiarci, cambiamo un po’ le carte in tavola, e modifichiamo lo scenario.

Bene, allora prova a visualizzare la tua città, dove invece dei soliti palazzi altissimi, ci siano 200 bellissime villette. Ogni villetta possiede due “box” con un posto auto ciascuna. Per semplificarci un po’la vita, consideriamo che ogni casa abbia soltanto un’auto (esattamente la capienza del parcheggio descritto sopra). Di conseguenza, ogni casa ha uno dei due garage vuoto

So che cominci a vacillare sotto il fuoco di fila delle informazioni, ma non perderti proprio adesso, lascia li la tua mente ferma, ad immaginare ancora per un po’.

Adesso presupponi che tutti gli abitanti che hanno questo secondo secondo box inutilizzato e rigorosamente vuoto (ricorda che siamo in un sistema immaginario, nella realtà molti di noi lo avrebbero riarredato … ma questa è un’altra storia!) si mettano d’accordo e decidano di affittarlo.

Cosa succederebbe? Beh, innanzitutto questo modello risolverebbe il problema di parcheggiare 200 o più auto (anche nel caso in cui la popolazione aumentasse o diminuisse) senza la necessità di costruire un parcheggio centrale più grande, sei d’accordo?

Ora che lo scenario è così drasticamente cambiato, proviamo a rifare la stessa analisi che avevamo fatto per il grande parcheggio, rapportandola alla nuova situazione.

Prezzo: I costi di manutenzione sarebbero contenuti rispetto al parcheggio centrale, quindi il prezzo di questi posti auto sarebbe più basso.

Sicurezza: ogni auto è chiusa in un box differente, per cui i ladri dovrebbero scassinare tutti i box per accedere alle auto, il che rende i garage piuù sicuri. (La sicurezza nella blockchain è un pó differente, ma per semplicità consideriamola paragonabile a questo per ora!)

Limiti: Considerando che ogni casa ha un garage extra, lo spazio per le auto crescerà in relazione all’aumento di case; conseguentemente aumentando anche il numero di locatori e locatari.

Fiducia: dal momento che nessuna autorità centrale controlla questi spazi per il posteggio sparpagliati, si considera che ci saranno alcune regole decise dagli stessi proprietari di garage partecipanti per affittare i loro posti.

Decentralizzazione: Come menzionato nel punto precedente, questi spazi per il parcheggio sono spalmati su tutta la città, per cui possiamo considerarne l’insieme come un parcheggio decentralizzato.

Cos'è la blockchain? Facciamola semplice!

Dall’esempio del parcheggio all’applicazione.

L’esempio del “parcheggio distribuito” rappresenta un modello, seppur molto semplificato del funzionamento della blockchain.

Adesso, cerchiamo di mettere insieme le caratteristiche dell’esempio del parcheggio con quello che è il modello tecnico in una blockchain. Il grande parcheggio centrale è un sistema centralizzato come quelli a cui ci siamo abituati negli ultimi anni. iCloud di Apple, Dropbox, Google drive, etc.

le auto rappresentano i dati

Le auto sono i dati che si muovono nella rete (foto, video, testi, etc.). I garage dei singoli abitanti sono i computer dei singoli utenti che costituiscono un sistema decentralizzato (esattamente come succede nelle blockchain).

Sembra semplice? Non correre troppo… non è mica finita. Se fosse cosi dovremmo concludere che ogni sistema decentralizzato fa una Blockchain. In realtà non è così, manca un aspetto particolare ma importantissimo! Un sistema decentralizzato, affinché possa essere definito “blockchain”. deve avere dei “blocchi”.

Lo so, adesso non state li a guardarmi con quelle facce strane, a metà tra il sorpreso, il dubbioso … e con la mezza convinzione che io sia certamente andato fuori di testa !  Vi avevo ampiamente avvisato che il tema non era semplice! Ma adesso proviamo a spiegare …

Ritorniamo all’esempio dei box e questa volta aggiungiamo qualche caratteristica tecnica.

Consideriamo che ogni volta che l’auto viene parcheggiata al suo interno (la stessa macchina va nello stesso garage ogni giorno), il garage venga automaticamente chiuso. Inoltre, i garage sono numerati in ordine seriale.

Ipotizziamo ora che tutte le chiusure o le aperture di ogni box siano connesse tra loro, ad esempio, l’apertura / chiusura del box #50, sia basata su quella del box #49, ma non solo, anche sulle caratteristiche (colore, peso, numero di targa etc.) delle auto posteggiate all’interno del garage #50.

Immaginiamo che questo processo di identificazione cominci dal box #1 per estendersi fino al box #200 (ma anche oltre ovviamente).

le chiavi di accesso

Le chiavi di accesso di ogni box dipendono dalle caratteristiche dell’auto del garage e dalle chiavi di accesso del garage precedente.

Pertanto, se un ladro cerca di entrare nel box #49 e modifica qualsiasi caratteristica dell’auto,  (Nel caso più classico, cercherà di forzare la serratura e aprirà la portiera), le caratteristiche della vettura nel box #49 cambieranno, e di conseguenza verrà generato anche un nuovo paio di chiavi di accesso per il box #49. Ma poiché le chiavi di accesso al box #50 dipendono dalle chiavi del box #49, anche il paio di chiavi del #50 cambieranno e lo stesso vale per tutti i garage futuri.

Capite bene che calcolare una chiusura, richiede un’enormità di risorse di calcolo, per cui ricalcolare tutta la serie di chiavi di accesso nel caso di modifiche alle caratteristiche delle auto, sarebbe praticamente impossibile.

Cominciate a capire la complessità del sistema? Abbiamo detto che tutti i proprietari dei box stabiliscono alcune regole, una di queste riguarda la validità dei box stessi.

La validità del box

Un box è “valido” solo se è possibile validare le sue chiavi di accesso (e fin qui il concetto è chiaro …). Basta che una sola delle chiavi d’accesso venga modificata, (come nel caso il cui il ladro abbia aperto uno dei box  o forzato l’abitacolo di una delle auto), tutte le chiavi di accesso dei garage seguenti saranno a loro volta compromesse, perché ogni chiave dipende dalla precedente.

Questa “interdipendenza” determina la “serialità” dei box, che tecnicamente costituiscono dei quelli che in gergo vengono chiamati “blocks” (blocchi), e da cui deriva  il nome Blockchain (letteralmente catena di blocchi).

Che succede allora se una chiave di accesso viene cambiata?

Cos'è la blockchain? Facciamola semplice!

Tutti i blocchi presenti in un blockchain, sono tenuti insieme da “Hash”. Come succede per l’esempio dei box, se i dati in un blocco vengono modificati, gli “hash” devono essere ricalcolati per tutti i blocchi seguenti, e dal momento che quest’operazione è molto difficile da calcolare, diventa praticamente impossibile portarla a termine, perché i calcoli necessari per soddisfare tutte le regole presenti nel sistema sono enormi.

Il calcolo dell’hash viene chiamato mining”.

Una volta che un hash viene modificato, come vengono ripristinati i blocchi modificati?

Tutti i computer nella rete della blockchain tengono una copia dell’intera serie; per cui se un blocco oppure un’intera catena in un singolo computer o varie macchine, viene modificato, tutta la rete cercherà di confrontarlo con le copie dell’intera catena.

Se la maggioranza dei nodi (o computer) nella rete riconosce come invalida la catena modificata, quest’ultima viene rimpiazzata da altri nodi con una catena valida. Questo rende la Blockchain vulnerabile solo se gli attacchi raggiungono il 51% dei nodi totali (cosa praticamente impossibile in una rete decentralizzata e ben distribuita).

Come vedere, la blockchain è un mondo davvero complicato, e le informazioni da comprendere sono tantissime, spero comunque di esserti stato in qualche modo di aiuto. Questo articolo è ispirato dell’articolo originale scritto da Sidharth Malhotra (“Beginner’s Guide to Blockchain: Explaining it to a 5 year old”-  “Guida per principianti alla blockchain: spiegata a un bambino di 5 anni”) pubblicato su Hacker Noon, un sito web americano di pubblicazioni tecnologiche.