Blockchain – Capitolo “Prima della blockchain” – bozza

1.1  In principio vi fu la transazione.

 

Dal giorno in cui un Homo sapiens (o un Homo neanderthalensis?) cedette il proprio strumento di selce per avere un pezzo d’ambra posseduto da un altro sapiens il processo di scambio iniziò. E non si fermò più. Quella che avvenne in quel lontano giorno di decine o centinaia di migliaia di anni fa fu una transazione, intesa sia come accordo tra due parti che come operazione commerciale.

Il primo sistema usato fu il baratto, uno scambio diretto di oggetti con oggetti, di prestazioni (“servizi”) con oggetti o con altre prestazioni. Un metodo semplice e naturale, ideale per piccole comunità con pochi beni da scambiare.

Uno dei limiti di questa operazione di scambio è dato dalla necessità di far coincidere i bisogni delle due parti; se Isotta vuole scambiare il tessuto da lei filato con un’anfora di Tristano, questi deve aver bisogno di quel tessuto. Ma se Tristano ha invece bisogno di una medicina, Isotta dovrà cercare qualcuno che abbia quella medicina e che accetti di scambiarla con il suo tessuto.

In mancanza di comunicazione e coordinamento il baratto può risultare inefficiente.[1]

Molto più tardi nella storia umana si svilupparono altri due sistemi: quello basato sulla moneta e quello basato sul credito.

Con le monete si dà un valore numerico alla merce, si cominciano a definire degli standard condivisi, si ha un metodo di pagamento e una riserva di valore e viene a crearsi un “sistema allocativo di mercato”, i prezzi.

Le prime monete erano, in realtà, dei beni – delle “commodities” o ancora delle “collectibles” (oggetti collezionabili) – come le conchiglie, il sale o il bestiame (il “pecus” latino, da cui “pecunia”): si parla in questi casi di moneta naturale o moneta-merce. Solo successivamente si diffusero le monete di metalli preziosi che condividevano con le loro antesignane alcune caratteristiche, come quelle di essere trasportabili, difficilmente falsificabili e facilmente valutabili. In ogni caso, la funzione ultima delle monete è sempre stata quella di mezzo per immagazzinare e trasferire ricchezza (Szabo, 2005).

Il sistema basato sul credito prevede che vi sia una “promessa di pagamento” a fronte della presentazione di un documento scritto; le banconote ne sono un esempio, essendo titoli di credito “al portatore”. Ideate dai cinesi ma rese parte integrante del sistema economico dai banchieri fiorentini e fiamminghi.

Entrambi i sistemi hanno i loro svantaggi: le monete sono rischiose da trasportare, i titoli di credito sono a rischio insolvenza, dato che la “promessa” alla loro base potrebbe non essere rispettata.

Ma per secoli sono stati i pilastri del commercio globale. In particolare il denaro “contante” – monete e banconote – offre diversi aspetti positivi: il grande vantaggio del denaro fisico è che chiunque sia in possesso dell’oggetto fisico è automaticamente il proprietario dell’unità di valore; inoltre le transazioni possono essere anonime (tra venditore e compratore non è necessario conoscere le reciproche identità) ed essere effettuate senza il coinvolgimento di una terza parte. (Aleksander Berentsen, 2018) Questi ultimi sono aspetti su cui ritorneremo, perché caratteristiche basilari delle criptomonete.

Tra le molte “invenzioni” che hanno caratterizzato il settore economico e commerciale nel corso dei secoli citiamo ancora la carta di credito, nata nella sua forma moderna nel 1950 negli Stati Uniti. È importante citare la sua comparsa per due ragioni; in primo luogo, è un esempio di sistema di pagamento differito garantito da una terza parte (la società emittente della carta di credito) e, ancor più, decenni dopo la sua invenzione è stata la prima forma di pagamento utilizzata su Internet.

 

1.1.2.  L’era della rete

 

La comparsa di un canale di comunicazione digitale globale come Internet prima e soprattutto il web poi ha rapidamente reso il mondo un luogo molto più piccolo e ricco di opportunità di ogni tipo, comprese quelle commerciali.

Nei primi anni ’90 si sperimentano le prime forme di compravendita online e la carta di credito è lo strumento che più si adatta al nuovo mezzo. Ma dare gli estremi della carta di credito a un estraneo magari via email era considerato un atto tra il coraggioso e lo stupido.

La sicurezza delle transazioni digitali muoveva i primi passi e si avvertì l’esigenza di avere degli intermediari affidabili che facessero da tramite tra venditore e acquirente, soprattutto per la gestione dei dati della carta di credito durante la transazione. Uno dei primi tentativi fu fatto da una compagnia chiamata First Virtual; le transazioni avvenivano via email, i dettagli della carta non viaggiavano in rete ma gli accrediti al venditore potevano richiedere mesi.

Verso la metà di quel decennio anche i principali circuiti di carte di credito come Visa e MasterCard si posero il problema dei pagamenti online. Insieme a colossi ICT come IBM, Microsoft e Netscape crearono uno standard chiamato SET (Security Electronic Transaction); questo permetteva l’invio crittografato dei dati via browser a un intermediario, il solo che aveva la possibilità di decrittarli e autorizzare il pagamento. Uno di questi servizi fu CyberCash, che creò anche la prima valuta elettronica, il CyberCoin, adatto a micropagamenti.

Torniamo un momento a un grande beneficio del contante, l’anonimato. La domanda che ci si è posti fin dall’inizio di Internet è stata questa: è possibile creare un equivalente digitale del contante? Il problema degli oggetti digitali, come i file, è che sono facilmente duplicabili. Se una valuta digitale fosse duplicabile, si avrebbe il problema del “double spending” (doppia spesa): la stessa moneta si potrebbe spendere più volte. Ora, si poteva tentare di risolvere il problema inserendo un codice seriale associato a ogni moneta, memorizzando in un server la lista dei codici associati al possessore. Ma così sarebbe venuto meno il requisito dell’anonimato.

Verso la fine degli anni ‘80/ inizio ’90 la nascita dell’internet di massa e delle nuove tecnologie di comunicazione tra cui il mobile favorì anche l’emergere del movimento tecno-libertario cypherpunk (sulla scia del cyberpunk); uno delle sue ossessioni era la privacy e un anonimato che garantisse protezione dal nascente grande fratello digitale.

Nel 1992, in una mailing list del movimento, naturalmente crittografata, un suo esponente, Hal Finney (lo incontreremo di nuovo nel proseguo), scrisse:

Qui ci troviamo di fronte ai problemi di perdita della privacy, computerizzazione strisciante, enormi database, maggiore centralizzazione – Chaum (DigiCash) offre una direzione completamente diversa, mette il potere nelle mani di individui invece che di governi e società: il computer può essere usato come strumento per liberare e proteggere le persone, piuttosto che per controllarle.” Cit. in (Centomo, 2017)

Chi è Chaum? David Chaum è un informatico che ha sempre cercato strade e soluzioni per donare al mondo digitale l’anonimato perfetto. Già nel 1979 introdusse il concetto di “mix network”: una rete in cui ogni nodo agisce e “mescola” i messaggi in transito, già crittografati, per renderne difficile la tracciabilità. Un concetto che sarà ripreso dai sistemi di comunicazione anonima come Tor e dalla stessa architettura Bitcoin. Ma Chaum non si fermò qui.

Più tardi, nel 1982, Chaum introdusse il concetto di “blind signature” (firma cieca) (Chaum, 2011) in cui un messaggio viene “firmato” – con un sistema di crittografia a chiave pubblica/privata – senza la necessità di avere informazioni sul messaggio stesso, garantendo l’anonimato. Nel 1990 fondò DigiCash, una compagnia attraverso la quale mise in pratica quanto teorizzato inventando, in pratica, il primo sistema per pagamenti online. Mise anche sotto brevetto la blind signature, limitando fortemente le sperimentazioni. Ma un gruppo di crittografi del movimento cyberpunk crearono una versione “hackerata” di questa proto-valuta digitale, chiamata Magic Cash.

DigiCash non ebbe il successo sperato perché non raggiunse mai la massa critica necessaria di venditori che accettasse questo sistema di pagamento.

Esisteva comunque un problema di fondo legato al concetto di valute digitali: non erano autonome, sganciate cioè da valute reali come il dollaro e dalle loro fluttuazioni direttamente legate a quel sistema economico-finanziario detestato dalla gran parte degli sperimentatori di quel periodo (e di quelli successivi).

Inoltre, per creare una valuta occorre che questa sia un bene scarso, non facilmente ottenibile, che le conferisca valore.

