Come funziona Bitcoin

Introduzione a Bitcoin
Venerdì, 30 Aprile 2021 11:17

Come funziona Bitcoin?

Scritto da

Bitcoin è ad un tempo una rete, un protocollo e una moneta digitale.

Se vogliamo definire Bitcoin in funzione della sua applicazione finale, possiamo dire che Bitcoin è una moneta digitale.

Bitcoin però è anche una rete, composta da nodi: un nodo della rete Bitcoin è un qualunque dispositivo sul quale sia installato l’insieme di software che costituiscono il protocollo Bitcoin.

Per comprendere come funziona Bitcoin e la sua portata innovativa è utile iniziare col definire brevemente alcuni concetti relativi alla moneta in generale.



Che cos'è la moneta

La moneta è un mezzo che consente il trasferimento del valore e si basa su una astrazione: ogni moneta rappresenta una unità (o frazione) di valore.

Il possesso di una moneta da’ diritto ad una contropartita in caso di scambio.

La moneta dunque rende il commercio più pratico di quanto non sia stato prima della sua invenzione. Si pensi al baratto: lo scambio poteva avvenire solo tra cose di pari valore, non facilmente trasportabili e il cui valore non era frazionabile.

Affinché la moneta possa effettivamente assolvere alla sua funzione, consentendo al possessore di ottenere qualcosa in cambio, c'è bisogno di:

  • una convenzione tra tutti coloro che intendono servirsene per i loro scambi reciproci;
  • un qualche valore oggettivo della moneta, che non si risolva nella mera convenzione di cui sopra: tale valore è dato dalla scarsità. Se una moneta è scarsa, assolve ad un’altra importante funzione: diventa riserva di valore. Mantiene il suo valore nel tempo.

Le due condizioni appena elencate sono state storicamente soddisfatte attraverso:

  • l’uso di materiali rari in natura come moneta, come l’oro: per quanto se ne possa continuare a trovare in natura, la quantità scoperta non è mai ingente al punto da far deprezzare quella già in circolazione.
  • Una qualche autorità a cui viene attribuito il monopolio della stampa della moneta: da questa autorità ci si aspetta che abbia ben presente che la decisione relativa a quanta moneta produrre e mettere in circolazione è molto delicata: il Re Mida non fece una bella fine.

Dal carattere necessariamente limitato che la moneta deve avere, discende l’esigenza di preservarne la “rarità”: con o senza una autorità centrale, non deve essere possibile o consentito a ciascuno di autoprodursi la moneta.

Come vedremo in seguito, una moneta che diventi “poco rara” perde il suo valore e dunque la sua attrattiva presso le persone che la utilizzano.

Bitcoin come moneta innovativa

La portata innovativa di Bitcoin sta in ciò: viene rimossa la necessità di una autorità centrale con il compito di emettere la moneta.

L’emissione della moneta bitcoin è predeterminata e procede autonomamente in applicazione di regole tecniche.

La moneta bitcoin è dunque:

  • decentralizzata : manca una autorità centrale che decida e provveda in merito alla sua emissione.
  • dematerializzata: manca alcun supporto fisico. Un bitcoin esiste solo in formato digitale.

Bitcoin rende possibile tutto ciò riproducendo artificialmente la scarsità necessaria a qualunque cosa voglia usarsi come moneta, senza dover ricorrere all’opera di una autorità centrale.

Come funziona Bitcoin

Possiamo pensare a Bitcoin come ad un registro su cui vengono annotati dei crediti e la circolazione degli stessi tra diversi titolari. Tali crediti vengono espressi in bitcoin.

Fondamentale è l'immutabilità di tale registro: la possibilità che qualcuno possa autonomamente modificare il registro ed auto-attribuirsi crediti, ossia bitcoin, minerebbe la programmata scarsità di Bitcoin analogamente a quanto avverrebbe ove qualcuno stampasse delle banconote in proprio in un sistema monetario "tradizionale".

Di seguito andiamo ad esaminare alcuni aspetti fondamentali per la comprensione di Bitcoin e del suo funzionamento.



La blockchain: un registro inalterabile

Abbiamo introdotto Bitcoin paragonandolo ad un registro: in realtà, il registro è una singola componente di Bitcoin, nota come blockchain.

