Cerca

Blog

Attualità

Blockchain: un'introduzione alle funzioni hash e al mining

Questo articolo fa parte di una serie di introduzione ai concetti della blockchain. Nei primi due articoli è stato dedicato spazio alla descrizione di ciò che è blockchain e al suo funzionamento.

Prima di passare a comprendere quali siano le possibili applicazioni in campo economico e sociale è necessario approfondire un ulteriore aspetto, probabilmente quello che si è fatto sentire maggiormente sinora oltre all’esistenza delle crypto: si parla del mining. Il mining, letteralmente ‘attività di estrazione’, è ciò che rende possibile la creazione e la stabilizzazione della blockchain. D’altra parte è ciò che permette ai minatori di essere remunerati in criptovaluta.

Per inciso si rammenta che esistono più criptovalute in virtù dell’esistenza di più blockchain con differenti caratteristiche. Anche se molte applicazioni di blockchain possono effettivamente basarsi su blockchain private con differenti caratteristiche e funzionalità per costruzione, le applicazioni che si basano su blokchain pubbliche, o permissionless ̧ dipendono anch’esse dalle loro differenti caratteristiche.

Ma come funziona il mining? E come mai quindi è possibile tramite esso ottenere remunerazione?

Per rispondere a quanto sopra verrà utilizzato un esempio pragmatico.
Per semplicità si analizzerà un caso in cui l’attività centrale da iscrivere nella catena è proprio la transazione di informazioni finanziarie, ovvero di scambio di moneta, ma già qui si ricorda che è solo uno dei tanti casi di possibile applicazione, come si vedrà nel prosieguo degli articoli.

Ipotizziamo di essere parte di un gruppo di 10 persone in un’isola deserta che decidano di rendicontare tutti gli scambi di valuta che vengono effettuati inter nos. Ci procuriamo quindi un registro in cui inscriveremo le transazioni finanziarie derivanti dai nostri scambi, che sarà detenuto da Anna, la quale senza dubbio è la persona più responsabile ed onesta del gruppo.

Ad esempio, partendo da un “bilancio” iniziale di 10 monete a testa:

  • Anna cede 3 monete a Bob
  • Grunk cede 2 monete a Bob
  • Claire cede 5 monete a John

Durante la notte Grunk, malintenzionato, decide di rubare il registro ad Anna e di manometterlo in suo favore, determinando la seguente situazione:

  • Anna cede 3 monete a Grunk
  • Dave cede 2 monete a Bob
  • Claire cede 5 monete a John

