Nell’ultimo anno diversi fondi di investimento e banche hanno speso fino a 1,4 miliardi di dollari in tecnologie blockchain, e queste somme sono destinate ad aumentare (secondo Research and Markets sino a 42 miliardi di dollari entro il 2022).
Se da un lato il mondo si sta popolando di fondi di investimento sempre più diretti all’acquisto e all’implementazione della blockchain, dall’altro note banche e aziende – rispettivamente come Barclays e IBM – scommettono sull’impatto rivoluzionario e dirompente di questa tecnologia nella vita di tutti i giorni.
Perché questa tecnologia è giunta sotto i riflettori? Blockchain è solo una moda o ha un valore reale?
Nella serie di articoli di approfondimento su questa tecnologia, di cui questo è il primo, intendiamo dare una risposta a questi quesiti, analizzando le blockchain e le sue implicazioni. Se vi siete mai chiesti come funzioni una blockchain e il motivo per cui essa sia così importante, continuate a leggere.
Prima di entrare nel cuore della blockchain, però, cerchiamo di capire cosa s’intende per “teoria dei giochi” e per reti peer-to-peer.
Fondamentalmente, la blockchain non è altro che l’applicazione della teoria dei giochi alle reti peer-to-peer. Ecco perché in questo articolo approfondiremo questi due concetti.
LA TEORIA DEI GIOCHI
La teoria dei giochi è la scienza matematica che studia situazioni in cui è prevista la cooperazione o il conflitto tra “agenti intelligenti”. Tali situazioni vengono chiamate “giochi”, da cui prende il nome la teoria.
Iniziata come una curiosità matematica, questa teoria ha subito dimostrato una propria rilevanza all’interno della società, aiutando a risolvere problemi sociali critici come la riduzione della criminalità, le crisi diplomatiche internazionali e lo sviluppo economico, per citarne alcuni.
Uno dei primi risultati della teoria dei giochi riguarda la scoperta di “giochi” in cui gli “agenti razionali” non scelgono di collaborare, anche quando la collaborazione è la strategia più proficua. Questi giochi sono definiti come “non collaborativi”.
Se tradizionalmente la teoria dei giochi si presenta con situazioni dai vantaggi ben definiti, evidenziando il comportamento degli “agenti razionali” dalle preferenze conosciute; il mechanism design fa l’opposto. Il mechanism design è un una branca della teoria dei giochi che studia come creare degli incentivi per raggiungere determinati risultati nei giochi, dove gli agenti sono in possesso di informazioni secretate.
Dato che in questi giochi gli agenti razionali sono incentivati ad imbrogliare, lo scopo principale del mechanism design è diretto a risolvere tale problema creando regole che stimolino gli agenti ad osservarle seriamente. Più tecnicamente possiamo dire che lo scopo del mechanism design è quello di combattere la non-collaborazione e di raggiungere la compatibilità degli incentivi.
Dalle aste alle votazioni, dal crowdfunding all’allocazione di risorse a titolo gratuito, il mechanism design si è dimostrato utile nell’evitare situazioni in cui le informazioni secretate potessero essere rivelate dagli agenti per aggirare le regole. Fin dall’inizio sembrava chiaro che i computer sarebbero stati impiegati per definire e far rispettare le regole fondamentali per raggiungere gli obiettivi sociali desiderati.
Il risultato di una ricerca di questo tipo sono proprio i sistemi multi-agente ovvero reti di agenti che interagiscono tra loro grazie ai computer. Spesso nello studiare questi sistemi ci si avvale della teoria dei giochi, di algoritmi per l’ottimizzazione e della statistica bayesiana per assicurare che grazie alle loro specifiche si raggiunga il risultato stabilito.
LE RETI PEER-TO-PEER
I sistemi multi-agente possono dipendere da alcune autorità centrali, ma sono più resilienti quando queste non ci sono. Infatti in presenza di un’autorità centrale che coordina il resto della rete, la sicurezza della stessa dipenderebbe dall’ente centrale. Il nodo, o l’insieme di più nodi, che agisce come un’autorità centrale, rappresenta un single point of failure: significa che il guasto di quel nodo, o dell’insieme di nodi, farebbe crollare tutta la rete. Quindi, affinché i sistemi multi-agenti siano altamente predisposti e ricettivi alle avarie di parti della rete, questi devono essere decentralizzati.
Le reti peer-to-peer (p2p), ovvero le reti di computer decentralizzati, sono immuni alle avarie dei sistemi centralizzati e sono capaci di riorganizzarsi in seguito alla perdita di intere zone della rete. Questo aspetto prende il nome di tolleranza ai guasti.
Perché si parli di sistemi p2p tolleranti ai guasti, devono essere compresenti tre proprietà principali:
- i nodi della rete sono funzionalmente uguali, quindi facilmente sostituibili;
- i nodi comunicano continuamente tra loro, rinviando messaggi quando è necessario;
- le risorse essenziali per far funzionare la rete sono replicate tra i nodi e sono facilmente recuperabili.
Tuttavia la maggior parte delle reti p2p ha una principale vulnerabilità: i nodi maligni coordinati tra loro possono sempre attaccare il sistema con successo. Se ciò accade, una rete p2p può riprendersi sicuramente più velocemente di una rete centralizzata. Nel corso di innumerevoli ricerche questo errore è stato definito come guasto bizantino, dal Problema dei Generali Bizantini; la capacità di una rete di evitare questo errore è indicata come tolleranza ai guasti bizantini.
Nel Problema dei Generali Bizantini, un gruppo di generali bizantini deve concordare se attaccare una città o ritirarsi. Avendo schierato le loro armate ad una certa distanza l’una dall’altra all’interno della stessa città, i generali potrebbero dimostrare preferenze differenti e, alcuni di loro, l’intenzione a tradire gli altri per un tornaconto personale. I traditori potrebbero anche collaborare tra loro per raggiungere il loro scopo, ma l’esercito bizantino deve giungere ad un accordo finale che eviti l’errore. In questo caso, il rischio di comportamenti non collaborativi potrebbe richiedere un approccio di mechanism design.
Dalla pubblicazione di Practical Byzantine Fault Tolerance (PBFT) del 1999, abbondano numerose soluzioni che non si avvalgono della teoria dei giochi nell’ambito di insiemi chiusi di nodi. Di contro, nel caso di insiemi aperti di nodi anonimi, sembra che non sia possibile giungere a dei risultati senza ricorrere alla teoria dei giochi.
Nel prossimo articolo, inizieremo finalmente a correlare la blockchain a quanto approfondito qui. In particolare, vedremo perché il consenso di Nakamoto, alla base di Bitcoin e blockchain, sia:
- la prima soluzione che si affida alla teoria dei giochi, trovando una soluzione al problema dei generali bizantini per i gruppi aperti di nodi anonimi compatibilmente con gli incentivi,
- e un metodo che conduce a nuove applicazioni, capaci di risolvere diversi problemi economici e sociali.
TI È PIACIUTO QUESTO ARTICOLO? LEGGI ANCHE: