– Tempo di lettura: 12 minuti –
Ciao, benvenuto/a in questo nuovo articolo. Se sei qui è perché spesso ti capita di sentir parlare di Bitcoin e vuoi approfondire l’argomento cercando di capire cos’è e come funziona. Bene, oggi cercherò di spiegartelo nel modo più semplice possibile.
Inizierò cercando di rispondere alla domanda:
Cos’è Bitcoin?
L’idea di Bitcoin (BTC) nasce nel lontano 2008 quando, in un documento intitolato “Bitcoin: A Peer-to-Peer Electronic Cash System”, una persona o un gruppo di persone che utilizzavano lo pseudonimo di “Satoshi Nakamoto” introdusse un sistema di pagamento digitale basato sulla crittografia. Il concetto fondante era quello della decentralizzazione: si voleva creare un ambiente in cui nessuna “terza parte” avesse pieno controllo sulle transazioni effettuate. Tipicamente, nei sistemi di pagamento tradizionali, questa “terza parte” è una banca: l’utente affida il proprio denaro a quest’ultima che si occupa di custodirlo e di controllare tutte le transazioni che lo coinvolgono. Purtroppo, la supervisione delle banche rende le transazioni internazionali molto lente, alcune possono richiedere anche diversi giorni e ciò può essere un problema nel mondo odierno dove tutto corre. Con Bitcoin, invece, è possibile inviare valuta senza alcun intermediario. Se le banche chiudono nel fine settimana, Bitcoin è sempre operativo (24 ore su 24, 7 giorni su 7) e permette di scambiare in pochi minuti una qualunque cifra di denaro verso qualunque altra parte del mondo, spesso con commissioni anche più convenienti di quelle bancarie. In questo caso, non c’è nessun ente esterno ad avere il potere e la gestione della moneta è affidata direttamente all’utilizzatore che ne ha il pieno controllo. Possiamo vedere questo sistema come un’alternativa digitale al denaro contante: tutti manteniamo i nostri soldi nel portafoglio e, a meno di furti e casi particolari, siamo solo noi a decidere quando darli ad un’altra persona. Ovviamente, avere il pieno controllo implica anche avere una certa responsabilità. Infatti, se possiedi dei Bitcoin, dovrai essere tu ad occuparti di custodirli in un modo sicuro. Inoltre, non essendoci nessuna autorità garante a supervisionare le transazioni, non sarà possibile effettuare alcuna alterazione delle operazioni effettuate. Se invierai Bitcoin ad un’altra persona, non ci sarà nessuno a garantirti un rimborso in caso errore/truffa. In altre parole, una volta inviata una quantità di Bitcoin a qualcun altro, non sarà possibile invertire la transazione e, in caso di errori, il valore scambiato andrà completamente perso. Tocca aggiungere che il valore di Bitcoin viene regolato dalla domanda e dall’offerta del mercato e, proprio per questo, può essere molto instabile.
Bitcoin non è l’unico nel suo genere ma, al contrario, è il capostipite di tutta una serie di monete digitali chiamate criptovalute. Così come queste ultime, esso non è legato a nessuno Stato e per poterlo utilizzare basta una semplice connessione ad internet. Ciò lo rende accessibile ad una vasta gamma di utenti, indipendentemente dalla loro posizione geografica, dalla classe sociale, dal background finanziario e dalla disponibilità di servizi bancari tradizionali.
Ora che hai un’idea generale riguardo Bitcoin, cerchiamo di capire meglio il suo meccanismo. Abbiamo detto che non c’è alcuna banca o istituzione che lo controlla ma allora
Come fa Bitcoin a funzionare?
Il dubbio è lecito: supponiamo che la nostra amica Alice debba inviare 1 BTC al suo amico Bob, chi registra questa transazione? Chi si occupa di verificarne la validità?
Devi sapere che Bitcoin funziona grazie ad una grossa rete di computer (li chiameremo nodi) che si occupano di registrare e verificare le transazioni. Come già anticipato, tale rete è completamente decentralizzata: non c’è nessuno che comanda e chiunque può, da un giorno all’altro, inserirsi e partecipare aggiungendo il proprio nodo. Questi computer lavorano insieme per mantenere un grosso libro contabile, una sorta di registro per tutte le transazioni effettuate del quale tutti mantengono una copia. Questo registro non è il classico documento che potresti aspettarti ma ha una struttura particolare: è costruito sotto forma di una catena di blocchi che prende il nome di blockchain. Ogni blocco di questa catena non è altro che un contenitore all’interno del quale si trovano una serie di informazioni tra cui proprio le transazioni effettuate dagli utenti. Ogni blocco è collegato con il precedente della catena grazie ad un valore chiamato hash.
Cos’è un hash?
Un hash è un valore univoco che funge da “impronta digitale” di un particolare insieme di dati e che può essere calcolato usando una particolare funzione detta funzione di hash. Per fare un esempio pratico, dimentichiamoci un attimo di Bitcoin e supponiamo che il nostro insieme di dati sia una semplice foto. L’hash di una foto sarà un valore simile a questo:
“0b7e34a8cbbdd711fcc2139e2243619515b54451”
Questo valore, come già anticipato, puoi immaginarlo semplicemente come un identificativo di tale foto. Infatti, riguardo una funzione hash valgono le seguenti proprietà:
- Ogni volta che viene applicata allo stesso input, si otterrà sempre lo stesso output. Ciò significa banalmente che se calcolassi più volte l’hash della nostra foto otterrei sempre lo stesso valore “0b7e34a8cbbdd…”.
- Genera un output univoco per ogni input. Ciò significa che se applicassimo la funzione hash su due foto diverse, non potremmo ottenere lo stesso valore.
- Una piccola variazione nell’input deve generare una grande variazione nell’output. Dunque gli hash di due foto, differenti anche solo di un piccolo pixel, saranno sempre completamente diversi.
- E’ difficile da invertire. Ciò significa che se “0b7e34a8cbbdd…” è l’hash della foto, nessuno sarà in grado di ricostruire completamente quest’ultima avendo come informazione di partenza solo l’hash.
- E’ semplice da calcolare. Ciò vuol dire che, partendo dalla nostra foto, un computer può ottenere l’hash “0b7e34a8cbbdd…” in maniera veloce.
Queste proprietà ovviamente non valgono solo per le foto. Per introdurti il concetto, ho preferito utilizzare un oggetto che tutti conoscono ma, come ti avevo già anticipato, un hash si può calcolare su un qualunque insieme di dati: un numero, una stringa, un video, un file e così via.
Ora che hai un’idea di cos’è un hash, torniamo a Bitcoin. Avevamo detto che è proprio questo hash a definire la catena e mantenere collegati tutti i vari blocchi, infatti, tra le tante informazioni contenute in un blocco ci sarà proprio l’hash del blocco precedente. In questo modo, si costruisce una catena immutabile, infatti, se ci ragioniamo un attimo, le proprietà degli hash che abbiamo visto poc’anzi rendono estremamente difficile modificare un blocco senza modificare l’intera catena. Facciamo un esempio pratico, supponiamo di avere una catena costruita in questo modo:
Se modificassi il blocco Z, anche solo con una modifica minuscola, per le proprietà viste prima cambierebbe completamente il suo hash e ciò romperebbe il collegamento che c’era con il blocco X. Il blocco X, infatti, continuerebbe ad avere l’hash del blocco Z calcolato all’inizio, ovvero quando Z non era stato ancora modificato. Per cambiare con successo Z, dunque, bisognerebbe correggere anche il campo HASH(Z) del blocco X ma questa modifica su X avrebbe ripercussioni su HASH(X) rompendo il collegamento che c’era con il blocco Y. Tale ragionamento si può iterare per tutti i blocchi della catena prima di Y. In altre parole, grazie alle proprietà dell’hash, una volta registrato un nuovo blocco nella blockchain, sarà praticamente impossibile modificarlo e, di conseguenza, alterare la storia delle transazioni. Certo, teoricamente un attaccante potrebbe provare a modificare tutti gli hash in catena, dal blocco Z fino al primo blocco prodotto, ma ciò risulterebbe essere praticamente impossibile. Infatti, per far ciò l’attaccante dovrebbe avere il controllo su tutti i nodi della rete e modificare la loro copia della blockchain, inutile dire che è un’impresa ardua. Un’alternativa per l’attaccante sarebbe quella costruire una sua nuova catena di blocchi e cercare di convincere gli altri nodi che quest’ultima è la catena principale ma anche questo è estremamente difficile poiché Bitcoin utilizza il meccanismo della Proof-of-Work(PoW).
Cos’è la PoW?
Fino ad ora abbiamo detto che chiunque può partecipare alla rete di computer che gestisce Bitcoin ma, effettivamente, questo significa che anche dei malintenzionati potrebbero farlo. Chi ci assicura, dunque, che chi possiede un nodo si comporti sempre in maniera onesta? Qui entra in gioco la Proof of Work. L’idea dietro la PoW è quella di creare un meccanismo che renda sconveniente a chiunque comportarsi in maniera disonesta. Infatti, ogni nodo per aggiungere un blocco alla blockchain dovrà fornire la prova di aver effettuato un lavoro, un lavoro abbastanza oneroso. Ovviamente non si può imbrogliare: prima che un nodo possa aggiungere un qualunque blocco alla blockchain, tutte le transazioni in esso contenute, assieme alla PoW, dovranno essere verificate da tutti gli altri nodi della rete. Nel caso specifico di Bitcoin la PoW corrisponde al calcolo di un nonce, ossia un valore tale che calcolando l’hash di [blocco + nonce] si abbia un risultato con un numero abbastanza elevato di zeri all’inizio, ad esempio:
“0000000000000000000480a1b4cd8936290f395abedc5957967d6252218b5cfd”
Matematicamente è complicato trovare un valore del genere, proprio per questo i vari nodi devono fare molti calcoli e spendere molta energia elettrica prima di poter aggiungere un blocco alla blockchain. Spendere molta energia significa spendere denaro e, dunque, ad un nodo malizioso non converrebbe più cercare di inserire transazioni disoneste in un blocco. Infatti, supponendo che un attaccante riesca anche a calcolare la PoW, quando il blocco prodotto sarà controllato dai restanti nodi della rete esso sarà scartato e l’attaccante avrà solo consumato energia inutilmente. A questo punto ti starai chiedendo: non diventa sconveniente anche per i nodi onesti? Non esattamente. Effettivamente la rete di Bitcoin prevede dei premi per i nodi che partecipano in modo onesto: quando un nodo genera un nuovo blocco valido, che supera tutti i controlli, riceverà un certo numero di Bitcoin come ricompensa per il lavoro svolto. Questi Bitcoin saranno creati al momento ed aggiunti alla quantità di criptovaluta in circolazione. Bisogna sottolineare che Bitcoin è un bene scarso e che la quantità massima di Bitcoin che potranno mai essere creati con questo meccanismo è di 21 milioni. Proprio per questo la ricompensa data ai nodi onesti si dimezza ogni 210.000 blocchi con un evento che prende il nome di Halving. Questo meccanismo è stato progettato per limitare l’offerta di Bitcoin e controllarne l’inflazione. Riducendo la quantità di nuovi BTC che vengono generati ad ogni blocco creato, rallenta il tasso di emissione di nuovi Bitcoin. Questo rallentamento aiuta a mantenere la scarsità della criptovaluta e a garantire che il suo valore non diminuisca nel tempo. Attenzione, non sto dicendo che in futuro, grazie a questo meccanismo, il prezzo di Bitcoin salirà sicuramente. Il prezzo di Bitcoin dipende da molti altri fattori e nessuno può effettuare previsioni certe. Ciò che intendevo è che, se l’emissione di nuovi Bitcoin fosse illimitata, ce ne sarebbe una quantità sempre crescente in circolazione, il che porterebbe ad una svalutazione della valuta nel lungo termine.
Mettiamo un po’ di ordine
Fino ad ora ti ho introdotto un sacco di concetti, adesso cerchiamo di sfruttarli per mettere un po’ di ordine riguardo ciò che avviene quando si invia una transazione con Bitcoin. Torniamo all’esempio di Alice e Bob, per inviare 1 BTC Alice dovrà creare una transazione destinata a Bob e inviarla a tutti i nodi sulla rete. Ogni nodo, indipendentemente dagli altri, prenderà la transazione di Alice, controllerà se è valida e, raccogliendola assieme ad altre transazioni inviate da altri utenti, formerà un nuovo blocco. Per pubblicare tale blocco il nodo dovrà fornire la prova di aver effettuato un lavoro, inizierà a calcolare dunque la PoW. Si creerà a questo punto una vera e propria competizione tra i nodi: chi calcolerà per primo la PoW potrà richiedere l’inserimento del nuovo blocco in blockchain. Dopo aver calcolato la PoW, infatti, il blocco dovrà essere spedito agli altri nodi della rete che si occuperanno di validarlo. Questi altri nodi dovranno dunque occuparsi di controllare che tutte le transazioni inserite nel blocco siano oneste, non siano relative ad un bene già speso e che la PoW sia valida, solo in quel caso decideranno di aggiungerlo alla blockchain. Alla fine, il nodo che avrà prodotto per primo il blocco riceverà la sua ricompensa e sarà pronto per validare nuove transazioni.
Privacy in Bitcoin
Prima di concludere vorrei parlarti della privacy in Bitcoin, argomento abbastanza delicato e che spesso non viene capito a fondo da chi si approccia per la prima volta a questo mondo. Molti credono che Bitcoin sia completamente anonimo e che le transazioni non possano essere rintracciate, in questo c’è un fondo di verità ma bisogna comunque contestualizzare. Non l’ho sottolineato prima di adesso, forse lo avevi intuito, ma tutte le transazioni che vengono effettuate sulla rete Bitcoin sono pubbliche. Chiunque può osservare i trasferimenti fatti, i blocchi creati e tutte le informazioni corrispondenti semplicemente sfruttando un block explorer. Tutte queste informazioni contenute nella blockchain di Bitcoin sono pseudonime e non associate direttamente all’identità degli utenti. Gli indirizzi Bitcoin e le transazioni, infatti, non forniscono alcuna informazione sul nome o l’identità dell’utente che ha effettuato la transazione. Quindi sì, osservando puramente le informazioni pubbliche che ci sono in blockchain non è possibile sapere nulla su chi sta eseguendo quelle transazioni ma, nel momento in cui qualcuno riuscisse a scoprire che il tuo indirizzo Bitcoin è associato a te, potrebbe sfruttare un qualunque block explorer per avere informazione su tutti i trasferimenti che hai fatto e che farai associati a tale indirizzo. Quindi fa attenzione a chi dai il tuo indirizzo Bitcoin, ti consiglio di pensarci due volte prima di condividerlo con chiunque altro.
Per oggi è tutto, spero di averti fatto capire come funziona Bitcoin in generale, se l’argomento ti interessa, ricorda di ritornare su questo blog perché in futuro ho intenzione di approfondire l’argomento con altri articoli e parlare anche di alcune altre criptovalute interessanti. Grazie per aver letto fino a qui, un saluto!