La blockchain nei processi contabili, amministrativi e di supply chain – II Parte
? Attori
- Bitcoin miner
I Bitcoin miner (minatori di Bitcoin) sono coloro che tramite l’ausilio di dedicati hardware (mining hardware) partecipano attivamente alla gestione ed alla sicurezza del network e svolgono almeno le seguenti cinque attività:
-validano ogni singola transazione;
-generano i blocchi che a loro volta contengono le transazioni;
-conservano la catena dei blocchi (blockchain);
-trovano la soluzione al problema di calcolo computazionale (proof of work, cioè prova del lavoro);
-verificano la soluzione al problema di calcolo computazionale (proof of work).
Il termine miner utilizzato per definirli, descrive molto bene le attività che svolgono, perché in effetti è molto simile all’attività svolta dai minatori, che tramite l’ausilio di strumenti più o meno evoluti cercano l’oro setacciando tonnellate e tonnellate di terra. Anziché scavare nelle miniere per trovare l’oro, i miner, che sono centinaia e dislocati in ogni parte del globo e tutti collegati al network, tramite l’impiego di appositi server devono risolvere un calcolo computazionale calibrato per essere risolto in circa 10 minuti, ed il miner che per primo trova la soluzione, se validata dalla maggioranza dei restanti miner, sarà premiato con l’assegnazione di 12,5 bitcoin (BTC) di nuova emissione.
Da qui emergono le tre principali caratteristiche di Bitcoin, e diversamente dalle tradizionali valute coniate dalle autorità monetarie centrali, nel caso di Bitcoin l’emissione della valuta è predefinita perché ogni circa 10 minuti vengono emessi 12,5 BTC, distribuita perché emessa da uno dei miner partecipanti al network che prima di altri ha trovato la soluzione al problema, e casuale perché a parità di potenza di calcolo tra i diversi miner la probabilità di trovare la soluzione al problema è la medesima.
Per esemplificare l’attività svolta dai miner, possiamo immaginare una grande sala con centinaia di persone sedute intorno ad un enorme tavolo ove ciascuna di esse ha in mano 5 dadi che continuamente lancia, e dove la regola del gioco prevede che colui che per primo riuscirà a fare uscire il numero 6 su tutti e cinque i dadi, vincerà un prestabilito premio, ma solo dopo che la maggioranza delle persone sedute al tavolo avrà verificato la correttezza del risultato.
Nella pratica i miner sono aziende che hanno investito parecchio denaro per riempire interi capannoni di server che funzionano giorno e notte ed hanno come unico scopo quello di risolvere un particolare problema computazionale calibrato per essere risolto ogni 10 minuti circa, ed il cui premio consiste, oltre che incassare 12,5 BTC per aver trovato la soluzione, anche di riscuotere le fee delle transazioni contenute nel blocco a cui si riferisce il problema di calcolo computazionale di cui si è trovata la soluzione.
A fronte delle suddette entrate, vi sono poi i costi a cui i miner devono far fronte, come l’acquisto dei mining hardware, l’energia elettrica necessaria a farli funzionare ed a rinfrescare l’ambiente, l’affitto dei capannoni, gli stipendi dei tecnici addetti alla manutenzione degli hardware, e dato che il costo che incide maggiormente è l’energia elettrica, molti dei più importanti miner sono localizzati in zone geografiche ove l’energia elettrica ha costi estremamente bassi e con un clima particolarmente rigido, come per esempio l’Islanda ed alcune zone della Cina.
- Bitcoin core developer
Ruolo certamente rilevante lo rivestono gli sviluppatori appartenenti al “Bitcoin core developer”, cioè il team di sviluppo di Bitcoin e che sono coloro che sostanzialmente decidono sull’evoluzione di Bitcoin e sulle proposte di miglioramento e di perfezionamento arrivate dalla community di Bitcoin;
- Bitcoin exchange
Gli exchange (cambia valute) sono coloro che consentono di poter convertire valuta ufficiale (euro, dollaro, sterlina, etc) in BTC, e viceversa, cioè convertire BTC in valuta ufficiale
- Bitcoin wallet
Il servizio offerto dai wallet è quello di consentire all’utente la gestione e la custodia dei BTC, e quindi la custodia della chiave segreta utile a generare una transazione, e per questo motivo è necessario affidarsi ad operatori con un alto livello di sicurezza informatica e crittografica per evitare appunto il rischio che malintenzionati possano carpire la chiave segreta e trovarsi di punto in bianco derubati dei BTC.
? Principi base
- Indirizzo degli utenti
Ciascun utente viene individuato all’interno del network, non dal proprio nome e cognome, ma da una stringa di dati che non è altro che l’hash (i.e. impronta) della propria chiave pubblica, e quindi è una informazione che oltre ad essere comunicata a colui che dovrà inviarci i BTC, potrà essere liberamente divulgata, e quindi per esempio pubblicata nei siti web, nelle email, oppure in una T-shirt.
Bitcoin non è quindi una modalità anonima per trasmettere denaro, quanto piuttosto basata sull’impiego di pseudonimi, rilevando altresì che gli exchange devono sottostare a precise normative in tema di antiriciclaggio e comunque vi sono precise tecniche per cui è possibile risalire ai titolari di prestabiliti indirizzi Bitcoin.
- Transazione
Ogni singola transazione in Bitcoin è firmata digitalmente ed è composta da un input contenente i dati della precedente transazione (beneficiario, importo, fee, hash, etc) e da un output contenente i dati della transazione in oggetto (beneficiario, importo, fee, etc), e quindi tutte le transazioni sono tra loro collegate tramite l’inserimento nella transazione dell’hash della precedente transazione;
- Proof of work
Uno dei principali problemi inerenti le transazioni di denaro digitale eseguite in modalità decentralizzata, cioè senza avere un soggetto centrale che controlli le transazioni, è l’evitare ad un qualsiasi utente di eseguire più pagamenti utilizzando la medesima somma di denaro, cioè evitare il cosiddetto double spending (spesa doppia). Se infatti ho solo 100 € sul conto corrente bancario, non potrò eseguire più volte un bonifico di pari importo, dato che dopo la prima transazione la banca mi impedirà di eseguirne altre perché appunto non vi è alcuna disponibilità di denaro sul conto corrente.
Come vedremo, Bitcoin è basato su un sistema decentralizzato, cioè non vi è un soggetto centrale che esegue il suddetto controllo ma vi è un network che a maggioranza valida le singole transazioni, e quindi il vero problema che doveva essere risolto era di trovare una efficacie soluzione per evitare il double spending, cioè evitare che un malintenzionato spendesse lo stesso ammontare di BTC contemporaneamente su più marketplace. Il problema è stato risolto in modo estremamente elegante, prevedendo che ogni 10 minuti circa le transazioni vengano raggruppate in una sorta di contenitore denominato blocco (block) e validate dalla maggioranza del network, ed in caso di verifica andata a buon fine il blocco verrà aggiunto alla catena dei precedenti blocchi (i.e. blockchain), accrescendo in questo modo la blockchain di Bitcoin. Se quindi per esempio Alice ha 1 BTC e spende più volte la suddetta somma nell’arco di pochi minuti, le transazioni saranno nel medesimo blocco e solo la prima sarà accettata, mentre se alcune delle suddette transazioni saranno contenute nei blocchi successivi, saranno eliminate in quanto verificando la blockchain emergerà che Alice aveva già speso i BTC disponibili.
Ogni 10 minuti quindi viene generato un nuovo blocco (contenete le transazioni), che verrà poi diffuso all’interno del network al fine di consentire ai restanti miner di poter eseguire le verifiche, e la generazione del nuovo blocco verrà attribuita al miner che per primo risolverà un problema di calcolo computazionale basato sulla funzione di hash e denominato proof of work, avente le seguenti peculiarità:
-la soluzione del problema di calcolo è calibrata per essere risolto ogni 10 minuti circa, ed ogni due settimane viene rivisto il grado di difficoltà del calcolo ed eventualmente ricalibrato;
-la soluzione del problema di calcolo computazionale è molto complessa e richiede dedicati hardware (mining hardware) progettati per eseguire la suddetta attività;
-la verifica della soluzione al problema di calcolo computazionale è molto semplice e può essere eseguita in pochi istanti.
Per fare un esempio, ipotizziamo che il problema di calcolo computazionale da risolvere sia quello di trovare quale numero deve essere aggiunto a “Umberto Zanini”, per avere un hash (calcolato con l’algoritmo SHA-256) che inizi con “0”
Umberto Zanini dcfffca5786b2748de867cba17fce5542453e526f53aef05af9011e85d0f125
Umberto Zanini1 d1bd99c846b333808ce5dd2e6eb26b733ce1fb23da9b026b088e4d59e138c693
Umberto Zanini2 5342616ba44f1159e96f70f6a8b312a5c3736007f6e38e57454cce5625c7bd88
Umberto Zanini3 16006ca436bb97b3b9dbf503d14782ca1254dc22ffe2a2c03e9a43844cdaee38
…..
Umberto Zanini44 097001814fa95e1a7a68291d54a015c29da27947315139b5042a4681c6a7deae
Nel caso prospettato la soluzione è molto semplice e dopo solo 44 tentativi il problema è stato risolto (la soluzione infatti è di aggiungere a “Umberto Zanini” il numero “44”), ma se per esempio il problema fosse quello di trovare quale numero deve essere aggiunto a “Umberto Zanini” per avere un hash che inizi con “0000”, la soluzione è certamente molto più complessa e per questo è necessario avere appositi strumenti hardware e software.
Grazie quindi a questo meccanismo, ogni circa 10 minuti viene generato un nuovo blocco (contenente migliaia di transazioni), che verrà poi diffuso all’interno del network al fine di consentire ai miner di poter verificare le transazioni ed il blocco, e se il 51% dei miner darà esito positivo, il nuovo blocco sarà aggiunto alla blockchain.
A cura di Umberto Zanini, Dottore Commercialista e Revisore Legale