Skip to content

Origins of Bitcoin & the Web3

Shermin Voshmgir edited this page Jul 21, 2021 · 1 revision

Il libro bianco di Bitcoin non è uscito dal nulla e le reti P2P non sono un fenomeno nuovo. Sono radicate nella prima storia del computer e di Internet, basandosi su decenni di ricerca di reti di computer, crittografia e teoria dei giochi.

Le prime reti di computer furono inventate negli anni '60. ARPANET era una rete privata di computer universitari americani introdotta nel 1969, inizialmente finanziata dall'Advanced Research Projects Agency del Dipartimento della Difesa degli Stati Uniti. Divenne globale nel 1973, quando i computer delle istituzioni di ricerca in Inghilterra e Norvegia furono collegati alla rete. Nel 1974, divenne commerciale con l'integrazione del primo Internet service provider-Telnet. Quello stesso anno, fu pubblicato un documento che descriveva un protocollo di lavoro per la condivisione delle risorse usando la commutazione di pacchetto tra i nodi. Un componente centrale di controllo di questo protocollo era il Transmission Control Protocol (TCP). Nel 1982, l'architettura monolitica del TCP fu divisa in un'architettura modulare che consisteva in un livello di trasporto (TCP) e il livello Internet, noto anche come "Internet Protocol" (IP). Un'altra svolta fu raggiunta nel 1983 con l'introduzione del DNS, che rese più leggibile l'indirizzamento dei nodi all'interno della rete.

In queste reti di computer di prima generazione, l'obiettivo principale era quello di collegare diversi computer tra loro utilizzando una rete pubblica, risolvendo il problema dell'indirizzamento dei computer e della trasmissione dei dati. L'architettura di rete era ancora basata sulla logica client-server, e la comunicazione sicura non era un obiettivo principale nei primi giorni di Internet, sebbene alcuni ricercatori erano intrigati proprio da questa domanda. La ricerca crittografica di Ralph Merkle nei primi anni '70 ha gettato le basi per una comunicazione sicura su reti P2P. Il suo lavoro ha concettualizzato come risolvere la "comunicazione sicura su canali insicuri" come una rete di computer, e ha gettato le basi per la moderna crittografia a chiave pubblica. Nella sua dissertazione, Merkle ha inoltre descritto un metodo per costruire funzioni hash crittografiche resistenti alle collisioni. Ha anche depositato un brevetto per un tipo speciale di tabella hash chiamato albero di Merkle che permetteva una verifica più efficiente e sicura del contenuto di grandi strutture di dati.

Nel 1976, Whitfield Diffie e Martin Hellman costruirono su alcune delle sue idee e crearono un meccanismo per lo scambio sicuro di chiavi crittografiche su una rete pubblica. Fu uno dei primi esempi implementati di scambio di chiavi pubbliche e introdusse anche il concetto di firma digitale. Prima che i metodi a chiave pubblica fossero inventati, le chiavi crittografiche dovevano essere trasmesse in forma fisica, quindi lo scambio sicuro di chiavi digitali su reti pubbliche era un lavoro innovativo, senza il quale Bitcoin e le tecnologie successive non avrebbero funzionato. Nel 1978, Ron Rivest, Adi Shamir e Leonard Adleman trovarono un modo per creare una funzione crittografica a senso unico che fosse difficile da invertire. Il loro algoritmo - ora noto come RSA - ha introdotto l'era della crittografia asimmetrica, che poi si è evoluta nell'uso delle curve ellittiche nella crittografia - suggerito indipendentemente da Neal Koblitz e Victor S. Miller nel 1985, e anch'esso elemento tecnologico chiave della rete Bitcoin.

Nelle reti di computer pubbliche la struttura del sistema - topologia della rete, latenza della rete e numero di computer - non è nota in anticipo. La rete può essere composta di computer e collegamenti di rete sconosciuti e non affidabili. La dimensione e la composizione della rete possono anche cambiare in qualsiasi momento durante l'esecuzione di un programma distribuito. La capacità di fornire e mantenere un livello accettabile di servizio a fronte di processi parzialmente fallaci è quindi essenziale per la resilienza di una rete. All'epoca l'attenzione era concentrata sulla trasmissione dei dati in una rete pubblica, che era già un problema difficile da risolvere. Né TCP né IP risolvevano la questione di dove immagazzinare e come gestire i dati. Successivamente, per ragioni economiche, l'immagazzinamento e la gestione centralizzati dei dati divennero mainstream. Il problema con le reti client-server è che gli amministratori di sistema, o le istituzioni che controllano i server, hanno il controllo esclusivo sui dati, e questo rende questi sistemi soggetti a censura, corruzione e attacchi.

Nel frattempo, con la introduzione del personal computer e della suite dei protocolli Internet, la rete Internet si diffuse in modo importante. Tuttavia, l'usabilità era ancora un problema. Bisognava operare in Internet usando le linee di comando, cioè il linguaggio dei computer. Tim Berners-Lee ha risolto questo problema con la sua visione del World Wide Web. Ha introdotto uno standard per la creazione di siti web visivi con un linguaggio di markup relativamente semplice, e la navigazione sul Web con link, che puntano ad altri siti web con un semplice click. Da un punto di vista editoriale, il WWW ha permesso a tutti di contribuire alla stessa stregua alle informazioni disponibili su Internet. Tuttavia, i dati erano ancora immagazzinati e gestiti dietro i "recinti" dei server.

Nel 1982, David Chaum introdusse il concetto di "firma cieca", che garantiva la privacy del mittente delle informazioni. Fu concettualizzato per l'uso nei sistemi di voto e nei sistemi di contanti digitali. Chaum ha introdotto l'idea di “Ecash” come un sistema di moneta elettronica crittografica anonima o denaro elettronico, che fu commercializzato attraverso la sua azienda "Digicash" e usato come sistema di micropagamenti in una banca statunitense dal 1995 al 1998. Il sistema fu sciolto nel 1998, forse perché era in anticipo sui tempi, dato che le applicazioni di e-commerce non erano ancora così diffuse.

Nel 1991, Stuart Haber e W. Scott Stornetta introdussero un sistema in cui i timestamp dei documenti non potevano essere manomessi, introducendo i primi lavori accademici su una catena di blocchi crittograficamente sicura. Il loro scopo era di certificare quando un documento era stato creato o modificato "in un mondo in cui tutti i documenti di testo, audio, immagini e video sono in forma digitale e in supporti facilmente modificabili". Nelle loro proposte iniziali, usavano servizi centralizzati di timestamping. Hanno poi cercato di distribuire la fiducia richiedendo a diversi utenti - che sono stati selezionati attraverso generatori di numeri pseudo-casuali - di eseguire il timestamp dell'hash, invece di un'istituzione centralizzata. Un anno dopo, nel 1992, Bayer, Haber e Stornetta scrissero un altro articolo dove inclusero gli alberi di Merkle nel meccanismo. Questo migliorò l'efficienza del sistema permettendo di raccogliere diversi certificati di documenti in un unico blocco.

Nel 1997, Adam Back introdusse “Hashcash,” la prima funzione Proof-of-Work, per limitare lo spam e-mail e gli attacchi denial of service costringendo i computer ad investire con il lavoro computazionale. L'idea originale fu proposta da Cynthia Dwork e Moni Naor nel loro documento del 1992, "Pricing via Processing or Combatting Junk Mail".

Nel 2004, il concetto introdotto da Hashcash è stato anche usato come meccanismo di estrazione in "B-money", una proposta di Wei Dai per un "sistema di denaro elettronico anonimo e distribuito". È stato proposto sulla "mailing list cypherpunk", che rappresentava un gruppo di attivisti che sostengono l'uso di crittografia forte e tecnologie di miglioramento della privacy su Internet. Molti degli individui sopra menzionati che hanno contribuito alle tecnologie chiave che sono state poi utilizzate in Bitcoin erano "cypherpunks" attivi.

