Sviluppo

Impariamo, insegnamo, condividiamo

Impara le ultime tendenze del digitale

Eventi, conferenze e incontri speciali

Blog

Blockchain: 6 semplici concetti per spiegarla (anche) a tua nonna

blockchain

È probabile che tu abbia sentito la parola “blockchain” durante lo scorso anno. Ma sai veramente di cosa si tratta? Spesso capita di sentire questo concetto associato alle criptovalute, o più nello specifico a Bitcoin, investimenti o trading online.

La blockchain non è nulla di tutto questo: si tratta di una tecnologia per creare un registro di transazioni immutabile e verificabile da chiunque.

Potrebbe sembrarti un concetto contorto e poco intuitivo, ma non preoccuparti: abbiamo fatto letteralmente leggere questo articolo a nostra nonna!

Proveremo a spiegartela con 6 semplici concetti:

  1. Transazioni
  2. Catena di Blocchi
  3. Miner
  4. Gas
  5. Criptovalute
  6. Smart contract

 

 

1. Transazioni

La blockchain è una tecnologia che si pone l’obiettivo di creare un enorme registro digitalizzato per annotare tutte le “operazioni” eseguite dai suoi utilizzatori.

Queste operazioni sono dette nel gergo “transazioni” e sono ad esempio:

  • un trasferimento di denaro tra due individui;
  • uno scambio di beni o servizi.

Questo registro, però, al contrario di come avviene nel Mondo Reale™, non è salvato in qualche scaffale polveroso del proprio notaio o nel database di un istituto bancario, ma è condiviso con tutti gli utenti della rete, e ciascuno degli utenti può verificarne l’autenticità in autonomia.

Possiamo immaginarlo come un gigantesco file Excel condiviso con tutto il mondo, organizzato all’incirca in questo modo:

DataChiDettagli
10/04/2021 ore 20:03MarioHa regalato 10€ a Giorgio
10/04/2021 ore 20:07GiorgioHa acquistato una casa da Giovanni al prezzo di 200.000€

 

La caratteristica chiave di questo registro è l’immutabilità. Infatti, una volta che una transazione è stata scritta, non è più possibile modificarla a meno di invalidare l’intero registro.

Per raggiungere questo obiettivo, la blockchain è strutturata in un modo molto particolare, ovvero come una catena.

 

2. Catena di Blocchi

Immaginiamo che nella nostra blockchain avvengano di continuo transazioni da tutto il mondo. Quelle transazioni che avvengono in un breve lasso di tempo vengono raccolte in gruppi detti blocchi. Quando un nuovo blocco viene generato, questo viene “agganciato” al precedente via via a formare una lunga catena di blocchi. Da qui, appunto, il termine “Block-Chain”. La catena così creata va a formare il nostro registro di transazioni e scorrendo dal primo all’ultimo blocco sarà possibile consultare l’intera storia delle transazioni eseguite sino a quel momento.

Quindi, i blocchi sono collegati l’uno con l’altro in modo sequenziale. Ma come, esattamente? Alla creazione di un nuovo blocco, viene generato un codice identificativo tramite una speciale funzione detta di hash. Possiamo immaginare questo codice come una sorta di impronta digitale del blocco, o se vogliamo il suo DNA.

A cosa serve questo codice? Semplice! Quando un nuovo blocco viene creato, al suo interno viene salvata l’“impronta digitale” del blocco precedente. Così facendo ogni blocco della catena conosce con certezza quale blocco lo precede.

Se qualcuno provasse a falsificare o manomettere un blocco sostituendolo con un altro, chiunque potrebbe accorgersene in quanto la sua “impronta digitale” non corrisponderebbe più a quella salvata nel blocco successivo! (e così via a cascata). Per dirlo in altro modo, se qualcuno tentasse di falsificare le transazioni avvenute, magari a suo vantaggio, si troverebbe che nessun altro utente della rete accetterebbe la sua versione dei fatti, in quanto la manomissione andrebbe a “rompere” la catena.

 

 

3. Miner

Se ti sei già avvicinato al concetto di blockchain in precedenza, avrai sicuramente sentito parlare di mining e ti sarà sembrato un nome curioso. Proviamo a capire assieme chi sono questi loschi figuri e perché sono così importanti!

Abbiamo detto prima che le transazioni vengono raggruppate in blocchi e aggiunte alla catena, ma questo processo non è automatico. Ogni volta che una transazione viene eseguita, essa viene condivisa con tutti i partecipanti della rete ma, non essendo ancora verificata, rimane in attesa di essere inserita in un blocco. Chi è che si occupa di eseguire questa operazione e verificare che non ci siano anomalie?

Sono appunto i miner, ovvero utenti della rete che mettono a disposizione il proprio computer per eseguire dei calcoli che servono ad autenticare le transazioni pendenti. Più nello specifico, il compito di un miner è scegliere un gruppo di transazioni da validare e provare a raggrupparle in un blocco. Dico “provare” perché in realtà saranno in gara con gli altri miner che tenteranno di fare lo stesso. Il primo a completare il calcolo si “aggiudicherà” il blocco e lo aggiungerà alla catena. Infatti, creare un blocco non è un semplice lavoro di raggruppamento, ma richiede che il miner esegua un complesso calcolo matematico che serve a garantire che il blocco sia valido.

