Nasce prima il miner o la criptomoneta?

Uno tra gli elementi fondamentali quando si parla di criptovalute è il mining, argomento già trattato in articoli come questo, in cui si illustra la possibilità di minare con Raspberry. Il concetto di mining non è soltato qualcosa di fittizio o creato per attrarre utenti, ma è uno dei pilastri alla base del funzionamento di alcune blockchain. Nel white paper presentato da Satoshi Nakamoto, approfondito qui, viene presentato il mining come il processo che permette la decentralizzazione della blockchain. In questo articolo si illusterà la teoria del mining e le alternative a questo che alcune criptovalute hanno adottato. 

La necessità di un miner

La blockchain utilizzata come sistema di pagamento si basa su una proprietà che la contrappone in modo diametralmente opposto rispetto alle banche, la decentralizzazione. Affidarsi alle banche per inviare e ricevere pagamenti è una necessità per poter rassicurare ciascuno dei partecipanti ad una transazione. Chi invia denaro vuole essere certo che la quota inviata arrivi e il destinatario non possa negare l'avvenuta ricezione. Allo stesso modo colui che riceve il pagamento vuole essere certo che l'acquirente non possa in primo luogo mentire sulla transazione, inoltre si affida alla banca come garante della genuinità del valore ricevuto (non è possibile inviare denaro contraffatto tramite un bonifico). Nella blockchain non esiste nessun ente che agisca come intermediario, ma allora come si può essere sicuri che una transazione sia avvenuta effettivamente?

Figura 1. Schema di una transazione in un sistema bancario (sopra) e un sistema decentralizzato (sotto), (icone fornite da icons8.it/icons)

I miner sostituendo la banca come mostrato in figura 1, saranno i testimoni delle transazioni, persone collegate in rete competono tra loro per verificare le transazioni prima di tutti gli altri, per remunerare la loro attività chi vince ha diritto a 12.5 bitcoin come premio (questo valore è da considerare valido nel momento in cui si sta scrivendo l'articolo, il premio infatti non è costante nel tempo ma viene dimezzato ogni 4 anni circa). Per quanto riguarda bitcoin dunque c'è una commissione da pagare ad ogni modo per inviare criptovalute in rete, tuttavia la percentuale sul valore della transazione è molto bassa.

Il 6 settembre 2019 è stato trasferito 1 miliardo di dollari con una commissione di 700$, ovvero uno 0.00007% di commissione.

Inoltre i vantaggi non si limitano alla commissione applicata sulla transazione. Ci si potrebbe chiedere come sia possibile fidarsi dei miner piuttosto che della banca? In che modo la blockchain fa in modo che non sia possibile praticare arbitraggio? La risposta sta nella competizione, un singolo miner infatti non potrà mai vincere la competizione e verificare tutte le transazioni da solo in quanto il numero di partecipanti alla competizione è così elevato che le sue possibilità sono pressoché nulle. I miner allora uniscono il loro potere computazionale creando mining pools, l'unione fa la forza. A questo punto ogni mining pool è formata da più minatori e per poter prendere il controllo di tutte le transazioni sarebbe necessario controllare il 51% della rete, in questo modo si avrebbe più potere di calcolo rispetto agli altri minatori e più possibilità di vincere la competizione. La potenza necessaria per minare un blocco di bitcoin è assai elevata, l'algoritmo di mining aumenta la difficoltà all'aumentare dei partecipanti e della loro capacità di calcolo.

Il tempo impiegato per aggiungere blocchi alla blockchain è 10 minuti circa, se i miner aumentano, aumenta la difficoltà del problema da risolvere per mantenere questo tempo costante.

Dalla transazione al blocco

In che modo vengono gestite le transazioni? Quando un utente decide di inviare un quantitativo in criptomonete, la transazione finisce in una pool di transazioni non ancora verificate, le transazioni che hanno scelto di pagare una commissione più elevata saranno le prime ad essere prelevate dai miner. I miner hanno a disposizione 10MB di spazio per inserire i dati delle transazioni come per esempio il numero del blocco precendente e il numero magico chiamato nonce. Questo significa che

la nostra transazione potrebbe essere stata prelevata da un miner e inserita all'interno di un blocco, tuttavia finchè il miner in questione non vince la competizione per trovare il giusto nonce, il blocco non verrà aggiunto alla blockchain.

Una volta che il miner ha stabilito le transazioni da inserire, i dati di cui ha bisogno per aggiungere il blocco e generare il corrispettivo hash sono:

  • indice del blocco
  • hash precedente
  • timestamp
  • dato (elenco delle transazioni da verificare)
  • nonce

L'hash è un algoritmo di crittografia che genera un output a 256 bit, gli input sono i dati sopraelencati, modificando anche solo uno di questi minimamente, l'output cambierà completamente. La difficoltà del miner è scovare il nonce che generi un output con determinate regole. Nello specifico, l'output deve avere un determinato numero di zeri come prefisso, all'aumentare del numero di zeri da ottenere aumenta la difficoltà di calcolo.

Per esempio immaginando di ottenere il seguente hash usando come nonce il numero 1:

2f88830b9ae1e7d21c01a435b5883ddbe00d610e9de2f4ea0419938130fdb5ba

Se la difficoltà della blockchain ci chiede di avere come prefisso dell'hash almeno due zeri, questo risultato non è valido, allora il miner dovrà cambiare il nonce, provando per esempio con 1457 si ottiene:

000bb61e6188858244575e78484f65cdec98160c3c2941a72ff780adae8c306c

In questo caso la regola degli zeri è rispettata e il minatore, se è il primo a dare un blocco valido, vince la competizione. Considerato che ogni volta bisogna indovinare il nonce, chi riesce a fare più tentativi è colui che ha più probabilità di vincere. Per eseguire più tentativi nel minor tempo possibile si ha bisogno di un sistema potente. La potenza di calcolo negli algoritmi di mining ha come unità di misura Hash/s ovvero quanti tentativi si eseguono al secondo. Al momento il potere complessivo di tutti i miner della rete bitcoin è di circa 100 ExaHashes/s, per cui milardi di miliardi di combinazioni possibili sono calcolati ogni secondo e impiegano circa 10 minuti a giungere alla soluzione. Cosa succede se due miners arrivano alla soluzione in contemporanea? In quel caso la blockchain prediligerà colui che ha inserito più transazioni all'interno del blocco minato.

Attacchi alla blockchain

La blockchain è tanto più sicura quanti più sono i miners che compongono la rete. Le criptomonete la cui rete è piccola rispetto alla rete bitcoin sono facile preda di un attacco al 51%. In cosa consiste? Il nome lo suggerisce, un miner malevolo prende il controllo del 51% della rete e decide di modificare le transazioni a suo piacimento. Nello specifico [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1894 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici e potrai fare il download in formato PDF eBook e Mobi per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

5 Commenti

  1. davide.balducci davide.balducci 17 Marzo 2020
    • Raul Rosa 2 Aprile 2020
  2. Mariangela.Mone Mariangela.Mone 31 Marzo 2020
  3. Michele Tiglio Michele Tiglio 1 Aprile 2020
    • Raul Rosa 2 Aprile 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend