Bitcoin: crittografia e reti peer-to-peer

Alcune informazioni storiche e tecnologiche per conoscere ciò che sta alla base della moneta matematica più famosa al mondo

BACKGROUND TECNICO-CULTURALE

Nel 1992 un gruppo di informatici che si ritrova con cadenza mensile a San Francisco presso gli uffici della Cygnus Solutions (poi confluita in Red Hat), apre una mailing list denominata Cypherpunk.
Tramite questa mailing list si confrontano e diffondono le proprie idee programmatori, matematici e anche attivisti, convinti che l’uso della crittografia possa guidare il cambiamento politico e sociale.
È almeno dai primi anni ’80 del XX secolo che cominciano a formarsi gruppi e associazioni che si interrogano sul contributo che l’informatica e le telecomunicazioni stanno apportando alla società.
Si ricordano, a titolo di esempio, il Chaos Computer Club (Berlino, 1981) e la Electronic Frontier Foundation (San Francisco, 1990).

I progressi della scienza dell’informazione diventano noti al grande pubblico con l’introduzione sul mercato dei primi home e personal computer. 
La figura dell’hacker adolescente entra nell’immaginario collettivo grazie al successo del film Wargames (1983), una sorta di moderna fiaba pacifista, ma i più attenti colgono quelle che potrebbero essere le implicazioni future di una presenza sempre più massiccia degli elaboratori elettronici nella vita quotidiana e, soprattutto, il fatto che questi possano essere interconnessi tra loro. Il “grande fratello” di George Orwell sembra non essere poi così lontano.

Il termine cypherpunk deriva dalla fusione delle parole cypher (“cifrario”, ossia l’algoritmo per cifrare o decifrare) e cyberpunk (una corrente artistica nata negli anni ’80 e che ha avuto come massimo esponente lo scrittore William Gibson, autore del romanzo di culto Neuromante).
Nella mailing list Cypherpunk scrivono personaggi già noti nel mondo dell’informatica o che lo diventeranno, come Julian Assange (WikiLeaks), Bram Cohen (BitTorrent), Bruce Schneier (Applied Cryptography) e Philip Zimmermann (Pretty Good Privacy).

Un riferimento importante per questo movimento è costituito dall’articolo Untraceable electronic mail, return addresses, and digital pseudonyms presentato nel 1981 dall’informatico e crittografo David Chaum.
In questo articolo Chaum propone di applicare le tecniche crittografiche a chiave pubblica alle e-mail, al fine di celarne il contenuto a tutti tranne che al mittente e al legittimo destinatario. 
Chaum scrive un altro paper che avrà un forte impatto anche diversi anni dopo la sua pubblicazione, avvenuta nel 1985: Security without Identification: Transaction Systems to Make Big Brother Obsolete.

Altri seguono l’esempio di Cypherpunk. La mailing list Cryptography, ad esempio, è dedicata all’impatto politico delle tecnologie crittografiche.
È in questa mailing list che, il 31 ottobre 2008, l’utente Satoshi Nakamoto annuncia con un breve messaggio la disponibilità online del paper Bitcoin: A Peer-to-Peer Electronic Cash System, all’indirizzo http://www.bitcoin.org/bitcoin.pdf.

Bitcoin è attualmente il più famoso e diffuso esempio di moneta matematica, ovvero di una valuta basata sulla crittografia e su un’architettura informatica di tipo decentrato.

CENNI SULLA CRITTOGRAFIA

L’esigenza di mantenere sicure e segrete le proprie comunicazioni esiste dai tempi antichi. Ci sono, sostanzialmente, due possibilità per perseguire questo scopo: offuscare l’informazione (in un contesto in cui l’esistenza del messaggio rimane nota; in questo caso si parla di crittografia) oppure celare totalmente l’esistenza del messaggio (è il caso della steganografia).
Nel campo delle monete matematiche vengono usate le tecniche di offuscamento dell’informazione.

Chiariamo, di seguito, il significato di alcuni termini.

La crittologia è la scienza che studia le scritture nascoste. Deriva dai termini greci kriptòs (nascosto) e logos (discorso, frase o racconto).

La crittografia (da kryptós e graphía, scrittura) è quella branca della crittologia che studia i metodi per offuscare le informazioni, in maniera tale che sia (quasi) impossibile decifrarle senza conoscere determinati elementi.

La crittoanalisi è quella branca della crittologia che studia i metodi per leggere le informazioni che sono state offuscate, pur non possedendo tutti gli elementi (leciti) teoricamente necessari.

Il testo in chiaro è l’informazione leggibile (talvolta detta “messaggio”).

Il testo cifrato (detto anche crittogramma) è il testo in chiaro che viene offuscato secondo determinate regole.

La decifrazione (talvolta indicata con decifratura) è la procedura che viene applicata al crittogramma per ottenere il testo in chiaro.

Il cifrario (o più semplicemente cifra) è l’algoritmo utilizzato per eseguire operazioni di cifratura e decifratura.

La chiave è un parametro dell’algoritmo crittografico. Al variare della chiave varia anche il testo offuscato, che viene prodotto dall’applicazione del cifrario sul testo in chiaro. La sicurezza di un sistema crittografico è determinata anche dal numero di possibili valori che la chiave può assumere.

Va inoltre segnalato che alcuni autori distinguono tra decifrare, intesa come la procedura che il legittimo destinatario del messaggio applica al crittogramma per ottenere il testo in chiaro e decrittare, intesa come l’attività non autorizzata finalizzata ad ottenere il testo in chiaro pur in assenza della chiave.

CENNI SULLE RETI DECENTRATE

Una rete peer-to-peer (spesso abbreviata P2P), dal punto di vista informatico, è una rete caratterizzata dall’assenza della struttura gerarchica tipica dei sistemi client/server e nella quale ciascun nodo (detto servent) può operare come client o come server a seconda delle circostanze.
Un nodo può essere rappresentato da un computer, da uno smartphone o da un qualsiasi altro elaboratore elettronico in grado di far girare il software necessario per la connessione alla rete.

Nei sistemi client/server i computer client comunicano tra loro sempre passando attraverso il server centrale. I computer coinvolti in una rete peer-to-peer, invece, vengono considerati nodi paritari (in inglese peer significa, appunto, paritario). 
Le reti peer-to-peer serverless differiscono da quelle cosiddette ibride, nelle quali è comunque necessaria la presenza di server per svolgere un limitato numero di compiti.

Storicamente le reti peer-to-peer sono legate al fenomeno del file sharing, ovvero la condivisione di file all’interno di una rete (come Internet, ad esempio).

Una delle componenti critiche delle applicazioni P2P è rappresentato dall’indice delle informazioni, che tiene nota della posizione di tali informazioni nei vari host (terminali colegati alla rete).

Da questo punto di vista le directory centralizzate sono probabilmente molto pratiche, ma possono costituire un collo di bottiglia per le prestazioni della rete e anche un punto debole facilmente attaccabile.
In alternativa esiste l’approccio distribuito, chiamato query flooding, dove l’indice è completamente distribuito ciascun nodo della rete indicizza unicamente i file che rende disponibili alla condivisione. Quindi i vari nodi effettuano una certa richiesta inoltrandola ai nodi vicini, i quali a loro volta faranno lo stesso, finché la ricerca non è soddisfatta.
Questo procedimento presenta comunque dei problemi di scalabilità e di utilizzo delle risorse.

Nel corso degli anni sono diversi i protocolli di trasmissione dati che sono stati studiati per condividere file anche di grandi dimensioni attraverso Internet.
Attualmente il protocollo P2P più utilizzato è probabilmente BitTorrent.

Capitolo successivo: Bitcoin e monete matematiche https://medium.com/@AndreaFerraresso/bitcoin-e-monete-matematiche-10a2744ef5e6

Show your support

Clapping shows how much you appreciated Andrea Ferraresso’s story.