Curiosamente una possibile soluzione per creare “difficoltà artificiale” rendendo difficile coniare monete digitali venne dalle email spam, o meglio dall’esigenza di limitarne la diffusione. Già nel 1992 questo problema era sentito e i crittografi Dwork e Naor proposero che, prima che un utente inviasse un email, il suo computer dovesse risolvere un puzzle matematico che lo tenesse occupato per qualche secondo. Poco danno per utenti normali che inviano poche email, tanto per gli spammer da migliaia di email.  Dopo aver risolto il puzzle, una “prova della risoluzione” veniva allegata all’email. Senza, la mail sarebbe stata rifiutata dal destinatario. Era stata ideata la prima “proof of work”. Ne parleremo con maggior dettaglio più avanti, essendo un concetto base delle blockchain in particolare di quelle pubbliche come Bitcoin. Il concetto del puzzle matematico applicato alle email venne ripreso anche nel 1997 da Adam Back con il nome Hashcash.

Passo dopo passo l’idea di una valuta digitale autonoma si stava concretizzando.

Un altro componente chiave venne teorizzato da Haber e Stornetta nel 1991. Essi proposero un sistema per apporre una marca temporale affidabile a un documento elettronico. Un server si sarebbe occupato di inserire nel file, a mo’ di firma, un “timestamp” e un link al precedente documento “certificato. L’idea di una successione, di una catena di documenti digitali stava anch’essa prendendo piede.

A questo punto si disponeva di due ingredienti per creare un’eventuale moneta digitale: un sistema di marca temporale e il concetto di proof of work per rendere computazionalmente onerosa un’operazione altrimenti semplice.

Un altro ingrediente fondamentale è già stato citato: la crittografia. Diamo un’occhiata più approfondita.

 

 

1.1.3.  RSA, PGP e la crittografia digitale

 

La crittografia probabilmente nacque insieme alla scrittura. Se era possibile trasmettere informazioni in forma scritta e interpretabile da tutti si doveva escogitare un modo per “nascondere” un messaggio affinché non fosse compreso se non dal destinatario. La guerra e lo spionaggio, soprattutto, sono stati per secoli i grandi “committenti” della crittografia, basti pensare al cifrario di Cesare o al codice Enigma dei tedeschi durante la seconda guerra mondiale.

Verso la metà degli anni ’70 del XX secolo si avvertì l’esigenza di avere sistemi crittografici non simmetrici, in cui non esistesse un’unica chiave segreta di crittazione, difficile da gestire tra mittente e destinatario. Questi sistemi si basano su problemi matematici legati a numeri interi molto grandi, facili in una direzione, difficilissimi nell’altra. Per esempio, mentre è facile moltiplicare due numeri primi, non lo è l’operazione opposta, risalire ai due numeri originari.

Nel 1976 due esperti del settore, Whitfield Diffie e Martin Hellman, pubblicarono il primo algoritmo non simmetrico, anche detto a chiave pubblica. Il funzionamento è il seguente:

  • Le due parti, Tristano e Isotta, individuano insieme (e “in chiaro”, nel senso che non sussistono problemi di sicurezza) due numeri primi, uno più grande l’altro minore del primo. Diciamo viene scelto il numero H e il numero k, dove H > k. La coppia (H,k) è la chiave pubblica.
  • Ognuna delle due parti crea poi un altro numero che verrà tenuto segreto: questa è la chiave privata. Diciamo che Tristano sceglie a e Isotta b.
  • Tristano invia A=ka a Isotta. Isotta invia B=kb a Tristano.
  • Tristano calcola Ba=kb*a, Isotta Ab=ka*b. Entrambi ora hanno una stessa chiave segreta, C= ka*b con cui criptare i loro messaggi.

Il punto è che anche intercettando tutte le informazioni che vengono trasmesse, per una terza parte sarà praticamente impossibile arrivare a conoscere la chiave segreta.

L’anno successivo Ronald Rivest, Adi Shamir e Leonard Adleman realizzarono un altro algoritmo a chiave pubblica, RSA, ritenuto uno dei più sicuri in assoluto.[2]

Questa tipologia di algoritmi risultò particolarmente utile nel nascente universo del web. La procedura è sostanzialmente sempre la stessa; se due computer, un sito e un utente, o altri attori della rete devono comunicare in maniera sicura i passi saranno:

  • Tristano utilizza la chiave pubblica di Isotta per inviare quella che si chiama chiave di sessione
  • Isotta decifra questa chiave di sessione con la propria chiave privata
  • Tristano e Isotta comunicano attraverso la chiave di sessione.

 

Chiave ellittica

 

Verso la metà degli anni ’90 la rete si stava consolidando. Allo stesso tempo in diversi ambienti aumentò il timore che i governi potessero usarla per spiare i cittadini, soprattutto leggendo le email. L’attivista anti-nucleare Steve Zimmermann, laureato in Fisica e Matematica, assemblò tecniche e algoritmi già esistenti per creare PGP (“Pretty Good Privacy” ovvero “Riservatezza niente male”), un programma software di facile uso che permetteva la crittazione delle email. Zimmermann lo rilasciò in formato open source non appena ultimato.[3]

PGP utilizza, tra l’altro, RSA e l’SHA (“Secure Hash Algorithm”), un algoritmo capace di creare un’”impronta” di lunghezza fissa a partire da un messaggio di lunghezza qualsiasi. Questo è un algoritmo centrale nella tecnologia blockchain, ne parleremo diffusamente nel seguito.

 

1.1.4.  Verso i bitcoin

Il cammino verso una moneta digitale maturò anche grazie a un gruppo di crittografi riuniti sotto l’ombrello del movimento “cypherpunk”, propugnato inizialmente da Timothy C. May (May, 1992), che esaltava ancor di più la privacy come diritto imprescindibile dell’individuo.[4] Zimmermann e Back, citati in precedenza, ne facevano parte.

Wei Dai, un ingegnere informatico, nel 1998 postò in una mailing-list dei cypherpunks un’ipotesi di protocollo per la creazione e gestione di un “mezzo di scambio” ovvero una moneta chiamata “b-money”; secondo tale protocollo[5] chi inviava e chi riceveva moneta era sotto pseudonimo digitale e ogni transazione era crittata. Inoltre chiunque poteva creare nuova moneta, risolvendo un problema computazionale (Dai, 1998). Le poche idee esposte in questa proposta rispunteranno un decennio più tardi, inglobate nel documento-genesi Bitcoin.

Nello stesso periodo apparve un’altra proposta per una moneta digitale da parte dell’informatico Nick Szabo. Chiamò la sua ipotetica valuta “bit gold” (Szabo, Bit gold, 2005), termine derivato dalle sue riflessioni su come trasformare i bit in qualcosa di valore come l’oro. Per Szabo una moneta digitale doveva essere un bene scarso (come l’oro); per crearne un’unità si doveva risolvere un problema matematico che fosse computazionalmente oneroso per un computer. La risoluzione di questo problema, una stringa di bit marcata temporalmente, rappresentava la prova del lavoro svolto (la proof of work già incontrata) e veniva inviata per verifica a tutti i nodi della rete. Se convalidata, costituiva il punto di partenza per il successivo problema da risolvere. Cosa importante, questa prova (che valeva anche come certificato di proprietà), era conservata in un registro distribuito

Nel 2004 una proposta simile fu lanciata da un altro informatico Hal Finney, già incontrato all’inizio di questo capitolo; nella sua visione un client poteva creare un “token” (un gettone, un’unità di moneta) risolvendo una RPOW (“Reusable Proof of Work”) e inviando la stringa firmata con una chiave privata a un server centrale che la memorizzava. Il token poteva essere ceduto a un altro utente, utilizzando una chiave pubblica per la transazione. Il sistema che Finney aveva in mente era centralizzato ma, citando le sue parole, “con un eccezionale grado di sicurezza fisica unito a un livello senza precedenti di trasparenza e visibilità nel funzionamento del server RPOW (Finney, 2004) (traduzione mia).”

 

1.1.5.  Open source e peer to peer

 

 

 

[1] Da notare che il baratto resiste tuttora in diverse forme, nel mondo digitale e non. Del resto, lo scambio di regali a Natale non è forse un baratto?

[2] Questo algoritmo e altri di questo tipo furono considerati soggetti a forti restrizioni da parte del governo degli Stati Uniti; ne era per esempio vietata la vendita all’estero.

[3] Zimmermann fu indagato e poi prosciolto dal governo statunitense per le ragioni esposte nella nota precedente.

[4] Si legge in “A Cypherpunk’s Manifesto” del 1993: “La privacy è il potere di rivelare selettivamente se stessi al mondo.” (traduzione mia, cit. in (PetriB, 2018))

[5] In realtà i protocolli ipotizzati erano due, il primo dei quali a detta dall’autore stesso non realizzabile perché basato su un canale di comunicazione irrealistico (sincrono e non “hackerabile”)

 

1.  Bibliografia

Aleksander Berentsen, F. S. (2018). A Short Introduction to the World of Cryptocurrencies. Retrieved 03 07, 2018, from Federal Reserve Bank of St. Louis: https://files.stlouisfed.org/files/htdocs/publications/review/2018/01/10/a-short-introduction-to-the-world-of-cryptocurrencies.pdf