Nel 1998, Nick Szabo ha progettato un meccanismo per una valuta digitale decentralizzata — “BitGold”— nel quale ha implementato molte delle sue idee precedenti sugli smart contract e ha aggiunto un algoritmo di consenso basato su PoW in cui la potenza di calcolo sarebbe stata spesa per risolvere i puzzle crittografici (maggiori informazioni in Parte 1 - Smart Contract). BitGold non è mai stato distribuito, forse perché non risolveva il problema della doppia spesa (double spending) in un modo completamente decentralizzato e resistente agli attacchi di tipo Sybil. Molti hanno ipotizzato che Szabo sia Satoshi Nakamoto, il creatore anonimo di Bitcoin, ma è una voce che lui ha sempre negato.

Nel 1999, "Napster", un'applicazione per la condivisione di musica, ha introdotto il concetto di reti P2P che ha cambiato il modo in cui i dati venivano memorizzati e distribuiti su Internet. Napster ha creato una rete virtuale sovrapposta per applicazioni decentrailzzate di condivisione di file, che era indipendente dalla rete fisica di Internet, eliminando il "single point of failure" dei sistemi centralizzati. Tuttavia, Napster si basava sul funzionamento dei server centrali di indicizzazione, ed era quindi comunque esposto a disservizi, Venne chiuso dopo alcune denunce di violazione del copyright e una battaglia legale.

Una nuova famiglia di protocolli di condivisione di file, guidata da Gnutella nel 2000, ha eliminato questi single point of failure. Il nuovo sistema permetteva agli utenti di trovarsi l'un l'altro e connettersi a distanza, cercando in ogni nodo della rete, e quindi era più decentralizzato e resistente alla censura. Mentre Gnutella ha risolto il problema della decentralizzazione, non ha risolto il problema della privacy. Le reti di file sharing di terza generazione come BitTorrent usavano tabelle hash distribuite per memorizzare le posizioni delle risorse in tutta la rete, in modo crittograficamente sicuro. Le tabelle hash distribuite non solo sostituivano i server di indicizzazione, ma garantivano anche l'anonimato dei suoi attori di rete e di tutti i dati condivisi in rete. Queste tabelle hash distribuite sono ora utilizzate anche dalle reti blockchain e da altri protocolli Web3 come IPFS ed Ethereum. Mentre le reti P2P, dalla nascita di Napster, hanno risolto il problema della distribuzione efficiente dei dati all'interno di una rete, non hanno risolto la validazione o la verifica decentralizzata dei dati. Né hanno risolto il problema del free-rider, il fatto che un gran numero di utenti utilizzerebbe le risorse condivise da altri utenti senza contribuire con i propri file. Gli utenti non avevano un incentivo economico a breve termine per caricare i file e invece consumavano risorse degradando anche le proprie prestazioni.

Nel 2004, Hal Finney ha introdotto un sistema PoW riutilizzabile (RPoW), un concetto in cui il valore di un token è garantito dal valore delle risorse del mondo reale necessarie per "coniare" un token PoW. Il fatto che Finney abbia ricevuto la prima transazione Bitcoin da Satoshi Nakamoto nel 2009, e che apparentemente ha vissuto nella stessa città di una persona chiamata "Dorian Satoshi Nakamoto", ha portato a speculazioni che potrebbe essere stato Satoshi, una voce che anche lui ha sempre negato.

Le moderne reti P2P come Napster soffrivano della mancanza di un meccanismo di incentivo per i contributi alla rete, e le prime idee di e-cash non erano in grado di difendersi dagli attacchi di tipo Sybil. Il white paper di Bitcoin, pubblicato nel 2008 con lo pseudonimo di Satoshi Nakamoto, ha risolto questi problemi proponendo un meccanismo di incentivo resistente ai Sybil attack per la validazione collettiva dei dati. IL meccanismo della Proof-of-Work ha risolto il problema del free-rider delle precedenti reti P2P introducendo incentivi tokenizzati per motivare tutti gli attori a contribuire al sistema in modo onesto. Bitcoin è stato proposto all'indomani della crisi finanziaria del 2008 e il crollo di grandi banche come Lehman Brothers. L'obiettivo era quello di fornire un sistema di denaro elettronico P2P senza banche. Mentre le prime specifiche sono state implementate da Satoshi, un gruppo di individui dedicati ha gradualmente preso il sopravvento per implementare un ulteriore sviluppo del codice, che è stato finalizzato e distribuito all'inizio del 2009. È interessante notare che il libro bianco di Bitcoin menzionava solo una "catena di blocchi". Il termine "blockchain" si è diffuso anni dopo, quando la gente ha iniziato a replicare la base di codice Bitcoin per sviluppare protocolli simili basati su blockchain.

Anche se Bitcoin non è mai stato progettato avendo in mente la condivisione dei file, alla fine ha ispirato una nuova classe di strutture di archiviazione P2P, un elemento cruciale per il Web3. Le reti di archiviazione decentralizzate possono ora usare il potere dei token per costruire sull'eredità dei precedenti protocolli di condivisione dei file, usando una blockchain come strato di stato universale. Bitcoin ha anche stimolato molte ricerche sui meccanismi di consenso resistenti ai Sybil attack. La resistenza a questi attacchi, tuttavia, dipende anche dalla resilienza delle ipotesi fatte sul modo in cui gli attori della rete reagiranno agli incentivi economici. Come le persone reagiscono agli incentivi è stato a lungo un campo di studio in economia. Nel 2007, Hurwicz, Maskin e Myerson hanno vinto il premio Nobel per l'economia per la loro ricerca sul Mechanism Design, un campo di ricerca emergente (maggiori informazioni in Parte 4 - Token purpose-driven).

Riferimenti e approfondimenti

  • Andersen, D.; Balakrishnan, H.; Kaashoek, M.; Morris, R.: “Resilient Overlay Networks, Association for Computing Machinery”, October 2001: http://nms.lcs.mit.edu/papers/ron-sosp2001.pdf
  • Bayer, Dave; Stuart A., Haber; Wakefield Scott, Stornetta; „Improving the Efficiency And Reliability of Digital Time-Stamping“. Sequences II: Methods in Communication, Security and Computer Science. Springer-Verlag: 329–334, 1992
  • Bertsekas, D.; Gallager, R.: „Data Networks,“ Prentice Hall, 1992
  • Chaum, David, „Blind signatures for untraceable payments“, Advances in Cryptology Proceedings. 82 (3): 199–203, 1983: http://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2009/Chaum.BlindSigForPayment.1982.PDF
  • Chaum, D.; Fiat, A.; Naor, M.; „Untraceable electronic cash“, Advances in Cryptology - CRYPTO ‚ 88 Proceedings. New York: Springer-Verlag. pp. 319–327, 1990: http://blog.koehntopp.de/uploads/chaum_fiat_naor_ecash.pdf
  • Coulouris, George; Jean Dollimore; Tim Kindberg; Gordon Blair: “Distributed Systems: Concepts and Design”, 5th Edition, Addison-Wesley, 2011 Kademlia: A Peer-to-peer information system based on the XOR Metric http://www.scs.stanford.edu/~dm/home/papers/
  • Diffie, W.; Hellman, M.E.; “New Directions in Cryptography” IEEE Transactions on Information Theory, VOL. IT-22, NO. 6, Nov. 1976: https://ee.stanford.edu/~hellman/publications/24.pdf
  • Haber, S.; Stornetta, W. S.; „How to time-stamp a digital document“, Journal of Cryptology. 3 (2), 1991
  • Hughes, Eric; “A Cypherpunk‘s Manifesto”, 1993: https://www.activism.net/cypherpunk/manifesto.html
  • Hurwicz, Leonid; Reiter, Stanley: ”Designing Economic Mechanisms”, Cambridge University, 200
  • Nisan, Noam; Ronen, Amir; „Algorithmic mechanism design“, Proceedings of the 31st ACM Symposium on Theory of Computing (STOC ‚99), pp.