Bitcoin è allo stesso tempo il registro e l’insieme delle regole che consentono di scrivere su tale registro, preservandone poi l’immutabilità.

La blockchain è un registro dalle forme di una catena di blocchi ordinati in sequenza e “agganciati l’uno all’altro”: proprio come una catena.

Ogni blocco è composto da transazioni, e queste documentano la circolazione di bitcoin. Tenendo traccia dei movimenti di bitcoin tra I vari “titolari” (vedremo in seguito chi sono questi titolari e su cosa si fonda la titolarità di somme di bitcoin), la blockchain consente di ricavare per ogni “titolare” un saldo.

Se la titolarità di bitcoin dipende esclusivamente da quanto “annotato” sulla blockchain, è cruciale che questa sia inalterabile.

Per spiegare come questo sia possibile è necessario illustrare come avviene la scrittura sulla blockchain: come viene aggiunto un blocco alla catena.

Il mining

La blockchain è unica per tutti i partecipanti alla rete di Bitcoin. Se il registro è unico, devono esserlo anche le regole che consentono di scrivere su tale registro.

La scrittura sul registro consiste nella aggiunta di un blocco alla catena. Tale opera viene eseguita da nodi chiamati miner: questi si occupano di:

  1. selezionare le transazioni in attesa di essere processate; le transazioni dovranno essere correttamente formate e in possesso di alcuni requisiti: diversamente, il blocco che le contiene verrà rifiutato dagli altri nodi e non verrà aggiunto alla blockchain.
  2. includerle in un blocco;
  3. aggiungere il blocco alla blockchain.

Tra i miner si instaura una competizione volta a determinare chi tra questi aggiungerà il proprio blocco alla catena.

A tal fine, i miner devono impiegare la propria potenza di calcolo, e relativa energia elettrica, per la risoluzione di un problema matematico: chi avrà trovato la soluzione per primo aggiungerà il proprio blocco.

Cosa guadagna il miner dall’aggiunta del proprio blocco?

  • bitcoin di nuova emissione;
  • una commissione, variabile, per ogni transazione inclusa nel blocco. Ogni transazione infatti paga una commissione e per massimizzare il profitto da ogni blocco i miner tendono a dare la precedenza alle transazioni che pagano una commissione più alta.

L’attività di mining ha dunque 2 finalità:

  1. selezionare e processare le transazioni valide, includendole in un blocco da aggiungere alla blockchain;
  2. emissione di nuovi bitcoin.

Tale sistema è noto come Proof of Work. L’aver trovato la soluzione implica l’aver compiuto un certo lavoro e impiegato proprie risorse per garantire il funzionamento della rete.

Il miner viene così incentivato a partecipare attenendosi alle regole: in premio riceve bitcoin di nuova emissione.

Se invece prova a “fare il furbo”, finisce per aver sprecato le proprie risorse dal momento che il suo blocco non verrà accettato e non riceverà alcuna ricompensa.

Cerchiamo di capire come funziona il mining secondo il sistema Proof of Work con Bitcoin; per farlo, dobbiamo introdurre il concetto di hash.

L'algoritmo di hash

La caratteristica di un buon algoritmo di hash è quella di tradurre un input (testo, numeri etc) in un codice alfanumerico, detto hash, in maniera che:

  • è possibile provare la relazione tra l’hash e l’input che lo ha generato: un certo input produrrà sempre lo stesso hash (usando lo stesso algoritmo)
  • al minimo variare dell’input cambia in maniera imprevedibile anche l’hash.
  • non è possibile risalire dall'hash all'input che lo ha generato.

Vi sono vari algoritmi di hash: Bitcoin utilizza l'algoritmo sha-256

Facciamo un esempio:

ciao SHA-256 b133a0c0e9bee3be20163d2ad31d6248db292aa6dcb1ee087a2aa50e0fc75ae2

ciao1 SHA-256 01b2537e787bff61e4518927faee16cfc71f2240bd82fd891c22c7ca9e81b58e

ciao2 SHA-256 21d19e923ae21043fa5810704eab55bda682dc9e036bbf4c50eb732febdff835

ciao3 SHA-256 515275bec0133f4f082f03c3ca0f0f6f44ffdd312b62c1ba930abe6594b98553

