Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

la spiegazione

Blockchain e mining, ecco come funziona: dietro le quinte della tecnologia

In assenza di una terza parte che garantisca le transazioni, come nel bitcoin, il valore della valuta deve essere affidato in modo esclusivo al mercato. Ecco come si garantisce la validità della transazione nella blockchain, come si guadagna, cosa fanno i miners e quanto costa vincere la lotteria

06 Giu 2018

Alberto Berretti

Dipartimento di Ingegneria Civile ed Ingegneria Informatica, Universita' di Tor Vergata


I metodi di pagamento tradizionali – contante, assegno, carte di credito – richiedono una terza parte (sia essa la banca, lo Stato o la società che gestisce la carta) che garantisca le transazioni.

Ma cosa succederebbe se non volessimo utilizzare questa terza parte? È ancora possibile garantire una qualche forma di fiducia in questo contesto?

A parere di chi scrive, la domanda dovrebbe essere considerata largamente accademica. Infatti, per quale ragione si dovrebbe rinunciare ad una terza parte e a quale costo? Se infatti risulta che vi sono solo ragioni ideologiche, a fronte di costi e svantaggi concreti notevoli, qualunque persona dotata di buon senso dovrebbe smettere di investire risorse mentali (e non…) in progetti privi di importanza pratica.

La risposta, comunque, è “Sì, è possibile”, ammettendo di essere disposti a:

  • impedire la reversibilità delle transazioni – che ricordiamo è una garanzia per gli utenti
  • bypassare ogni normativa nazionale (ad es. antiriciclaggio)
  • abolire ogni forma di politica monetaria
  • rendere possibile intere nuove categorie di crimine informatico
  • e tutto questo con un costo in termini di impatto ambientale elevatissimo.

La nostra catena di blocchi può servire.

Cosa succede in assenza di una entità centrale

L’assenza di una entità centrale ha però una conseguenza fondamentale. La valuta – se così la possiamo chiamare – non ha più un garante, e pertanto il meccanismo che stiamo per introdurre non può essere un modo per gestire transazioni in valute reali. Nel caso di organizzazioni centralizzate (ad es. Visa), in caso una transazione risulti fraudolenta, l’organizzazione centrale si assume il rischio e paga. Qui non può pagare nessuno nemmeno in linea di principio. Non essendoci nessun garante, si deve trattare di una valuta distinta da ogni valuta reale, ed il suo valore deve essere affidato in modo esclusivo al mercato (e qui chi ha fatto da piccolo letture frettolose e superficiali di Ayn Rand si eccita). Si tratta cioè di una commodity con puro valore di possesso, come ad es. i francobolli rari, senza alcuna garanzia formale e senza nulla di soggiacente che ne garantisca il valore. Il nostro e-tallero è come il Gronchi Rosa.

La validità della transazione nella blockchain

Ma torniamo al protocollo. Immaginiamo pertanto di avere un registro di tutte le transazioni in talleri (digitali). Ovviamente se io ho tale registro, so quanti talleri ha incassato Alice (e Bob, e Carol, e Dave, etc.) e quanti talleri ha speso, pertanto conoscendo il suo flusso di denaro posso sapere quanto ha a disposizione (si tenga nota di questo: conoscendo il suo flusso di denaro; le criptovalute sono una casa di vetro, per costruzione; ovviamente finché chi dice di essere “Alice” è davvero Alice, ma questo è un altro discorso). Immaginiamo che tale registro sia memorizzato sotto forma di blockchain in tanti computer diversi, e che se Alice vuole spedire 20 talleri a Bob, deve – deve! – annunciare a tutta la rete il fatto. Ora, tutti quelli che hanno a disposizione una copia della blockchain possono controllare che effettivamente Alice ha a disposizione i 20 talleri da dare a Bob ed eventualmente raggiungere il consenso sulla validità della transazione tra i due, dopodiché aggiorneranno la loro copia della blockchain indicando la transazione.

L’incentivo della lotteria

Ma come, esattamente, e soprattutto, chi glielo fa fare? Perché dovrebbero e quale incentivo hanno costoro?

A questo scopo entra in ballo l’idea fondamentale del creatore della prima criptovaluta, il Bitcoin, e cioè il mitico personaggio che passa sotto il nickname di Satoshi Nakamoto e che nessuno sa chi sia (o chi siano): facciamo una lotteria!

Ogni lotteria ha un biglietto. Ed il requisito fondamentale che il biglietto della lotteria deve avere è che non si deve sapere in anticipo quale è quello vincente. Utilizzeremo pertanto ancora una volta le funzioni hash.

Torniamo dunque alla blockchain. Prima di calcolare l’hash finale del blocco da validare, ciascun utente calcola un numero casuale – il biglietto – (detto in gergo crittografico nonce, cioè Number used ONCE, numero usato una sola volta), e lo aggiunge alla lista di hash dai quali calcolare l’hash del blocco (che quindi dipenderà in modo impredicibile dal valore del nonce, del biglietto):

(… Blocco precedente …)
087cbc19226e25456598b774653c4a5f

Alice → Bob, 20 talleri, 14/11/2018, 19:12:01 e6165660fee900b3c15f9a2a40fe8831
Carol → Dave, 30 talleri, 14/11/2018, 19:13:07 64bfd3aff6d2ee68c948c41a7688c011
Eve → Frank, 24 talleri, 14/11/2018, 19:15:09 3aea688ba156d5c242d58eb56f881d9b
Gabriel → Hans, 18 talleri, 14/11/2018, 19:16:11 4d62c2c2e955b2446e518d391d6c6520
Ingrid → John, 15 talleri, 14/11/2018, 19:18:21 7cdc70fe4ae606aadf20278833e57033
nonce: d3bf15ce3ade961a6f9c39e6ab3a8413
04456cc0fff6f376694fd253274901a6

