Approfondimenti

Il Consenso di Nakamoto

Nel  primo articolo abbiamo introdotto la teoria dei giochi, il mechanism design e le reti peer-to-peer per comprendere meglio le tecnologie blockchain. Abbiamo concluso dicendo che il Consenso di Nakamoto, l’insieme di regole che governano Bitcoin e sistemi simili, è stata la prima soluzione al problema dei generali bizantini nel caso di reti peer-to-peer aperte di nodi anonimi.

Quello che non abbiamo fatto è spiegare come mai sia stato così importante avere una moneta digitale basata sulle reti peer-to-peer, perchè la rete debba essere aperta, e il perché dei nodi anonimi. Per rispondere a questi quesiti dobbiamo fare una digressione storica, dopo di che approfondiremo il Consenso di Nakamoto.

 

Cenni Storici

 

 

Negli anni ’90 ci sono stati molti tentativi di costruire monete digitali. Dai primi passi di Internet, i gruppi libertari ne avevano già capito il potere emancipativo. In breve tempo si formò un gruppo in particolare, i cypherpunks o cripto-anarchici, che vedeva in questa tecnologia e nella crittografia strumenti che avrebbero potuto portare alla nascita di comunità virtuali ed economie digitali resistenti ad attacchi politici. La matematica avrebbe garantito l’autenticità, l’authorship e la privacy dei dati, mentre Internet avrebbe garantito l’impossibilità di chiudere queste comunità ed economie, perchè sarebbe stato impossibile farlo senza danneggiare l’intera rete. Monete digitali e contratti rinforzati crittograficamente avrebbero garantito la libertà economica e di associazione che non era possibile avere nel mondo ‘reale’. Altre tecnologie come la realtà virtuale, l’intelligenza artificiale, le stampanti 3d e le nano/biotecnologie avrebbero chiuso il cerchio, assicurando che i loro ideali diventassero realtà.

Tra le persone di questo cerchio c’era David Chaum, un famoso professore di crittografia. Nel 1983 egli inventò le blind signatures (letteralmente firme cieche), uno strumento crittografico che permette di inviare e firmare un valore numerico che può essere verificato e modificato senza essere rivelato. Questa innovazione è alla base delle monete chaumiane e di ciò che ora chiamiamo transazioni confidenziali. Nel 1990 Chaum avviò un’attività in Olanda, Digicash, il cui intento era quello di portare le monete chaumiane nel mondo bancario. La soluzione era ancora centralizzata, e avrebbe avuto bisogno dell’accettazione da parte della banca centrale olandese prima di prender piede. La società comprendeva persone ancor oggi di rilievo nella comunità blockchain, come Nick Szabo e Bryce “Zooko” Wilcox-Ahearn, fondatore di Zcash. Chaum tentava di avere fondi dalla banca centrale olandese, ma i lunghi tempi di negoziazione portarono Digicash alla bancarotta.

 

Nel 1996 nacque E-Gold, una compagnia americana che distribuiva e gestiva una moneta digitale, e-gold, convertibile in oro. E-Gold iniziò a crescere solo dall’anno 2000, e in poco tempo giunse ad una capitalizzazione di 2 miliardi. Nonostante ciò, nel 2009 dovette chiudere i battenti. Le regolamentazioni sulle transazioni economiche si erano fatte più rigide, e gli utenti della compagnia, tutti registrati nella mailing list di E-gold, erano continuamente sotto l’attacco di hackers russi e ucraini. Inoltre, la moneta iniziava ad essere usata anche da truffatori e criminali, per cui la sua reputazione venne minata.

 

Sul finire del decennio, altre tre compagnie americane si lanciarono nella costruzione di monete digitali. Benz e Floor nacquero rispettivamente nel 1998 e nel 1999. Entrambe puntarono ad integrarsi col crescente mondo degli e-commerce e produssero dei sistemi di pagamento e incentivazione di alcuni comportamenti degli utenti basate su una loro moneta digitale centralizzata. Non riuscirono mai a portare avanti il loro business a causa del crollo della “dot-com bubble” nel 1999. Paypal, invece, nata nel 1998, aveva come ambizione la creazione di una moneta globale libera dall’ingegneria finanziaria, ma decisero di cambiare il loro focus concentrandosi sui pagamenti online, facendo la fortuna della compagnia.

 

Ciò che accomuna questi esperimenti, sono:

  • la centralizzazione delle loro monete
  • la mancanza di un valore intrinseco delle loro monete
  • laddove queste aziende sono riuscite a fornire un servizio funzionante, sono state facili vittime di attacchi legali ed informatici, le restanti sono morte perché non erano in grado di far a meno di finanziamenti esterni per poter essere operative.

 

Nel 2004, Hal Finney, un noto professore di crittografia morto nel 2014, inventò RPOW (Reusable Proofs of Work), un sistema centralizzato di pagamento la cui moneta era basata su quella che viene chiamata proof-of-work (POW, prova di lavoro).

POW è un protocollo per verificare grazie ad una prova crittografica che un computer ha speso una certa quantità di risorse computazionali. La prova consiste nella soluzione di un puzzle crittografico costoso e difficile da risolvere ma facilmente verificabile. Per produrla Finney usò hashcash, un algoritmo di Adam Back (noto crittografo, ora presidente di BlockStream), che richiede l’uso di una quantità configurabile di CPU.

Nonostante al tempo ci fossero varie proposte di monete digitali crittografiche (bit-gold di Nick Szabo e b-money di Wei Dai), solo RPOW aveva una sua implementazione, ma restò solo un esperimento.

Vedremo di seguito come questa rivoluzione tecnologica ha permesso la nascita delle criptovalute, le monete digitali crittografiche.

 

Il Consenso di Nakamoto

 

 

E’ chiaro ora che chiunque avesse voluto costruire una moneta digitale all’inizio del secolo doveva trovare un modo di renderla decentralizzata, non facile da attaccare e con un suo valore intrinseco. Nel 2008 Satoshi Nakamoto è riuscito a garantire tutto questo con una rete peer-to-peer, una struttura dati condivisa (la blockchain) e un insieme di regole che chiamiamo Consenso di Nakamoto.

Come abbiamo visto nello scorso articolo, l’unico modo conosciuto prima del paper di Nakamoto per rendere una rete p2p tollerante ai guasti bizantini era avere un gruppo chiuso (o semichiuso) di nodi noti. Una rete di questo tipo può essere molto utile in certi contesti, come i database distribuiti, ma non nel caso di una rete che gestisca transazioni di valore economico tra agenti che non si conoscono o sono in competizione e potrebbero, quindi, avere un incentivo a derubarsi a vicenda.

Tutta la costruzione di Bitcoin si basa sulla premessa che agenti razionali esterni ed interni alla rete Bitcoin abbiano un incentivo a cercare di distruggere la rete o rubare per aumentare i propri ritorni economici o evitare di averli diminuiti. Su queste premesse, piuttosto realistiche, una semplice rete peer-to-peer non avrebbe mai potuto essere utile.

Il Consenso di Nakamoto comprende diverse regole, molte delle quali riguardano la validazione delle transazioni e dei blocchi di transazione. Questi ultimi sono gruppi di transazioni vicine nel tempo, concatenati crittograficamente per comporre la blockchain. Seppur importanti, non sono queste le regole che garantiscono il valore e la sicurezza della blockchain Bitcoin, ma sono: il mining, l’andamento deflazionario della moneta e le regole di selezione del blocco.

 

Il mining è il processo attraverso cui viene creata la moneta Bitcoin. E’ una proof-of-work simile a RPOW, e la sua difficoltà aumenta con il crescere dell’uso della rete. Il processo è strettamente legato alla creazione di nuovi blocchi, e la quantità prodotta di bitcoin viene riconosciuta solo all’approvazione del blocco associato. I nodi che riescono a “minare” bitcoin, guadagnano la quantità minata, ma col passare del tempo questa quantità diminuisce, fino a quando la rete avrà prodotto 21 milioni di bitcoins. Le regole di selezione del blocco servono per scegliere quello da aggiungere alla blockchain. In Bitcoin, i blocchi sono selezionati per ottenere la blockchain con maggior lavoro, ossia maggior CPU spesa nel processo di mining.

 

Come fanno queste semplici regole a garantire la sicurezza della rete e il valore di Bitcoin?

In Bitcoin ognuno può avviare un nodo e connettersi alla rete. I nodi sono anonimi per evitare che siano facilmente attaccabili da agenti esterni. In un ambiente aperto e anonimo, non è possibile punire i singoli nodi per essersi comportati in modo malevolo, per cui bisogna disincentivarli a farlo.

Il processo di mining è stocastico, per cui non è possibile sapere con certezza chi troverà la soluzione, anche se al crescere della difficoltà i nodi capaci di portare avanti il processo diminuiscono. Quindi il mining è una lotteria la cui partecipazione è sempre più costosa. Questo scoraggia tutti gli agenti non disposti ad investire risorse economiche a partecipare al gioco. Con il crescere dell’uso, e quindi del valore, la difficoltà a minare bitcoin aumenta, disincentivando ulteriormente chiunque voglia attaccare la rete. Inoltre, il crescente valore costringe gli agenti onesti ad investire di più nella sicurezza dei propri nodi e, di conseguenza, della rete in generale.