Il risultato di questo calcolo è detto Proof of Work (prova del lavoro) e chiunque può utilizzare questo risultato per verificare che blocco sia valido.

Per come è strutturato il calcolo, esso ha un tempo di risoluzione non-predeterminato. Potrebbero volerci pochi attimi come diversi minuti, perché è sostanzialmente basato su prove ed errori (ovvero sul caso). Questo fa in modo che due miner non possano generare due blocchi validi nello stesso momento (o per lo meno sia molto molto raro).

 

4. Gas

Abbiamo detto che i miner garantiscono che la catena di blocchi sia sequenziale e valida, mettendo a disposizione il suo duro lavoro (la sua potenza di calcolo) e di conseguenza la corrente elettrica necessaria ad eseguirlo. La domanda che potresti porti a questo punto è: perché un utente della rete dovrebbe voler diventare un miner? Cosa gliene viene in tasca?

Semplice! Quando un utente vuole eseguire una transazione (es: vuole mandare dei soldi ad un amico), deve mettere in palio una piccola somma di denaro che verrà data al miner che riuscirà ad aggiudicarsi il blocco che contiene quella transazione (ovvero a risolvere il calcolo per primo).

Questa ricompensa è detta gas, ed è sostanzialmente il “carburante” con cui la rete blockchain funziona (da qui il nome).

Tanto più gas metteremo in palio come ricompensa, tanto più incentiveremo i miner a convalidarla. Al contrario, mettendo poco gas in palio si finirà in coda alle preferenze dei miner, che sceglieranno di gestire con priorità maggiore transazioni più redditizie. Per questa ragione il gas in palio per una transazione è associato alla velocità con cui si vuole eseguire una transazione.

Ad esempio, non è necessario mettere sul tavolo molto gas se si vuole inviare soldi ad un amico. Al contrario se si sta partecipando a un’asta, la velocità di esecuzione della transazione potrebbe determinare la possibilità di aggiudicarsi il lotto, quindi potremmo voler spendere più gas.

Questo meccanismo di validazione dei blocchi è sicuro e in funzione da ormai più di un decennio, ma presenta alcuni problemi. Visto che i miner consumano corrente per eseguire i calcoli e si trovano a competere tra loro per aggiudicarsi il gas, questo porta a due principali svantaggi:

  • essendo il calcolo complesso e di durata casuale, esiste un limite a quante transazioni al secondo possono essere processate da una rete blockchain;
  • tutta l’energia elettrica spesa dai miner che non si aggiudicano il blocco viene “sprecata”, e questo ha un impatto ambientale non indifferente.

Inoltre, paradossalmente, tanti più miner ci sono, tanto più questo problema si aggrava! Nel tempo questo ha fatto crescere sempre più i costi del gas richiesti dai miner per compensare il loro investimento, portando ad un circolo vizioso.

Per ovviare a questo problema, è stato proposto da Ethereum un approccio alternativo al Proof of Work, detto Proof of Stake, che potrebbe risolvere il problema, ma è ancora in via di collaudo. Spiegato in due parole, i miner (ora detti “staker”) smettono di competere tra loro e solo uno di loro viene scelto a sorte per creare un blocco. Per garantire che lui esegua l’operazione in modo onesto, è costretto a mettere sul piatto una “puntata”, come a poker (in inglese Stake, appunto). Se gli altri staker trovano delle irregolarità nel suo lavoro, potranno “sequestrare” la puntata messa in palio, e questo fa da deterrente ad irregolarità.

 

5. Criptovalute

Ti starai chiedendo: ok, interessante, ma cosa c’entra tutto questo con le criptovalute? Semplice! Il primissimo caso d’uso per cui è stata utilizzata la tecnologia della blockchain è proprio il Bitcoin, ovvero la prima criptovaluta.

Ideato nel 2009 dal tutt’ora ignoto Satoshi Nakamoto, Bitcoin getta le basi della tecnologia blockchain e nasce come un approccio decentralizzato alla finanza, in cui gli utenti possono scambiarsi liberamente denaro in modo sicuro e senza dipendere da banche o istituti di pagamento. Il Bitcoin è il nome della valuta virtuale che gli utenti si possono scambiare.

Il “registro immutabile” della blockchain “Bitcoin” tiene traccia di tutte le transazioni eseguite dagli utenti e garantisce l’autenticità delle transazioni. La domanda più ovvia è: chi dà valore a questa valuta? La risposta è “nessuno”, o meglio, “noi”, esattamente come vale per l’euro, il dollaro o qualsiasi altra valuta. Nel momento in cui qualcuno è disposto a scambiare beni e servizi in cambio di Bitcoin, di fatto decide valore alla criptovaluta. Ad esempio partendo da pochi centesimi di dollaro alla sua creazione, il tasso di cambio Dollari-Bitcoin è arrivata a sfiorare i 60mila dollari per un singolo Bitcoin.

