Introduzione

Al giorno d’oggi le persone sono sempre più interconnesse. Tecnologie come WhatsApp o Telegram permettono di condividere messaggi testuali, messaggi vocali, immagini e molto altro, PayPal permette di inviare o ricevere denaro dagli altri utenti e, nei Social, postiamo ogni momento della nostra giornata. Questi sono solo alcuni esempi di come quotidianamente trasmettiamo informazioni personali e talvolta private agli altri. Apparentemente tale scambio avviene solamente tra noi stessi ed il destinatario, ma, in realtà, le piattaforme alle quali ci appoggiamo per tali operazioni assorbono e studiano ogni tipo di interazione che abbiamo col nostro dispositivo. Ciò non è necessariamente un male, infatti, soprattutto a livello legale, avere traccia di tutto ciò che avviene torna utile in caso si verifichino situazioni spiacevoli, ma dal punto di vista della trasparenza risulta fumoso e poco apprezzabile dagli utenti. Per sopperire a tali necessità hanno iniziato a svilupparsi tecnologie di network decentralizzate, in particolare si parla di blockchain.

Per essere in grado di sviluppare connessioni peer-to-peer senza un server centrale che garantisce stabilità e affidabilità si è cercato un modo chiaro e accessibile per trasmettere informazioni. La soluzione è stata quella di conferire a più computer, denominati nodi, il completo registro dei dati.

Fin dalle fasi embrionali dello sviluppo si è scelto di registrare i dati di scambio di denaro, ad esempio, A ha inviato 5 euro a B il 24/12/2023 alle 12.09.31 (timestamp), tale informazione viene crittografa e legata indissolubilmente ad altre transazioni in blocchi. Collegando tra loro più blocchi si forma una catena, da cui il termine blockchain, letteralmente catena di blocchi.

Conoscendone il funzionamento chiunque può vedere il registro, risolvendo i problemi di trasparenza, e, grazie ai timestamp risulta difficile manometterlo a posteriori poiché qualsiasi alterazione influirebbe sulla coerenza temporale dell’intera catena. Tutto questo però non era sufficiente a conferire un valore riconoscibile univocamente a tale registro, infatti se non venisse richiesta una prova dell’avvenuta transazione chiunque potrebbe aggiungere arbitrariamente dati fittizi nei vari blocchi compromettendo la validità della catena. Le soluzioni a questo problema sono state diverse e possiamo raggrupparle nel macro-argomento degli algoritmi di consenso.