Le regole di validazione assicurano che nessun agente onesto accetti blocchi con informazioni scorrette, perché questo metterebbe a repentaglio l’intera rete. Le regole di selezione del blocco assicurano che solo i blocchi validi in cui è stato investito più valore economico (attraverso il lavoro delle CPU) siano accettati. Anche se dei nodi malevoli volessero proporre una blockchain che li avvantaggia, questo richiederebbe un crescente uso di risorse computazionali, e quindi economiche. Inoltre, la blockchain prodotta dovrebbe competere con blockchains prodotte in anni e nodi oramai molto competitivi. Queste condizioni assicurano la sicurezza della rete, che a sua volta rinforza il valore della moneta, dato dalla deflazione e dalla spesa di risorse computazionali (CPU, storage,..), e quindi economiche (utenze e macchinari), nel processo di mining.

 

Cosa c’entra tutto questo con il mechanism design?

Il processo di mining di Bitcoin è una variante di quella che in mechanism design viene chiamata random serial dictatorship, meccanismo compatibile a livello degli incentivi.

Uno dei problemi più pressanti nel mechanism design è l’allocazione di risorse (case, appalti, lavoro, etc). In questi casi, ogni agente ha informazioni sulle proprie preferenze, la cui rivelazione dovrebbe rendere più semplice l’esecuzione del meccanismo. Purtroppo a volte questo non basta, perchè le preferenze degli attori sono poco diverse tra loro se non uguali. In questi casi la strategia migliore è usare un’allocazione casuale.

La random serial dictatorship consiste proprio in questo: ad ogni iterazione si sceglie casualmente un “dittatore” che decide il da farsi, in base alle sue informazioni. E’ una variante casuale della serial dictatorship. Quest’ultima ordina la lista di “dittatori” secondo un criterio arbitrario ma non casuale, creando problemi di equità e aumentando la probabilità di defezione dal gioco o di mancata partecipazione di attori che altrimenti avrebbero potuto partecipare. Bitcoin aggiunge su questo meccanismo una preselezione basata su un “commitment” (impegno) costoso.

 

Il mining è costoso, e lo è sempre più man mano che la rete acquisisce maggior valore economico. In assenza di un meccanismo simile, chiunque avrebbe un incentivo a presentarsi come candidato “dittatore”, ma potrebbe essere malintenzionato o non avere le capacità e la volontà richieste per assicurare la sicurezza della rete.

Bitcoin costringe gli agenti che vogliono minare a rivelare quanto desiderino diventare dei candidati spendendo risorse economiche che forse non saranno recuperate, dato che comunque il meccanismo di selezione del “dittatore” è casuale.

A sua volta la deflazione rinforza questo meccanismo, poiché assicura ai partecipanti che hanno vinto la lotteria in passato che le loro risorse in futuro avranno maggiore valore, fintanto che la rete è funzionante.

La teoria dei giochi ci dimostra come non sia possibile garantire la risoluzione di giochi potenzialmente non-collaborativi in una sola iterazione, ma nel caso di giochi sequenziali (ossia con più iterazioni), ci sono varie strategie possibili per allineare gli incentivi. La maggior parte di questi è una qualche forma di collusione tra gli agenti (patteggiamenti, corruzione, cartelli, etc). Bitcoin allinea gli incentivi degli agenti nel lungo termine semplicemente attraverso la deflazione, evitando il bisogno di interazioni costose e di soluzioni “politiche”. Questo garantisce nel lungo termine il valore della rete, poiché non c’è il rischio che gli agenti non trovino un consenso.

 

Conclusioni

 

Come abbiamo visto, Bitcoin è una soluzione innovativa al problema dei guasti bizantini, soluzione che permette e richiede la creazione e scambio di valore economico per funzionare. Il valore economico è giustificato dalla spesa di risorse computazionali, e quindi economiche, da parte dei nodi intenzionati a creare moneta. La deflazione garantisce che gli interessi della rete siano assicurati nel lungo termine dagli agenti. Il meccanismo di allocazione di moneta usato da Bitcoin è noto per essere compatibile a livello di incentivi, ma Satoshi lo ha rinforzato ulteriormente attraverso una preselezione costosa.
Nel prossimo articolo vedremo le conseguenze economiche e sociali di questa innovazione, mentre in quello successivo ci soffermeremo sulle alternative più rilevanti al Consenso di Nakamoto e alla blockchain aperta.

 

Di seguito il link agli altri articoli di questa serie:

I perché della blockchain

Gli effetti socio-economici della blockchain

L’innovazione in blockchain – Parte 1

    Tag

  • bitcoin
  • Blockchain
  • consenso di nakamoto
  • cryptographic validation
  • Finanza
  • Fintech
  • Interlogica
  • peer-to-peer
  • Tecnologia