Uno dei concetti chiave nelle criptovalute (e in generale nella blockchain) è il concetto di wallet, ovvero il “portafoglio” virtuale di ciascun utente, a cui è associato il suo saldo disponibile in Bitcoin.

Un wallet è formato da una coppia di codici:

  • uno pubblico, che fa “IBAN”, ovvero da codice da usare per ricevere denaro;
  • uno privato, che è come se fosse la “password segreta” per accedere al proprio conto bancario, usata per inviare denaro.

Il codice pubblico (detto chiave pubblica) del wallet viene usato nella blockchain come una sorta di carta di identità dell’utente, in quanto ogni transazione che effettuerà conterrà al suo interno proprio questa chiave, per identificarlo.

Come dicevamo all’inizio, però, blockchain e criptovalute non sono la stessa cosa. La blockchain è una tecnologia, uno standard, un set di regole condivise per certificare delle transazioni, ma la natura e il contenuto di queste transazioni può essere applicato in contesti molto diversi tra loro. Mantenendo i concetti base invariati (i blocchi, le transazioni, il Proof of Work e il gas), esistono centinaia di blockchain oltre a Bitcoin dai più disparati utilizzi. Ad esempio, esistono blockchain in cui le transazioni sono “like” lasciati dagli utenti ai post di una rete sociale. O rappresentano la puntata ad un’asta digitale. O ancora, i lavori di manutenzione effettuati sulla propria automobile.

Un’altra blockchain molto nota e particolarmente interessante da nominare da questo punto di vista è Ethereum. Al contrario di Bitcoin, i creatori di Ethereum hanno fatto in modo di lasciare libertà di poter salvare sulla propria blockchain “qualsiasi cosa”, col solo limite di quanto gas si è disposti a spendere per farlo. Questo è reso possibile un meccanismo di Ethereum detta smart contract… che è il nostro ultimo concetto.

 

 

6. Smart contract

Uno smart contract è sostanzialmente un software che viene codificato e scritto come “transazione” sulla rete di Ethereum e le cui funzionalità sono utilizzabili liberamente da chiunque. Come ogni altra transazione, gli smart contract sono verificabili da chiunque sulla rete.

Questi smart contract, come una normale applicazione, possono implementare le più svariate funzionalità, tra cui la possibilità, a loro volta, di salvare dati come “transazioni” sulla rete blockchain. Questo permette ai programmatori (e non solo!) libertà creativa sull’utilizzo della tecnologia blockchain. Inoltre gli smart contract creati da persone diverse possono interagire tra loro per espandere ulteriormente le loro possibilità.

I software sviluppati tramite smart contract sono detti DApps (che sta per Distributed Apps, ovvero applicazioni distribuite). Esistono numerosi esempi di DApps su Ethereum, da sistemi di asta online, a videogiochi, e-commerce, sistemi di voto elettronico, meccanismi di controlli di filiera e fino ad arrivare al vero e proprio “fenomeno del momento”: gli NFT (Non-Fungible Token), di cui parliamo in questo articolo.

Le DApps hanno numerosi vantaggi rispetto alle applicazioni tradizionali:

  • le azioni e i dati processati dal software vengono salvati in modo immutabile nella blockchain e chiunque può verificarne l’esito;
  • chiunque può verificare il comportamento del software e non rischia comportamenti inaspettati o malevoli;
  • non può andare “offline”, a meno che tutta la rete Ethereum non sia offline (e si tratta di milioni di utenti);
  • è resistente alla censura: un governo o ente terzo non può imporre di rimuovere un contenuto su una rete distribuita su milioni di dispositivi, ma può farlo verso una singola azienda (es: twitter / facebook / google / ecc… );
  • è resistente alla modifica da parte degli autori: una volta pubblicata, una DApp è immutabile, come ogni altro elemento della blockchain;
  • è estremamente semplice gestire i pagamenti all’interno di una DApp, in quanto è basata su Ethereum che è di fatto una criptovaluta.

Ma hanno anche alcuni limiti, come la velocità di esecuzione delle transazioni ma anche la quantità di dati memorizzabili sulla blockchain. Infatti, cercando di salvare sulla blockchain un contenuto complesso (come ad esempio un video o una fotografia) si rischierebbe di incorrere in costi di gas proibitivi e a tempi di lavorazione altrettanto ingestibili. Per questo motivo spesso le DApps usano un approccio ibrido, salvando i dati chiave “on-chain” (ovvero sulla blockchain vera e propria) e il resto dei dati “off-chain” (ovvero fuori dalla blockchain, tramite meccanismi tradizionali, come database, storage web e altro).

 

Tutto chiaro?

La blockchain presenta ancora alcune sfide da risolvere, dai costi del gas all’efficienza della rete. Nonostante questo, presenta numerosi punti di interesse: trasparenza delle operazioni, mancanza di intermediari, affidabilità e sicurezza, sono solo una parte dei vantaggi che stanno contribuendo alla diffusione e alla graduale introduzione della tecnologia blockchain nelle nostre vite.

Ora che ti è tutto più chiaro, cosa ne pensi?