Camp, L. J. (2001). First Virtual. In L. J. Camp, Trust and Risk in Internet Commerce (pp. 209-214). Cambridge: The MIT Press.

Centomo, M. (2017, 12 24). I Cypherpunks: da David Chaum a Satoshi Nakamoto. Retrieved 03 08, 2018, from next generation currency: https://nextgenerationcurrency.com/cypherpunk-david-chaum-satoshi-nakamoto/

Chaum, D. (2011, 06 07). Blind Signatures for Untraceable Payments. Retrieved 03 09, 2018, from the Isoblog: http://blog.koehntopp.de/uploads/Chaum.BlindSigForPayment.1982.PDF

Dai, W. (1998). bmoney. Retrieved 03 19, 2018, from weidai.com: http://www.weidai.com/bmoney.txt

Davies, G. (2002). A History of Money – From Ancient Times to the Present Day. Cardiff: University of Wales Press. Retrieved from http://library.uniteddiversity.coop/Money_and_Economics/A_History_of_Money-From_Ancient_Times_to_the_Present_Day.pdf

Finney, H. (2004). RPOW Security. Retrieved 03 20, 2018, from Satoshi Nakamoto Institute: http://nakamotoinstitute.org/finney/rpow/security.html

Genesis block. (2017, 11 30). Retrieved 02 19, 2018, from Bitcoinwiki: https://en.bitcoin.it/wiki/Genesis_block

Giovannini, D. (2011). Introduzione alla crittografia. Diffie-Hellman e RSA. Retrieved 03 16, 2018, from unitn.it: http://www.science.unitn.it/~sala/events2011/LEZ1_DH-RSA.pdf

Greenberg, A. (2016, 06 01). The Father of Online Anonymity Has a Plan to End the Crypto War. Retrieved 03 09, 2018, from Wired: https://www.wired.com/2016/01/david-chaum-father-of-online-anonymity-plan-to-end-the-crypto-wars/

May, T. C. (1992, 11 26). The Crypto Anarchist Manifesto. Retrieved 03 19, 2018, from activism.net: https://www.activism.net/cypherpunk/crypto-anarchy.html

Miccoli, M. (1998, 07 20). Ora anche gli spiccioli viaggiano su Internet. Retrieved 03 08, 2018, from repubblica.it: http://www.repubblica.it/online/internet/spiccioli/spiccioli/spiccioli.html

Moneta. (2018, 02 21). Retrieved 03 06, 2018, from Wikipedia: https://it.wikipedia.org/wiki/Moneta

Peck, M. E. (2012, 05 30). Bitcoin: The Cryptoanarchists’ Answer to Cash. Retrieved 03 19, 2018, from spectrum.ieee.org: https://spectrum.ieee.org/computing/software/bitcoin-the-cryptoanarchists-answer-to-cash

PetriB. (2018, 01 26). The untold history of Bitcoin: Enter the Cypherpunks. Retrieved 03 18, 2018, from The Startup: https://medium.com/swlh/the-untold-history-of-bitcoin-enter-the-cypherpunks-f764dee962a1

Rosa, C. A. (2009). Sicurezza di rete. In C. A. Rosa, Sistemi di cifratura. Storia, principi, algoritmi e tecniche di crittografia. (pp. 314-319). Santarcangelo di Romagna : Maggioli Editore.

Russel, R. (2003). La crittografia. In R. Russel, Hack Proofing (pp. 163-204). Milano: McGraw-Hill.

Satoshi Nakamoto Institute. (2004). RPOW – Reusable Proofs of Work. Retrieved 03 20, 2018, from Satoshi Nakamoto Institute: http://nakamotoinstitute.org/finney/rpow/

Stuart Haber, W. S. (1991). How to Time-Stamp a Digital Document. Cryptology, 3, pp. 99-111. doi:https://doi.org/10.1007/BF00196791

Szabo, N. (2005). Bit gold. Retrieved 03 19, 2018, from unenumerated.blogspot.i: http://unenumerated.blogspot.it/2005/12/bit-gold.html

Szabo, N. (2005). Shelling Out. The Origins of Money. Retrieved 03 20, 2018, from Phonetic Sciences – University of Amsterdam: http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/shell.html

transazióne. (2018, 02 08). Retrieved 03 06, 2018, from Treccani: http://www.treccani.it/vocabolario/transazione/

Sotto licenza Creative Commons
Attribuzione – Non commerciale – Non opere derivate 3.0 Italia (CC BY-NC-ND 3.0 IT)