Ora, come facciamo a sapere se abbiamo ottenuto un biglietto vincente? Bene, se il numero finale calcolato per il blocco – l’ultimo hash – è minore di un valore fissato (chiamato il target) allora:

  • tutto il blocco – incluso il nonce e l’hash finale – viene trasmesso all’intera rete ed inserito nella blockchain;
  • tutti possono controllare che la catena di hash è corretta – ricordate, calcolare hash è banale
  • chi ha trovato il nonce che genera un hash finale minore del target viene premiato con una certa quantità di talleri (o frazione di essi): il premio della lotteria.

Cosa fanno (davvero) i miners

Finché nessuno ha trovato un nonce che genera un hash minore del target, si continua cercandone altri (procedura chiamata mining). Ovviamente stante la natura delle funzioni hash, l’unico metodo per trovare un nonce valido è.… il caso: provare, provare e riprovare finché qualcuno non trova, casualmente, un nonce valido, e cioè il biglietto vincente della lotteria. I miners, i minatori, non risolvono “complessi problemi matematici” come talora si sente dire: semplicemente sparano numeri a caso finché non esce un numero giusto.

Se le cose continuassero così, ci sarebbe un costante flusso di talleri nuovi creati ogni volta che un blocco viene approvato. Ora, è chiaro che la valuta non può essere creata arbitrariamente con un tasso costante: perderebbe valore. Nel caso delle valute vere, c’è una banca centrale, un governo ed una cosa chiamata politica monetaria: qui no (ricordiamoci, siamo nel territorio dei fan di Ayn Rand), quindi tocca inventarsi qualcosa.

Il valore del target diminuisce col tempo

L’idea allora è che il valore del target diminuisce con il tempo, in modo tale che sia sempre più difficile ottenere, per un dato blocco, un hash inferiore al target: in altre parole, diventa sempre più difficile vincere il premio. A rendere più difficile il lavoro dei miners, anche il premio diminuisce, e dopo aver “creato” il tallero numero 21000000 – si, il sistema prevede l’esistenza di al massimo 21 milioni di talleri… – non vi sarà più alcun premio – cioè nessuna creazione di nuovi talleri. A regime, dunque, dopo un – lungo – transitorio, ci dovrà essere un altro modo per remunerare i miners.

Quanto costa vincere alla lotteria

In realtà questo altro modo ci deve essere già adesso. Il mining è infatti diventato un’attività mostruosamente dispendiosa: se alle origini del Bitcoin – pardon, tallero – (circa 2008) era possibile svolgere questa attività utilizzando un normale computer domestico nei suoi momenti morti e sperare di guadagnarci qualche spiccio, la difficoltà nell’ottenere un hash minore del target è oramai diventata talmente grande che l’unica possibilità per sperare di guadagnare qualcosa consiste:

  • inizialmente nell’utilizzare computer sempre più veloci
  • poi nell’utilizzare la potenza di calcolo delle schede grafiche (GPU computing), che ben si adattano con le loro centinaia o migliaia di core (singoli processori) indipendenti, a fare un numero enorme di tentativi al secondo
  • poi nell’utilizzare gli FPGA (Field Programmable Gate Array), una specie di processori programmabili a livello hardware e quindi estremamente veloci ma per un singolo task
  • infine nell’utilizzare degli ASIC (Application Specific Integrated Circuits), e cioè dei circuiti integrati dedicati, progettati e costruiti esplicitamente per calcolare hash il piú rapidamente possibile.

Il mining dei bitcoin consuma quanto la Svizzera

Lo scopo è quello di vincere la lotteria e incassare il premio, ovviamente consumando una quantità di energia elettrica che costi di meno del valore premio medesimo, e comunque il meno possibile: quindi tipicamente carbone in un paese in cui non ci si fa molti scrupoli con la legislazione sulle emissioni di CO2. Poiché il premio è ovviamente in talleri, se il tallero ha un valore troppo basso, il gioco finisce. Poiché la difficoltà nella generazione di nuovi talleri cresce, o il valore dei talleri aumenta, o prima o poi il mining cessa di essere remunerativo. Si rifletta su questo fatto quando si vedono gli andamenti mirabolanti del valore dei Bitcoin.

Per avere un’idea, il mining dei Bitcoin attualmente (maggio 2018) consuma circa 64 TeraWattora su base annuale, più o meno quanto la Svizzera. Il consumo energetico per valutare una singola transazione è di circa 850 KiloWattora, superiore al consumo medio annuale di una famiglia italiana. Le emissioni di CO2 dovute ad una singola transazione corrispondono circa a quelle di un veicolo medio che percorre 1600 km di strada. Il metodo sopra descritto per remunerare i miners è detto eufemisticamente proof of work, ma sarebbe forse più corretto chiamarlo proof of waste.

(Parte della seconda edizione, in corso di completamento, di “L’Impero del Malware”, pubblicato da Antonio Tombolini Editore).

Leggi anche cosa sono le funzioni hash e come agisce la crittografia nelle crittovalute.

LinkedIn

Twitter

Whatsapp

Facebook

Google+

Link

Articolo 1 di 2