|
|
Recentemente, l’attenzione dei media e di molte industrie e compagnie si è rivolta a una particolare nuova tecnologia: la blockchain. Questa tecnologia è diventata famosa grazie alla sua applicazione più comune, ossia viene utilizzata principalmente come base per la creazione e gestione di criptomonete. Anche molti "privati" sono entrati nel mondo delle criptomonete, per lo più spinti dal guadagno offerto dall’ormai famoso "mining". Ma cosa si intende per "mining"? Ma un quesito più importante è: "Questa tecnologia è unicamente applicabile al mondo delle criptomonete, oppure è possibile applicarla in diversi campi?". La risposta è: "Sì, è possibile applicarla in diversi campi".
Questa tesi vuole fare ordine per quanto riguarda l'ambiente delle blockchain e separare il concetto di blockchain da quello di "implementazione", andando a creare un modello generale nel quale collocare gli elementi base che compongono ogni qualsivoglia blockchain. Questo perché ogni implementazione ha sì caratteristiche proprie, ma condivide con le altre implementazione una serie di componenti comuni. Viene inoltre analizzato il funzionamento di base che regola questi sistemi. Un altro importante elemento introdotto da alcune implementazioni di questo sistema è il cosiddetto smart contract, la cui analisi dal punto di vista computazionale trova ampiamente spazio in questa tesi. Questi sistemi, inoltre, non sono esenti da problemi dal punto di vista della sicurezza e, essendo sistemi distribuiti, soprattutto per quanto riguarda la comunicazione e la coordinazione tra entità che fanno parte del sistema. Le soluzioni a questi problemi incontrati dalle blockchain vengono analizzate in dettaglio in questa tesi.
parole chiave
blockchain, Byzantine Fault Tollerance, smart contracts, decentralized systems, cryptocurrency