Di Geox
Gli equilibri di Nash vengono spesso utilizzati per descrivere situazioni di cooperazione sociale: consideriamo una situazione dove due persone si stanno scambiando dei beni ed entrambi hanno la possibilità di non adempiere a quanto pattuito. Se entrambi cooperano il vantaggio è definito come (3,3), cioè entrambi beneficiano dello scambio. Se entrambi barano il beneficio sarà zero per entrambi (0,0), quindi dal punto di vista di un esterno interessato al benessere di entrambi, truffare chiaramente non è vantaggioso. Ma se solo uno dei due bara allora il risultato diventa (5,-2) a favore del truffatore, quindi da un punto di vista egoistico può essere vantaggioso. La strategia della collaborazione (3,3) non è un equilibrio di Nash dato che deviare unilateralmente dalla strategia è benefico per chi non segue le regole. L’unico equilibrio di Nash è la situazione in cui entrambi gli attori barano, il che porta loro un nessun guadagno: (0,0). In questo caso una deviazione dalla strategia implica cooperazione, il che porta ad una perdita alla persona che collabora (-2). Quindi la cooperazione è instabile e ne possiamo vedere le conseguenze nel mondo attuale e reale, con la necessità di leggi per penalizzare i disonesti e rendere la truffa meno profittevole della cooperazione.
Per capire il significato del concetto di equilibrio di Nash prendiamo in considerazione un esempio in un campo completamente differente, quello dei giochi di ruolo online multigiocatore di massa (MMORPG). Anche un MMORPG è un protocollo: i giocatori muovono i propri avatar, attaccano, usano incantesimi e le loro azioni cambiano lo stato del mondo in cui operano, e questo nuovo stato viene trasmesso agli altri giocatori.
Ma almeno teoricamente c’è la possibilità di barare: un giocatore potrebbe decidere di assegnarsi 10.000 punti ferita e passare questa informazione al resto dei giocatori. Per risolvere questo problema gli MMORPG sfruttano un approccio centralizzato: i punti ferita di ogni giocatore sono memorizzati su di un server centrale e l’unica forma permessa di interazione con esso è attraverso l’uso di una serie di azioni predefinite, ad esempio movimenti ed incantesimi. Ma anche con questo schema di funzionamento è possibile barare: un giocatore può scrivere infatti un programma (BOT) che gli permetta di accumulare esperienza o oro mentre lui fa dell’altro, oppure sviluppare uno script (un’altra forma di programma) per giocare con bassissimi tempi di reazione. La soluzione a questo tipo di problematiche è il dover utilizzare un programma proprietario, cioè sviluppato da chi gestisce il server e fornisce il servizio. Il giocatore ha sempre qualche modo per barare e l’uso di un server centralizzato è l’unico modo per prevenire o limitare queste possibilità.
Prendiamo in considerazione un altro esempio: lo scaricare un file da internet attraverso BitTorrent. Perché il download abbia successo è necessario che delle persone lo mantengano volontariamente in condivisione (seeding) senza nessuna ricompensa per farlo, che, da un punto di vista egoistico, non è la strategia ottimale. Il numero di file disponibili per il download via torrent infatti sarebbe maggiore se ci fosse un meccanismo per incoraggiare a condividere tutto quello che hanno a disposizione. In alcuni casi si è cercato di mitigare questo problema ancora una volta con lo sviluppo di un software proprietario, attraverso l’uso di client o server che cercano di forzare un rapporto tra quanto scaricato e quanto condiviso. Le soluzioni open source però sono in genere di gran lunga preferibili, soprattutto per quel tipo di programmi che può generare l’interesse del governo, e per cui quindi è meglio non doversi fidare di una entità centrale: quella che sviluppa il programma, e che quindi può essere infiltrata o manipolata.
Vediamo ora come Bitcoin può imporre il corretto funzionamento a tutti i suoi partecipanti.
Ci sono due tipi di partecipanti: gli utenti ed i minatori (ogni minatore è in genere anche un utente, ma non tutti gli utenti sono dei minatori ed è per questo che li prendiamo in considerazione separatamente). Gli utenti hanno la possibilità di eseguire una sola azione: inviare monete. Per farlo hanno bisogno della loro chiave privata e della chiave pubblica del destinatario. Per poter inviare le monete si devono autenticare ai minatori esattamente come un giocatore di un MMORPG si deve autenticare al server. In questo caso la differenza tra un MMORPG e la rete Bitcoin è che i server Bitcoin (i minatori) sono decentralizzati. Anche gli utenti BitTorrent sono decentralizzati, ma questi possono deviare il comportamento da quello che è possibile definire come ottimale per beneficiarne, e cioè scaricare ma senza condividere.
Quali modalità per barare hanno a disposizione gli utenti Bitcoin? Quelle che ricadono in una più delle seguenti categorie:
- Assegnare a sé stessi delle monete
- Agire sulle monete di qualcun altro
- Forzare una transazione di terzi girandola a sé stessi
- Spendere più volte le stesse monete
1. Effettivamente ad alcuni utenti è permesso assegnarsi delle monete, ed in particolare ai minatori. In specifici casi possono assegnarsi 50 Bitcoin, ma se le monete sono più di 50 oppure le altre condizioni al contorno non vengono rispettate, allora questa transazione (o meglio, il blocco che la contiene) non verrà accettata dagli altri minatori della rete.
2. Esistono 3 modi per manipolare le monete di proprietà altrui: (A) non includere una transazione di un certo utente nel blocco di un minatore, (B) eliminare una transazione di un blocco precedente e (C) modificare una transazione cambiando il destinatario di una transazione (questo è il caso 3, esaminato subito sotto). Il caso A è in effetti possibile che si verifichi, ma la transazione rimarrà in rete e verrà probabilmente inclusa da qualcun altro. Il caso B invece risulterà in una mancata corrispondenza dei codici hash che proteggono i blocchi, e quindi tale blocco non sarà accettato da nessun altro nella rete.
3. Una transazione dove la chiave privata non corrisponde correttamente verrà rifiutata da ogni altro utente della rete.
4. Il blocco che conterrà la transazione invalida verrà rifiutato dagli altri minatori della rete.
Fin qui va tutto bene: i blocchi che non seguono esattamente le regole prestabilite non verranno accettati dagli altri minatori o utenti della rete. Ma questo è sufficiente a far sì che il sistema sia stabile? Che incentivo c’è per i minatori a partecipare al processo di punizione di chi non sta al gioco?
Per risolvere questo problema è necessaria una nuova strategia: la punizione di secondo ordine, cioè la punizione di chi non punisce.
I diritti di proprietà possono essere visti come un equilibrio stabile di questo tipo. Deviare unilateralmente dalla strategia di equilibrio secondo la quale chi non rispetta la proprietà privata è punito dalla polizia, ed il sistema di polizia è a sua volta mantenuto da un sistema di punizione di secondo ordine: se qualcuno non partecipa al processo di punizione (nella nostra società ciò avviene indirettamente pagando le tasse) questo viene a sua volta punito dallo stesso sistema. Anche la partecipazione a questo processo di “punizione di secondo ordine” viene imposto: una parte delle tasse viene utilizzata per finanziare il settore che si occupa di rilevare gli evasori fiscali, per cui il sistema è ricorsivamente stabile.
Per impedire che il governo stesso non rispetti queste regole abbiamo la democrazia, che permette ai cittadini di rifiutare dei cattivi governi. Questo modello in realtà ovviamente è fortemente fallato. La rete Bitcoin invece è gestita da un programma, e con i programmi la teoria diventa pratica, e quindi un sistema di punizione di ordine infinitamente ricorsivo è un modello perfettamente stabile da utilizzare.
La punizione del secondo ordine in Bitcoin in effetti è particolarmente semplice: se un minatore crea un blocco a partire da un blocco errato, allora un secondo minatore si accorgerà che c’è un problema nella catena dei blocchi e sia il primo blocco difettoso che quello calcolato dal minatore poco attento (o truffatore) verrà ignorato o scartato e tutto il lavoro svolto dal minatore sarà stato completamente inutile. Se il secondo minatore non farà niente allora probabilmente lo farà il terzo e così via in quanto le monete contenute nelle transazioni di quel blocco non saranno spendibili perché quel blocco non sarà accettato da nessun altro, in questo senso è ricorsivo. Anche gli utenti sono incoraggiati a punire i minatori che hanno inserito transazioni non correttamente firmate dalle giuste chiavi private perché se non lo fanno si troveranno con monete che nessun altro vorrà accettare come pagamento.
È grazie a questo che ora abbiamo un sistema monetario contemporaneamente decentralizzato ed open source: nessuna centralizzazione è necessaria, e nessun programma chiuso (proprietario) diventa indispensabile. Di conseguenza non c’è la necessità di fidarsi di nessun nodo in particolare della rete per fare in modo che il sistema funzioni correttamente, e la natura stessa della sua decentralizzazione farà sì che si venga a creare un sistema più stabile.
Per capire come mai un sistema decentralizzato è intrinsecamente più affidabile è necessario rendersi conto che in un sistema dove le regole vengono imposte da un ente centrale, anche il banco è un giocatore. Cioè l’autorità centrale è essa stessa teoricamente soggetta a comportarsi in modo deviato per profitto. L’unico motivo per cui non lo fa è il meccanismo di punizione che chiamiamo mercato libero: le persone non hanno interesse ad avere un controllore inaffidabile e quindi i controllori hanno un incentivo a rispettare le regole del gioco.
Tra l’altro il libero mercato è anch’esso un sistema di punizione infinitamente ricorsivo: la punizione di secondo ordine, cioè la punizione per quegli individui che non puniscono chi non rispetta le regole smettendo di usufruire dei loro servizi è il crimine stesso. Ad ogni modo, come possiamo vedere molto facilmente con l’esempio dei governi, i sistemi parzialmente centralizzati, sebbene funzionanti in teoria, nella pratica sono difettosi.
Commenti recenti