Il giorno dopo Anna se ne rende conto e cerca di aumentare la sicurezza del registro, frapponendo fra gli input e gli output (o anche hash) del processo di inscrizione della transazione una cosiddetta funzione hash.
La funzione hash è quella funzione crittografica su cui si basa l’algoritmo di consenso ed il cui funzionamento sarà espresso qualitativamente poco sotto. Di fatti, anche se nel prossimo articolo sarà possibile approfondire la dinamica propria della crittografia in oggetto, in effetti sinora avevamo parlato di blockchain come un registro di transazioni immutabile e distribuito (cfr il precedente articolo Criptovalute e blockchain, un'introduzione). Alla base di tutto ciò si cela la crittografia di cui sopra ed un sistema crittografico a chiave pubblica e privata.

Il nostro registro si presenta ora in questo modo:

  • 84911216498e3125bca94c51b151a7401a64fd86c8a81e26218d5dbd3d04a2ac
  • 65516c1f42477a88e5684434a0d236c1456d17da61328f9e4374c02ae0b7e97f
  • 6056188cd45dd14349e023b1bd98b84b0094172144f69c0cde98b36d507c8b5d

L’aspetto finale sarà il seguente:

  • Anna cede 3 monete a Bob “84911216498e3125bca94c51b151a7401a64fd86c8a81e26218d5dbd3d04a2ac”
  • Grunk cede 2 monete a Bob “65516c1f42477a88e5684434a0d236c1456d17da61328f9e4374c02ae0b7e97f”
  • Claire cede 5 monete a Jhon “6056188cd45dd14349e023b1bd98b84b0094172144f69c0cde98b36d507c8b5d”

In tal maniera sarà molto semplice per Anna verificare la veridicità delle transazioni in quanto la funzione hash per sua struttura determina un output che varia radicalmente anche se l’input varia in maniera letteralmente marginale. La transazione, al termine del periodo di controllo, sarà inscritta e validata solamente se ci sarà consenso fra la stringa input e quello che dovrebbe essere l'output corrispondente dato l’algoritmo hash selezionato.

Si veda:

  • Anna cede 3 monete a Bob “84911216498e3125bca94c51b151a7401a64fd86c8a81e26218d5dbd3d04a2ac”
  • Anna cede 3 monete a Bob! “ab1bb1ee4ed21d11e74497168a5f3a2454162a0ffe6283dc66bcc8bba39f789e”
  • Anna cede 5 monete a Bob “baffab75dd6acde2daf739f5e14e48bc4949c6a6e2c92cd1b2e581601a005680”

Grunk però, ingengnandosi, riesce a comprendere come operi la funzione in oggetto ed a modificare correttamente le stringhe input coerentemente con la variazione delle stringhe output, in maniera tale da non rendere individuabile la correzione tramite il confronto fra la corretta stringa output e la corrispondente input. Anna deve aumentare il livello di difesa al fine rendere stabile il registro, pertanto decide di legare le transazioni all’hash della transazione precedente, in maniera da legare temporalmente le transazioni le une con le altre. Il risultato sarà il seguente:

  • “Anna cede 3 monete a Bob”→“84911216498e3125bca94c51b151a7401a64fd86c8a81e26218d5dbd3d04a2ac”
  • “Anna cede 3 monete a Claire (più) 84911216498e3125bca94c51b151a7401a64fd86c8a81e26218d5dbd3d04a2ac”→“8ccf51a317d80540d40ccc8e568c8d8c57d79b564847f26fc74c4d65d10150d7”
  • “Claire cede 2 monete a John (più) 8ccf51a317d80540d40ccc8e568c8d8c57d79b564847f26fc74c4d65d10150d7”→“fc86291334e4f99cc38dbdca3c611374e71a680ab44c0127aae6296c55e87527”
  • “John cede 1 moneta a Grunk (più) fc86291334e4f99cc38dbdca3c611374e71a680ab44c0127aae6296c55e87527”→”8dc41867f565b2c3af75d7a246acbf7fe63319029068f5385e7934faf39f4205”

In questo momento, per modificare una qualsiasi transazione, sarebbe necessario modificare l’integrità delle transazioni nel registro, in quanto tutte sono adesso legate fra loro in ordine cronologico.

Ammettiamo che Grunk riesca a comprendere l’algoritmo del nostro registro ed a modificare le transazioni in suo favore: Anna, anche in questo caso, riesce a complicargli la situazione, apponendo un valore casuale alla stringa inscrivenda nel registro tale per cui debba esserci un certo numero di “0” prima dell”hash”. Detto valore, chiamato nonce, complica decisamente i calcoli che dovranno essere fatti per poter modificare coerentemente con l’algoritmo di consenso tutta la catena di transazioni.

A titolo di esempio, senza avere una corrispondenza effettiva come sopra:

  • Anna cede 3 monete a Bob 159
  • Grunk cede 2 monete a Bob 789
  • Claire cede 5 monete a Jhon 962

Per la capacità di calcolo attuale, un sistema siffatto risulta tendenzialmente impossibile da "battere". La sicurezza della catena è notevolmente aumentata nel momento in cui la capacità di calcolo dedicata non è solamente sita in un hardware, ma in un sistema di hardware dislocati per il mondo che vengono utilizzati nel processo.

Inoltre, ogni nodo della catena detiene una copia delle transazioni: ciò significa che è possibile per esso verificarle anche se il sistema è stato violato in un qualche punto, in quanto ogni nodo potrà validare ogni transazione e decidere, secondo la coerenza con l’algoritmo di consenso, se iscriverla nel registro o meno. L’impossibilità di invertire la funzione rende implicitamente la transazione immutabile una volta inscritta nel registro. Oltre a questo, la transazione risulta essere approvata da tutti i nodi.

Infatti, se un qualsiasi nodo decidesse di violare il registro, modificando i dati al suo interno, ognuno degli stessi nodi verrebbe a conoscenza della violazione, proprio come Anna e Grunk più sopra. Il risultato sarebbe la mancata inscrizione all’interno del registro.

È proprio qui che si apprezza la validità del processo di mining. L’attività di estrazione infatti è tesa proprio a garantire il processo sopra descritto. Per incentivare la condivisione della capacità di calcolo necessaria si promette un incentivo ai validatori: una volta individuato il nonce corretto (all’interno di un determinato intervallo accettato) si concede una quantità di criptovaluta come ricompensa su un conto apposito, ovvero su un wallet.

Ed è qui che si collega quanto anticipato nell’articolo precedente al riguardo degli algoritmi di consenso citati. Esistono infatti più metodi per poter estrarre la critpovaluta secondo il processo di mining ed essi sono divisi tendenzialmente in due grandi modelli (cfr supra), ovvero il Proof-of-Work ed il Proof-of- Stake.

Le differenze fra i due, come già accennato, sono fondamentali:
nel primo si ha una più alta probabilità di ottenere la ricompensa quanto più alta è la capacità di calcolo, determinata con un tasso di hash (hashrate).
Questo è anche il motivo per cui dapprima, agli inizi, era possibile minare ad esempio bitcoin con una capacità di calcolo irrisoria, anche con il computer di casa, mentre negli ultimi tempi sarebbero necessari interi palazzi arredati con appositi terminali adeguatamente strutturati. Questo sistema può essere anche considerato insostenibile, dato che la capacità di calcolo risulta essere crescente (e quindi anche i costi), oltre che l’energia necessaria per attivare il tutto.

Il problema è stato aggirato grazie al secondo algoritmo di consenso, che prevede una quantità stabile in termini di hashrate, cambiando totalmente le logiche di remunerazione. Infatti, il minatore che pone in garanzia la più grande proporzione di criptovaluta, in questo sistema sarà più probabilmente scelto per validare la transazione. Se ad esempio, nel sistema Ethereum (dove da poco siamo passati proprio al PoS), su un totale di cripto posta a garanzia, pena della frode la perdita della stessa, possediamo la metà di essa, per ogni transazione saremmo selezionati e remunerati da un algoritmo pseudo-casuale, ma l’hashrate necessario sarà sempre costante.

A questo punto abbiamo molte informazioni sulla blockchain:
nel prossimo articolo, il quarto per questa serie, si presenteranno le principali criptovalute e soprattutto le principali applicazioni negli svariati mondi possibili di questa tecnologia rivoluzionaria.

Data
20 Marzo 2021
Articolo di
Marco Zanussi

Marco Zanussi

TAG
blockchain, criptovalute

Iscriviti
alla newsletter!

Registrandoti confermi di accettare la nostra privacy policy

Marco Zanussi

Marco Zanussi

Classe '92, Fiorentino e Romolino orgliosamente, cestista da piú di venti anni. Laureato in economia a Firenze e presso la Cattolica di Milano. Economia è antropologia, psicologia, sociologia, filosofia... e…

Commenti

  1. Criptovalute e applicazioni di blockchain oggi 13 Maggio 2021 alle 09.30

    […] concetti di distribuzione, trasparenza e decentralizzazione (confronta articolo 1, articolo 2, articolo 3), ma solo sulle caratteristiche principali della […]

    Rispondi

Rispondi Cancella

Inserisci il commento
Inserisci il tuo nome
Hai inserito un indirizzo email non valido
Inserisci il tuo indirizzo email

Articoli correlati

Attualità

Un lungomare di auto con i fondi della transizione ecologica

L'ennesimo paradosso del PNRR

12 Novembre 2023   |   Francesco Conti

Attualità

Francesca Bria e il Twitter europeo (a cui non vediamo l'ora di iscriverci)

La proposta di una superstar silenziosa della classe dirigente italiana

2 Agosto 2023   |   Vittorio Ray

Attualità

La destra ci ricorda che le classi sociali esistono

Economia politica delle riforme del governo Meloni

9 Marzo 2023   |   Simone Fana

Attualità

Bonaccini e Schlein non sono così diversi

Le primarie del Pd e la "prima società"

24 Febbraio 2023   |   Paolo Gerbaudo

Teoria e pensiero economico

Marc Bloch, una lettura obbligatoria per ogni studente di economia

6 Febbraio 2022   |   Alessandro Bonetti

Cultura e società

Una poltrona per due

una risata vi impoverirà

24 Dicembre 2021   |   Alessio Mannino

Analisi

Il problema non sono i soldi, ma le risorse reali

17 Novembre 2021   |   Alessandro Bonetti

Attualità • Cultura e società

L'inganno della meritocrazia al tempo degli influencer

9 Luglio 2021   |   Niccolò Biondi

Attualità • Teoria e pensiero economico

Il ritorno dello Stato: un nuovo orizzonte al Festival di Trento

27 Giugno 2021   |   Jacopo Sala

Rimani in contatto.
Iscriviti alla newsletter!

Registrandoti confermi di accettare la nostra privacy policy

KriticaEconomica
è completamente indipendente
ed autofinanziata.
Sostienici con una donazione.

Codice IBAN: IT18Y0501803200000016759425

Questo sito è stato realizzato con il supporto di YSI - Young Scholars Initiative, una comunità globale di pensatori critici che finanzia iniziative per il pluralismo nell'economia

Kritica Economica è una rivista indipendente creata da un gruppo di universitari, ricercatori e studiosi di varie estrazioni, appassionati di economia e politica economica.

Contatti
info@kriticaeconomica.com

All Content © Kritica Economica 2022
All Rights Reserved
Design Big Sur

Privacy policy

Facebook Twitter Instagram Youtube Telegram-plane Linkedin-in Envelope