Ad una minima modifica dell'input, l'aggiunta di "1" alla parola "ciao", produce un hash completamente diverso e che non possiamo prevedere.

Chiunque può controllare che l'hash della parola "ciao" sia effettivamente quello indicato; potete trovare online vari strumenti che vi consentiranno di calcolare hash. Ricordate però che algoritmi diversi producono hash diversi. Noi abbiamo usato l'algoritmo sha-256.

Disponendo solo dell'hash e dell'algoritmo non è però possibile risalire alla parola che l'ha generato.

Proof of work

Il problema che i miner devono risolvere per aggiugere il loro blocco e guadagnarsi nuovi bitcoin consiste nel trovare l’input che produca un hash che soddisfi una condizione: viene definito un target, un obiettivo.

Il miner dovrà trovare un hash che, espresso in termini numerici, rappresenti un numero inferiore a quello definito come target. Più basso sarà il target, più difficile sarà trovare un input che generi un numero ad esso inferiore.

Pertanto, il target individua il ventaglio di possibili soluzioni, che può essere più o meno ampio.

La soluzione può essere trovata solo calcolando hash a ripetizione fino a trovare l’input che produca un hash nel range individuato dal target.

Di seguito illustriamo brevemente come procede la ricerca.

Ogni blocco viene strutturato includendo dei dati all’interno di una “sezione” del blocco chiamata “header”: questo verrà utilizzato come input per l’algoritmo di hash fin quando non produrrà un hash inferiore al target.

Se l’input rimane sempre lo stesso però, l’hash sarà sempre uguale: per produrre un hash diverso ad ogni calcolo all’header viene aggiunto un numero progressivo, detto “nonce”.

Si consideri il nostro esempio fatto poc'anzi: abbiamo preso la parola "ciao" e vi abbiamo aggiunto 1, poi 2; i miner dovranno trovare il numero che, insieme all'header, produrrà un hash inferiore al target.

L’oggetto della ricerca è dunque il “nonce”, il numero che aggiunto all’header consente di produrre un hash che rientri nel range individuato dal target.

Una volta trovato (anche il nonce verrà indicato nell’header del blocco “vittorioso” aggiunto alla blockchain), chiunque potrà verificare che l’header con quel nonce produce l'hash inferiore a quello indicato dal target.

Difficoltà

Il target cambia, e con esso la difficoltà nel centrarlo, in maniera da consentire l’aggiunta di un nuovo blocco ogni 10 minuti: lo sforzo congiunto di tutti i miner deve portare alla soluzione entro 10 minuti dall’aggiunta alla blockchain del blocco precedente.

Pertanto: ogni 10 minuti viene aggiunto un blocco e vengono emessi nuovi bitcoin a favore del miner “vittorioso”.

Questo vuol dire che maggiore sarà la potenza di calcolo impiegata complessivamente dalla rete di miner (hash power) quanto più difficile verrà reso il target da raggiungere: se la difficoltà rimanesse invariata, l’aumento della potenza di calcolo dovuto al progresso tecnologico e all’aumento dei miner che partecipano alla competizione porterebbe a trovare la soluzione in sempre minor tempo. Se invece i miner diminuiscono, la difficoltà viene gradualmente ridotta.

Questi aggiustamenti della difficoltà avvengono ogni 2016 blocchi: se la media per i precedenti 2016 blocchi è stata di 10 minuti per blocco, e dunque un totale di 20160 minuti, ossia 2 settimane, la difficoltà rimane invariata; diversamente, la difficoltà viene aumentata o diminuita con piccoli, graduali aggiustamenti.

Il successo di Bitcoin e l'aumento del suo valore ha portato alla crescita del numero dei miner e alla crescita esponenziale dell'hash power, ossia della potenza di calcolo globale impiegata per il mining. Questo ha portato all'aumento della difficoltà al fine di mantenere il ritmo di un blocco ogni 10 minuti.

Al momento, la difficoltà è tale da richiedere un impiego di energia e potenza di calcolo che solo grandi iniziative imprenditoriali possono permettersi. L'effetto è stato l'accentramento del mining in un numero tutto sommato ristretto di giganti: una situazione poco desiderabile e problematica nell'ottica di una iniziativa che fa' della decentralizzazione il suo forte.

Cosa rende la blockchain immutabile?

Possiamo dire che la immutabilità della catena di blocchi risiede nella potenza di calcolo che li lega l’uno all’altro e che li ha aggiunti alla blockchain.

I blocchi sono connessi l’uno all’altro e la modifica di uno imporrebbe il ricalcolo di tutti quelli che seguono, cosa che richiederebbe una potenza di calcolo proibitiva già con l’aggiunta di pochi blocchi a quello che si vorrebbe modificare.

Ma in che modo i blocchi sono collegati l’uno all’altro?

Ogni blocco è identificabile attraverso il suo hash: questo viene calcolato prendendo l’header come input.

L'header include un indice, chiamato merkle root, che riassume tutte le transazioni incluse nel blocco. Se anche una sola di queste transazioni dovesse cambiare, cambierebbe anche l’indice e di conseguenza l’hash dell’header.

In sostanza, ad ogni modifica di un blocco, cambia l’hash che lo identifica. Ricordiamo: se cambia l’input, cambia anche l’hash.

Ora: ogni blocco include nell’header l’hash del blocco precedente; se questo cambia, andrebbe ricalcolato anche l’hash del blocco successivo e di tutti quelli che seguono, e questo richiederebbe una potenza di calcolo e consumo di energia elettrica tale da rendere l’impresa di fatto impossibile.

La produzione di bitcoin

Abbiamo visto che il miner che aggiunge un blocco alla blockchain riceve come premio bitcoin di nuova emissione. Questo è l’unico modo in cui vengono emessi nuovi bitcoin.

L’emissione di bitcoin ha delle peculiarità rispetto alla moneta tradizionale:

  • vi è un limite massimo alla quantità totale di bitcoin emettibili: 21 milioni.
  • l’emissione rallenta: ogni 216000 blocchi, o 4 anni, la quantità di bitcoin emessa per blocco (la ricompensa per il miner) viene dimezzata, fino ad arrivare a 0 una volta raggiunta la somma totale di 21 milioni. Da quel momento, nessun bitcoin verrà più emesso.
L'emissione di bitcoin rallenta.
La ricompensa di bitcoin per blocco diminuisce.

Moneta tradizionale ed inflazione

Questo caratterizza la politica monetaria di Bitcoin come del tutto alternativa a quella perseguita dalle banche centrali: queste possono decidere in ogni momento di emettere nuova moneta ed aumentare la quantità di moneta circolante.

Il costante aumento di moneta circolante produce però inflazione: più denaro viene messo in circolazione, meno vale quello detenuto dai risparmiatori. Il potere di acquisto della moneta così diminuisce col tempo.

Bitcoin e deflazione

Bitcoin segue una politica monetaria opposta: l’emissione rallenta a scadenze regolari fino a fermarsi del tutto una volta raggiunta la quantità massima emettibile. Questo comporta l’effetto opposto alla inflazione: la deflazione.

A differenza della moneta tradizionale il valore di bitcoin tende a salire col tempo.

Il potere di acquisto di una moneta deflattiva, come Bitcoin, cresce con il passare del tempo, invece che diminuire: questo è visto con orrore dagli economisti mainstream, che possiamo tradurre con “coloro che vanno per la maggiore presso l’Accademia e i media”: perché?

Se il valore del denaro cresce col tempo, il consumatore è portato a conservarlo invece che spenderlo, determinando una contrazione della domanda: l’economia rallenta.

Tuttavia, la deflazione finora studiata è stata determinata da condizionalità particolari che non hanno niente a che vedere con l’introduzione di una moneta dematerializzata, decentralizzata e deflattiva. Pertanto: il collegamento tra deflazione e contrazione della domanda non può essere dato per scontato.

Con Bitcoin siamo di fronte a qualcosa di completamente nuovo e senza precedenti. Attingere da argomentazioni prese dal passato potrebbe non essere un granché utile.

Di chi sono i bitcoin?

Abbiamo affrontato l’argomento con il nostro articolo su Bitcoin e crittografia, esaminando in che modo la crittografia contribuisce al funzionamento di Bitcoin. Qui ci limitiamo a ricordare che Bitcoin fa’ ricorso alla crittografia a chiave pubblica e che ogni utente dispone di una coppia di chiavi: una pubblica e una privata. Cos'è una chiave? Una chiave è un numero molto grande.

Tra le due chiavi sussiste una relazione matematica che consente di generare la chiave pubblica dalla chiave privata, ma non il contrario. Pertanto, la conoscenza della chiave pubblica non consente di risalire alla chiave privata che l’ha generata.

Questo consente di assegnare alle 2 chiavi funzioni complementari: attraverso la chiave pubblica si incassano somme che possono poi essere spese usando la corrispondente chiave privata.

Più precisamente, dalla chiave pubblica si ricava l’indirizzo bitcoin, paragonabile ad un iban e che permette di ricevere bitcoin; dal momento che dalla chiave pubblica non è possibile ricavare la chiave privata, che deve rimanere segreta, l’indirizzo bitcoin può essere reso pubblico e comunicato a chiunque voglia inviarci un pagamento in bitcoin. Le somme ricevute attraverso l’indirizzo bitcoin possono essere spese solo conoscendo la chiave privata che ha generato la pubblica dalla quale è ricavato l’indirizzo.

In definitiva: sono gli indirizzi pubblici a comparire sulla blockchain come "titolari" dei bitcoin. Vengono registrati gli spostamenti di bitcoin tra indirizzi e non viene fatto alcun collegamento tra indirizzo e persona fisica.

Come vengono spesi i bitcoin?

Come detto, occorre la chiave privata: con questa si firmerà la transazione che trasferisce le somme ad un altro indirizzo bitcoin.

Per firma intendiamo la firma digitale, una funzionalità della crittografia a chiave pubblica fondamentale per il funzionamento di Bitcoin.

L’applicazione della chiave privata ad una transazione produrrà un hash: chiunque attraverso la chiave pubblica e la transazione potrà verificare che la transazione è stata effettivamente firmata dal titolare delle somme, o comunque da chiunque detenga la chiave privata.

Come visto in precedenza, ogni transazione è oggetto di verifica e solo quelle conformi verranno selezionate per essere aggiunte ad un blocco e memorizzate sulla blockchain.

Un punto da sottolineare: l’accesso alle somme è dato dalla chiave privata: perderla vuol dire perdere le somme a cui questa da accesso.

Wallet

La creazione e la gestione delle chiavi avviene attraverso una applicazione nota come wallet: mentre questa assolve alle funzioni di un portafoglio, indicando il saldo e permettendo la spesa e l’incasso di bitcoin, oltre che creare copie di backup delle chiavi, di fatto si tratta più di un portachiavi: l'essenziale funzione di un wallet è quella di custodire ed usare in sicurezza le chiavi.

Vi sono tanti tipi di wallet, l’argomento è molto vasto e meriterebbe una trattazione dedicata; potremo magari tornarci con un prossimo articolo.

Per adesso ci basta sottolineare che la scelta del wallet è il primo passo per chiunque voglia cominciare a sperimentare concretamente bitcoin.

Conclusioni

Siamo arrivati alla fine del nostro articolo: l’obiettivo che ci siamo posti con lo scriverlo è piuttosto ambizioso: riuscire a spiegare come funziona bitcoin anche a chi sia completamente a digiuno sull’argomento.

Abbiamo strutturato l’articolo intorno ai punti su cui più spesso ci capita di ricevere domande da parte di chi comincia ad interessarsi a Bitcoin.

Speriamo di essere riusciti nel nostro intento; saremmo contenti di ricevere commenti e suggerimenti su come migliorare l’articolo. Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo..

Grazie per l’attenzione.


Creative Commons License

Vincenzo Lalli

Di formazione legale, appassionato da sempre di tecnologia ed informatica; esperienza professionale acquisita a cavallo tra i due mondi, finora piuttosto lontani tra loro. Mi dedico ad esplorare le crescenti interazioni tra il Diritto e la tecnologia, e a dare il mio contributo alla causa dell'innovazione nel settore legale; a tal fine, ho dato vita ad Avvocloud.net.

Questo sito utilizza cookies necessari al suo funzionamento come descritto nella COOKIE POLICY.
Chiudendo il banner o continuando la navigazione accetti l'uso dei cookies.