Bitcoin è una moneta digitale e decentralizzata che funziona autonomamente, in esecuzione di un software. Con Bitcoin, non vi è alcuna autorità che eserciti il ruolo normalmente assegnato alle banche centrali. In altre parole, il funzionamento è dovuto esclusivamente a regole tecniche, in particolare quelle della crittografia a chiave pubblica. In questo articolo proviamo ad illustrare come funziona bitcoin, in cosa consiste il suo carattere innovativo e, secondo noi, interessante e degno di studio.
Indice
Che cos'è Bitcoin
Bitcoin è ad un tempo una rete, un protocollo e una moneta digitale. Se consideriamo la sua applicazione finale, possiamo dire che Bitcoin è una moneta digitale; allo stesso tempo, è anche una rete, composta da nodi: un nodo è un qualunque dispositivo sul quale è installato l’insieme di software che costituisce il protocollo Bitcoin.
Che cos'è la moneta
Per comprendere come funziona bitcoin e il suo carattere innovativo è utile partire dalla moneta tradizionale.
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 diventa “poco rara” perde progressivamente il suo valore presso coloro che la detengono.
Bitcoin come moneta innovativa
Bitcoin è una moneta che esiste solo in formato digitale e che funziona autonomamente, in esecuzione di predeterminate regole tecniche e senza l'intervento di alcuna autorità, come Banca Centrale o ente regolatore.
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.
Bitcoin: come funziona in breve
Bitcoin funziona come un registro su cui vengono annotati dei crediti e la loro 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 singolarmente alcuni aspetti tecnici fondamentali per comprendere il funzionamento di Bitcoin.
Che cos'è la blockchain?
La blockchain è il registro inalterabile su cui vengono annotate le transazioni in bitcoin. Il registro è costituito da blocchi ordinati in sequenza ed "agganciati" l'uno all'altro.
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à.
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à delle somme), 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.
Leggi anche
Che cos'è uno smart contract: introduzione ad Ethereum
Abbiamo trattato di blockchain anche con il nostro articolo su smart contract ed Ethereum, illustrando le differenze con Bitcoin: Ethereum fa' un uso più versatile della blockchain, presentando però una maggiore complessità e relativi problemi.
Che cos'è il mining di bitcoin
Il mining è la procedura che consente l'annotazione delle transazioni sul registro di bitcoin, ossia la blockchain. La scrittura avviene attraverso il mining, ossia l'aggiunta di nuovi blocchi alla blockchain ad opera dei miner.
I miner si occupano di:
- 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.
- includerle in un blocco;
- 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à:
- selezionare e processare le transazioni valide, includendole in un blocco da aggiungere alla blockchain;
- 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; per farlo, dobbiamo introdurre il concetto di hash e vedere come un algoritmo di hash viene impiegato da Bitcoin.
Come funziona l'hashing di bitcoin?
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
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 lo stesso algoritmo usato dall'hashing di Bitcoin: sha-256.
Disponendo solo dell'hash e dell'algoritmo non è però possibile risalire alla parola che l'ha generato.
Hashing e Bitcoin: Proof of Work
Il problema che i miner devono risolvere per aggiugere il loro blocco e guadagnarsi bitcoin di nuova emissione 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.
Header
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 (nel nostro esempio, la parola "ciao"), 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.
Leggi anche
Una delle più discusse applicazioni della blockchain attiene ai Non Fungible Token: NFT. Con questo articolo proviamo a capire cosa sono; per farlo, dobbiamo chiarire in primo luogo che cos'è un token e quali applicazioni o utilità può avere.
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, il progresso tecnologico e l’aumento dei miner partecipanti 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 strumenti 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 ha legati insieme ed 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 quantità di risorse proibitiva già con l’aggiunta di pochi blocchi a quello che si vorrebbe modificare.
In che modo i blocchi della blockchain 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:
1 - Quantità emettibile limitata
È previsto un limite massimo alla quantità di bitcoin emettibili: 21 milioni.
Una volta raggiunto il limite, nessun altro bitcoin potrà mai essere emesso.
2 - L'emissione rallenta
La produzione decresce: la quantità totale di bitcoin in circolazione aumenta, ma in maniera decrescente: la produzione viene dimezzata ogni 4 anni.
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. In seguito, nessun bitcoin verrà più emesso.
Fiat money VS Bitcoin
Moneta 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 tradizionale così diminuisce col tempo, con l'aumentare della quantità circolante.
Perche si parla di fiat money?
Per indicare la sostanziale differenza tra la moneta emessa dalle banche centrali e bitcoin, si fa' riferimento alla prima come fiat money: perchè?
Mentre la quantità di bitcoin aumenta solo ad opera di inalterabili norme tecniche, la moneta tradizionale deve la sua emissione ad un mero atto di imperio da parte di una autorità, appunto la banca centrale. Da qui, l'uso dell'imperativo del verbo latino fio, che alla terza persona singolare è fiat.
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.
Aspetti pratici di Bitcoin
Di chi sono i bitcoin?
Con il nostro precedente articolo abbiamo osservato come bitcoin utilizza la crittografia per legittimare la titolarità delle somme e consentire la circolazione delle stesse.
Chiavi pubbliche e private
Per spiegare come funziona Bitcoin qui ci è utile ricordare che ogni utente dispone di una coppia di chiavi: una pubblica e una privata, secondo lo schema proprio alla crittografia a chiave pubblica.
Cos'è 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, 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.
Pertanto:
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 spendere 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.
L’accesso alle somme è dato dalla chiave privata: perderla vuol dire perdere le somme che questa controlla. O meglio: si perde la possibilità di spenderle.
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.
Grazie per l’attenzione.
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.