Modulo 3 di 8

Storia tecnica di Bitcoin

3.0 Introduzione

Abstract del White Paper di Bitcoin

Una versione puramente peer-to-peer di denaro elettronico permetterebbe di inviare pagamenti online direttamente da una parte all’altra senza passare attraverso un’istituzione finanziaria. Le firme digitali forniscono parte della soluzione, ma i principali benefici vengono persi se è ancora necessario un terzo fidato per prevenire la doppia spesa. Proponiamo una soluzione al problema della doppia spesa utilizzando una rete peer-to-peer. La rete marca temporalmente le transazioni inserendole in una catena continua di proof-of-work basata su hash, formando un registro che non può essere modificato senza rifare il proof-of-work. La catena più lunga non solo serve come prova della sequenza degli eventi osservati, ma anche come prova che proviene dal più grande pool di potenza di calcolo. Finché la maggioranza della potenza di calcolo è controllata da nodi che non collaborano per attaccare la rete, essi genereranno la catena più lunga e supereranno gli attaccanti. La rete stessa richiede una struttura minima. I messaggi vengono trasmessi secondo il principio del miglior sforzo, e i nodi possono lasciare e rientrare nella rete a piacimento, accettando la catena di proof-of-work più lunga come prova di ciò che è accaduto mentre erano assenti.

Bitcoin non è apparso dal nulla, ma si è basato sul lavoro di molti nelle decadi precedenti. Questo modulo esplorerà le fondamenta di internet su cui si basa Bitcoin, così come la ricerca e lo sviluppo riconosciuti nel whitepaper.

Negli anni ‘70, un gruppo di persone osservò come il governo degli Stati Uniti in particolare cercasse di limitare l’accesso alla crittografia, e si impegnò affinché questa tecnologia fosse resa disponibile a tutti per proteggere la propria privacy online. Alcuni di questi primi pionieri erano anche interessati ai potenziali benefici di un sistema di ‘denaro solido’ digitale che potesse essere usato per conservare e scambiare valore sulla nascente rete internet. Friedrich Hayek – uno dei principali esponenti dell’economia austriaca – aveva immaginato come sarebbe stata una valuta ideale basata sulla concorrenza del libero mercato ben prima dell’era di internet, ma aveva ritenuto che fosse tecnicamente e politicamente irrealizzabile. Oltre alla privacy digitale, questo gruppo, che si è evoluto nei Cypherpunk, ha cercato di realizzare la visione di Hayek per il denaro digitale, ma questi tentativi erano falliti fino a quando Satoshi non pubblicò le sue idee sulla mailing list.

  • Protocollo TCP/IP (1976)
  • Protocolli per sistemi di crittografia a chiave pubblica - Ralph Merkle (1980)
  • Digicash - David Chaum (1989)
  • Marcatura temporale digitale (anni ‘90)
  • Hashcash - Adam Back (1997)
  • BitTorrent - Bram Cohen (2001)
  • POW riutilizzabile - Hal Finney (2004)
  • Bitcoin Whitepaper - Satoshi Nakamoto (2008)

Un’influenza chiave nello sviluppo di Bitcoin è stata l’emergere di questo movimento Cypherpunk negli anni ‘90. Hanno sviluppato diverse tecnologie crittografiche, tra cui la crittografia a chiave pubblica, per permettere agli utenti di comunicare e condividere informazioni in modo sicuro e privato. Molti degli sviluppi descritti qui e le persone coinvolte facevano parte di questo gruppo.

La necessità di denaro digitale era stata identificata e sono stati fatti diversi tentativi per crearlo, ma questi avevano delle limitazioni che ne hanno impedito il successo. Il genio di Satoshi Nakamoto è stato quello di unire queste capacità e, insieme ad alcune innovazioni proprie, costruirci sopra per creare il protocollo Bitcoin che usiamo oggi. Nelle prossime sezioni esploreremo alcuni di questi sviluppi e spiegheremo come hanno contribuito a informare il design di Bitcoin. Discuteremo anche quali erano i pezzi mancanti del puzzle che Satoshi è riuscito a risolvere.

3.1 Lo sviluppo di TCP/IP

La maggior parte di noi conosce i protocolli TCP/IP utilizzati oggi come fondamento di Internet. Le loro origini risalgono alla fine degli anni '70, quando gli scienziati esploravano progetti alternativi ad Arpanet – una rete ancora più antica concepita dal Dipartimento della Difesa degli Stati Uniti per consentire la condivisione delle risorse tra computer remoti. TCP/IP divenne lo standard di protocollo per Arpanet nel 1983, il che portò a renderlo il modello di rete dominante entro la fine degli anni '90 e la base per Internet su cui oggi funziona Bitcoin.

Modello OSI TCP/IP
Applicazione Applicazione
Presentazione Applicazione
Sessione Applicazione
Trasporto Trasporto
Rete Rete
Collegamento dati Collegamento dati
Fisico Fisico

Contemporaneamente allo sviluppo del modello TCP/IP, veniva sviluppato un quadro simile ma più completo dall'Organizzazione Internazionale per la Standardizzazione (ISO) e dall'industria delle telecomunicazioni (CCITT). Il processo per sviluppare nuovi protocolli o suggerire modifiche era lento e macchinoso rispetto all'approccio più decentralizzato utilizzato per sviluppare TCP/IP, portando così al predominio di quest'ultimo approccio oggi.

Richiesta di Modifica

Qualsiasi sviluppo suggerito ai protocolli esistenti o idee per nuovi protocolli può essere proposto nel modello TCP/IP tramite una Richiesta di Modifica (RFC). Queste passano attraverso un processo di approvazione, gestito dall'Internet Engineering Task Force (IETF), e diventano open source una volta approvate per permettere a chiunque di implementarle e adottarle. Alcuni esempi degni di nota:

  • 1969 RFC 1 Documentava come i pacchetti sarebbero stati inviati nell'Arpanet
  • 1981 RFC791 definiva il protocollo Internet V4 – ancora oggi ampiamente adottato
  • 1982 RFC 821 Simple Mail Transfer Protocol
  • 1987 Domain Name System – come i nomi di dominio vengono risolti in indirizzi IP
  • 1999 RFC 2616 Hypertext Transfer Protocol – essenziale per la navigazione web

La Bitcoin Improvement Proposal (BIP) segue un approccio simile alle RFC, ma concentrandosi esclusivamente sui miglioramenti a Bitcoin stesso piuttosto che sullo sviluppo di nuovi o alternativi protocolli. Anche Bitcoin prende spunto da questo modello a strati, e vedrai protocolli aggiuntivi descritti come layer due o tre.

Allo stesso modo in cui gli strati di base del modello TCP/IP sono cambiati relativamente poco negli ultimi decenni, con l'innovazione che avviene negli strati superiori, anche il layer base di Bitcoin si prevede che cambi molto lentamente a questo punto, con soluzioni di scalabilità come Lightning e Liquid che operano sopra di esso.

Un buon esempio di come i protocolli di base diventino difficili da modificare nel tempo è IPv6. L'esaurimento previsto dello spazio degli indirizzi in IPv4 ha creato la necessità di un nuovo protocollo. Il primo standard in bozza è stato creato nel 1998, ma ratificato come standard Internet solo nel 2017. Sebbene abbia risolto molti problemi di IPv4 e sia molto più a prova di futuro, la sua adozione nel settore è ancora molto lenta. Nel frattempo, molti nuovi protocolli sono stati definiti negli strati superiori per abilitare multimedia, email, ecc.

I mattoni fondamentali utilizzati da Bitcoin

Questa separazione dei problemi di interconnettività permette ai protocolli di essere sviluppati indipendentemente dagli strati sopra e sotto. Invece di dover reinventare soluzioni per ogni strato, Bitcoin come rete può fare affidamento sulle capacità sottostanti della rete fornite dagli strati fisico e di collegamento dati.

Livello TCP/IP Originale
Applicazione Utilizza il Domain Name System (DNS) per identificare i nodi vicini. La porta 8333 segnala il protocollo Bitcoin.
Trasporto UDP per comunicazioni FIBRE tra miner per bassa latenza. TCP per comunicazioni P2P tra nodi.
Trasporto Instradamento TOR: consente anonimato e privacy. Protocollo di broadcast: instrada il traffico attraverso la rete.
Collegamento Funziona su qualsiasi mezzo (ad es., Ethernet, Wi-Fi, ecc.)
Fisico Trasmissione fisica tramite wireless, Ethernet o altre interfacce hardware.
Bitcoin è un protocollo neutrale per trasferire valore come HTTPS è un protocollo per trasferire informazioni
  • HTTPS: Siti web sicuri
  • SMTP: Invia email
  • FTP: Trasferisci file
  • DNS: Gestisci nomi di dominio
  • BTC: Conserva e trasferisci valore

Bitcoin permette di trasferire valore in modo affidabile e senza la necessità di una terza parte tra persone o dispositivi attraverso Internet. Si prevede che questo sbloccherà un valore enorme.

3.2 Crittografia a chiave pubblica e protocolli

Internet oggi, e la maggior parte dei sistemi informatici moderni, si basano sulla crittografia, un metodo per oscurare le informazioni in modo che solo il destinatario possa decodificarle. Le basi della crittografia utilizzata per proteggere Bitcoin risalgono agli anni '70.

Il primo problema da risolvere è: come inviare un segreto condiviso su un mezzo non sicuro.

Questo fu affrontato per la prima volta da Whitfield Diffie e Martin Hellman.

Il problema: le due parti – solitamente chiamate Alice e Giovanni – vogliono condividere informazioni segrete attraverso una rete dove altri potrebbero ascoltare. Per raggiungere questo obiettivo, crearono il processo di scambio di chiavi Diffie-Hellman.

Questo segreto condiviso può poi essere utilizzato come valore iniziale per creare numerose chiavi simmetriche per criptare e decriptare messaggi da inviarsi reciprocamente senza condividere la chiave stessa in chiaro.

Poiché la chiave privata non deve mai essere condivisa, e chiavi diverse vengono usate alle due estremità per criptare e decriptare, questo viene definito algoritmo di crittografia asimmetrica.

Casi d'uso:

  • Alice firma un messaggio con la chiave pubblica di Giovanni – che è l'unica persona che può decriptarlo usando la sua chiave privata
  • Alice firma un messaggio con la sua chiave privata – decriptando con la sua chiave pubblica chiunque può verificare che il messaggio sia stato inviato da Alice, senza conoscere la sua chiave privata
  • Combinando questi due approcci con due livelli di crittografia, un messaggio può essere inviato criptato in modo che solo Giovanni possa decriptarlo, e lui può poi verificare che il mittente sia effettivamente Alice

Anche se non accreditato nell'articolo, Ralph Merkle fu determinante nell'aiutare a risolvere quello che fino ad allora era considerato un enigma irrisolvibile: come stabilire o ristabilire una comunicazione privata su una rete aperta e potenzialmente ostile.

Questo approccio da solo è vulnerabile a un attacco brute force, dove un attaccante può prendere i numeri condivisi e ricreare una chiave condivisa, dato abbastanza tempo e risorse, quindi non è la soluzione completa da solo.

Protocolli per i sistemi crittografici a chiave pubblica

Oltre a contribuire al sistema a chiave pubblica Diffie-Hellman descritto sopra, Ralph Merkle continuò a contribuire in questo campo per molti anni, ed è stato fondamentale nello sviluppo di alcuni componenti chiave utilizzati da Bitcoin.

Una funzione di hash crittografica è un algoritmo matematico che prende input di qualsiasi dimensione ed esegue calcoli complessi per restituire un valore hash in bit, che di solito viene rappresentato da un output alfanumerico a lunghezza fissa in formato esadecimale.

  • Gli input possono essere di qualsiasi dimensione
  • L'output è sempre di lunghezza fissa e deterministico (lo stesso input genera sempre lo stesso hash)
  • È facile da verificare ma estremamente difficile invertire il processo per determinare l'input
  • Una minima modifica dei dati altera completamente gli output
Hash function

L'hashing è una parte integrante del protocollo Bitcoin. SHA-256, utilizzato in Bitcoin, è stato creato dalla NSA ed è un esempio di algoritmo di hashing crittografico.

  • Ogni blocco nella catena viene hashato in modo che i dati non possano essere modificati – garantendo l'integrità del registro distribuito
  • L'hash generato deve soddisfare i criteri di 'Proof of work' per essere considerato un blocco valido
  • Alberi di Merkle – utilizzando ramificazioni e hash di hash, gli alberi hash permettono la verifica di grandi insiemi di dati con uno spazio di archiviazione minimo
  • Firme e chiavi basate su hash possono essere utilizzate per wallet, indirizzi e autorizzazione delle transazioni

La verifica distribuita degli stati della blockchain e i modelli di registro append-only resistenti alle revisioni sono resi possibili dall'hashing unidirezionale. Le funzioni hash forniscono un metodo affidabile e deterministico per verificare eventi su registri pubblici come Bitcoin in assenza di un modello di fiducia centralizzato.

Queste nuove capacità nel campo della crittografia erano viste dai loro creatori come l'inizio di una nuova ondata di innovazione in questo settore.

Crittografia a curve ellittiche

Una di queste innovazioni successive si presentò sotto forma della crittografia a curve ellittiche.

La crittografia a curve ellittiche fu introdotta nel 1985 da due scienziati, N. Koblitz e V. Miller. Proposero l'idea di utilizzare punti definiti da curve ellittiche invece dei campi primi finiti, in modo che valga l'assunzione del problema del logaritmo discreto, come comunemente usato nel protocollo standard di scambio di chiavi Diffie-Hellman. I dettagli di come funziona sono oltre lo scopo di questa sezione, ma a grandi linee, una curva ellittica è l'insieme dei punti che soddisfano una specifica equazione matematica.

L'equazione per una curva ellittica appare più o meno così:

Elliptic curve

Questo ha alcune proprietà utili:

  • Simmetria orizzontale. Qualsiasi punto sulla curva può essere riflesso sull'asse x e rimane sulla stessa curva.
  • qualsiasi retta non verticale interseca la curva al massimo in tre punti.
  • Dimensioni compatte delle chiavi sono essenziali per l'archiviazione e la trasmissione efficiente delle chiavi pubbliche nella blockchain.

Queste proprietà possono essere utilizzate per creare coppie di chiavi in modo simile all'algoritmo Diffie-Hellman. Bitcoin utilizza ECDSA, che sta per Elliptic Curve Digital Signature Algorithm. È un processo che utilizza una curva ellittica e un campo finito per 'firmare' dati in modo che terze parti possano verificare l'autenticità della firma mentre il firmatario mantiene la capacità esclusiva di creare la firma. Con bitcoin, i dati che vengono firmati sono la transazione che trasferisce la proprietà.

La parte 'finita' è simile all'approccio 'mod' con Diffie-Hellman, dove il risultato dell'equazione viene diviso e il resto viene utilizzato per assicurare che rientri in un intervallo di numeri.

3.3 DigiCash

Uno dei primi partecipanti alla ‘nuova ondata di interesse’ per la crittografia fu David Chaum. Trascorse i suoi primi anni imparando a violare sistemi informatici e il suo successo gli fece maturare una diffidenza verso i sistemi ritenuti ‘sicuri’. Riconobbe anche un problema fino ad allora trascurato: "come mantenere segreta la conoscenza di chi comunica con chi e quando".

Ideò un protocollo di posta anonima utilizzando la crittografia a chiave pubblica che ‘mescolava’ i messaggi per mantenere anonimi la fonte e la destinazione. Questo sarebbe diventato la base per la rete TOR.

Chaum vedeva i pagamenti digitali allo stesso modo – riconoscendo che ‘le transazioni finanziarie tracciabili effettuate da un individuo possono rivelare molto sui suoi spostamenti, le sue relazioni e il suo stile di vita’. Nel 1980 brevettò un sistema di denaro digitale protetto dalla crittografia che avrebbe costituito la base delle criptovalute. Iniziò anche a esplorare l’idea di utilizzare la crittografia per creare un’economia completamente decentralizzata basata sulla decentralizzazione della messaggistica e dei pagamenti.

I governi sono bravi a tagliare la testa alle reti controllate centralmente come Napster, ma le reti P2P pure come Gnutella e TOR sembrano resistere.Satoshi Nakamoto

I sistemi decentralizzati senza un’autorità centrale – peer-to-peer – offrono diversi vantaggi:

  • Possono crescere rapidamente poiché chiunque può espandere il sistema semplicemente avviando un nuovo nodo senza bisogno di registrazione o approvazione
  • I nodi sono tutti uguali, quindi i guasti possono essere aggirati
  • Nessuna autorità centrale da catturare e compromettere il sistema
  • Sono più difficili da catturare, regolare, tassare o sorvegliare senza punti di controllo centralizzati

Un decennio dopo fondò la sua azienda, Digicash, per creare ‘ecash’, il primo sistema di denaro digitale al mondo. Molti nomi famosi si unirono a Digicash per un periodo, che ebbe un certo successo ma alla fine fallì e dichiarò bancarotta.

Ulteriori sviluppi nel denaro digitale

In un post sul forum del luglio 2010, Satoshi Nakamoto disse: “Bitcoin è un’implementazione della proposta b-money di Wei Dai su Cypherpunks nel 1998 e della proposta Bit Gold di Nick Szabo.”

Sebbene nessuna di queste due idee sia andata oltre la fase di proposta, alcuni dei concetti in esse contenuti hanno chiaramente influenzato lo sviluppo di Bitcoin:

  • Utilizzare la ‘Proof of work’ per assegnare valore monetario al lavoro computazionale
  • Il concetto che il costo del calcolo cambia nel tempo e deve essere preso in considerazione

Ma prima vedremo Hashcash.

3.4 Hashcash

Hashcash è stato creato da Adam Back, un altro dei primi innovatori in questo campo. Adam aveva un forte interesse per i mercati liberi e la privacy su internet, e si imbatté nella mailing list dei Cypherpunk, alla quale si iscrisse diventando un partecipante attivo.

Era molto interessato al denaro digitale e fece alcune proposte su come il gruppo potesse eventualmente collaborare più strettamente su DigiCash con Chaum, ma queste non portarono a nulla. Poi rivolse la sua attenzione a un altro problema emergente: lo spam via email. Lui e gli altri Cypherpunk volevano trovare una soluzione al problema dello spam, dove per gli spammer era banale creare e inviare migliaia di email che intasavano le reti. La sua soluzione innovativa si basava sull'hashing: la capacità, tramite la crittografia, di trasformare qualsiasi dato in una stringa unica e casuale di una lunghezza specifica, per creare l'equivalente di un 'francobollo' digitale che doveva essere aggiunto all'email affinché fosse considerata valida e trasmessa attraverso la rete. Un costo trascurabile per una email autentica, ma proibitivo per uno spammer.

La principale innovazione introdotta da Hashcash fu quella di collegare risorse del mondo reale – la potenza computazionale – a una rete digitale. Fino a quel momento, le risorse digitali potevano essere replicate senza limiti, ma il numero di 'hashcash' creati era limitato da quanta energia le persone erano disposte a investire.

Anche se la soluzione soddisfaceva alcuni dei criteri che Adam riteneva necessari in un sistema di denaro digitale – era anonima, resiliente e trustless – ogni hashcash non era riutilizzabile e non era veramente scarso. Suggerì altri modi in cui questi problemi potevano essere affrontati utilizzando terze parti esterne.

BitGold

Nick Szabo sviluppò il concetto di Hashcash e della proof of work per proporre una soluzione alternativa, che descrisse in una mailing list un anno dopo la pubblicazione di Hashcash, nel 1998.

Pur avvicinandosi a una soluzione, questa proposta presentava ancora diverse sfide.

  • Chi gestirebbe il Registro della proprietà degli hash e come potrebbe essere considerato affidabile?
  • L'hashing generalmente sarebbe diventato più economico nel tempo, una sfida anche per HashCash.

Poiché gli hash collegati sarebbero stati marcati temporalmente, propose una sorta di tracciamento storico della difficoltà dell'hashing nel tempo; un hash precedente avrebbe richiesto più costi di elaborazione rispetto a uno successivo, dato che i costi sarebbero diminuiti. Sfortunatamente, ciò significava che gli hash non sarebbero stati 'fungibili', cioè di valore uguale, considerato un attributo chiave del denaro digitale. Per aiutare a risolvere questo problema, Nick suggerì una sorta di 'free banking' che operasse sopra BitGold e potesse aggregare diversi gruppi di hash valutati allo stesso modo.

B-Money

Poco dopo la proposta di Bit Gold, Wei Dai propose una soluzione simile. Aveva già sviluppato diversi altri strumenti per i Cypherpunk e aveva idee proprie sul denaro digitale.

La sua proposta somigliava a Bit Gold in quanto utilizzava firme digitali per trasferire denaro, e i registri delle transazioni sarebbero stati conservati su un libro mastro, contenente chiavi pubbliche e la quantità di unità di valuta attribuite a ciascuna. Come per Bit-Gold, le terze parti fidate erano considerate punti deboli per la sicurezza, e si riteneva che un sistema di denaro elettronico non dovesse dipendere da un'unica entità per tracciare i saldi, le transazioni o per prevenire la doppia spesa.

Wei Dai propose diverse soluzioni a questi problemi, una delle quali era che, invece di un'entità centrale che mantenesse il libro mastro, TUTTI i nodi ne avrebbero mantenuto una copia. Se tutti gli utenti controllavano il proprio libro mastro e la validità di ogni transazione, finché tutti i nodi rimanevano aggiornati, i libri mastri sarebbero rimasti sincronizzati in tutta la rete. Questo sistema altamente distribuito sarebbe stato difficile da corrompere.

Wei Dai riconobbe che ciò non risolveva il problema dei generali bizantini (1), poiché i nodi potevano facilmente perdere la sincronizzazione o semplicemente mentire. Suggerì metodi alternativi come avere un sottoinsieme di server 'fidati' che mantenessero il libro mastro e creare incentivi economici per mantenere questi server onesti.

Per la politica monetaria, propose di ancorare il potere d'acquisto di B-Money a una sorta di indice dei prezzi al consumo esterno. Voleva che la stessa quantità di B-Money potesse acquistare una quota uguale dell'indice nel tempo, fornendo una certa stabilità dei prezzi. Quindi, chiunque poteva generare nuove unità di valuta fornendo un hash valido, ma la difficoltà di generare un hash poteva cambiare nel tempo in base ai costi della CPU e all'indice dei prezzi, così che ogni unità sarebbe stata 'immutabile'.

3.5 BitTorrent

Un altro progetto che ha avuto un ruolo significativo nel plasmare le criptovalute fino all’arrivo di bitcoin è BitTorrent.

Nel 2001, Bram Cohen pubblicò un progetto per un protocollo chiamato BitTorrent, creato per alimentare un sistema di condivisione di file peer-to-peer. Iniziò a lavorare presso un’azienda chiamata MojoNation, fondata per permettere alle persone di suddividere file riservati in frammenti criptati distribuiti sui computer che eseguivano il software. Una copia del file veniva scaricata contemporaneamente da più computer. Anche se alla fine fallì, questa esperienza introdusse Cohen al mondo della condivisione di file, dove decise che avrebbe potuto creare un protocollo migliore, che consisteva in:

  • Swarm: una comunità di macchine che stanno scaricando o caricando contenuti
  • Tracker: uno strumento dedicato che funziona in modo simile a un motore di ricerca, ma tiene traccia dei file contenuti all’interno dello swarm. Questo permette agli utenti di vedere facilmente e accedere a qualsiasi file di cui abbiano bisogno
  • Client BitTorrent: installato su un computer per accedere al tracker. Nota che lo swarm è l’unico luogo dove i file sono effettivamente conservati
  • Uno schema di incentivi in cui gli utenti che partecipano alla rete come condivisori di file ottengono download più veloci

Somiglianze con Bitcoin:

  • Entrambi i protocolli operano su base peer-to-peer
  • Progettazione decentralizzata
  • I file BitTorrent e il registro di Bitcoin sono distribuiti attraverso la rete
  • Origine open-source (BitTorrent è poi diventato un software closed-source)

3.6 Prova di lavoro riutilizzabile

Hal Finney è un altro famoso membro del movimento Cypherpunk, molto interessato allo sviluppo del denaro elettronico e attivo sulla mailing list.

Decise di fare un altro tentativo nello sviluppo di un sistema di denaro elettronico basato sulla proof-of-work. Fino a quel momento, l'output dell'hash era unico per ogni transazione, ma la sua idea era di creare delle 'prove di lavoro riutilizzabili'.

Lo svantaggio di questo approccio è il server centralizzato, che deve essere considerato affidabile affinché non spenda due volte o venga spento. Per aggirare questo problema, Hal propose di utilizzare software libero e open source che potesse essere ospitato su un componente hardware sicuro e validato in modo indipendente.

La soluzione affrontava comunque alcuni degli stessi problemi delle altre proposte:

  • Il problema della 'gallina e l'uovo' nell'adozione, dove manca un incentivo per gli utenti a richiedere i token, e i venditori non vogliono collegarsi al sistema a meno che gli utenti non vogliano pagare con questi token.
  • È anche probabile che la proof-of-work (POW) diventi più economica nel tempo, man mano che le prestazioni dei computer migliorano, suggerendo che il mercato sarebbe infine inondato di unità di valuta RPOW.
Se la legge di Moore continuerà a essere valida, il costo per creare un token (POW) diminuirà a un ritmo costante ed esponenziale. Tieni presente che questo non è denaro e non è pensato per essere una riserva di valore, ma piuttosto una rappresentazione facilmente scambiabile dello sforzo computazionale.Hal Finney

Queste caratteristiche limitarono l'attrattiva e quindi l'adozione del progetto e, nonostante i suoi migliori sforzi, il progetto finì per essere un altro tentativo fallito di creare denaro elettronico.

3.7 Bitcoin

Dopo molti anni e tentativi falliti, i Cypherpunk avevano per lo più iniziato a perdere interesse nell’idea di una valuta digitale senza permessi, quando Adam Back ricevette un’email con un link a una bozza di white paper intitolata ‘electronic cash without a third party’ da una persona anonima che si faceva chiamare Satoshi Nakamoto.

Per ricapitolare a questo punto, abbiamo almeno le seguenti idee:

  • Firme crittografiche che potevano fornire un certo livello di privacy e anonimato
  • Concetto di una valuta non garantita (B-Money)
  • Proposte (ma non mezzi) per limitare l’emissione di nuova valuta
  • Monete digitali la cui proprietà era attribuita tramite chiavi pubbliche (B-Money) e potevano essere trasferite firmando e riassegnate in base all’indirizzo del destinatario (RPOW e Hashcash)
  • Tutti i nodi mantengono una copia di un registro totalmente distribuito (B-Money) (all’epoca scartato come impraticabile)
  • Protocollo di marcatura temporale – utilizzo dell’hashing ad albero di Merkle per fornire una cronologia degli eventi matematicamente dimostrabile e difficile da falsificare se tutti gli utenti mantengono gli stessi registri
  • Proof of work per collegare uno sforzo reale al sistema (ma utilizzando l’hash stesso come valuta)
  • Reti totalmente decentralizzate in cui tutti i peer sono uguali e possono entrare e uscire dalla rete (BitTorrent)
  • Concetto di collegare nuovi hash ai precedenti (Bit Gold e marcatura temporale)

Quello che mancava in quel momento includeva:

  • Una soluzione praticabile al problema dei ‘generali bizantini’
  • Un metodo per limitare la quantità di denaro in circolazione nonostante i continui miglioramenti hardware
  • Schema di incentivi per far partecipare le persone (problema dell’uovo e della gallina)

L’altra grande differenza tra i tentativi recenti e Bitcoin era che Satoshi aveva lavorato sul codice per un po’ di tempo nel vero spirito originale dei ‘Cypherpunk scrivono codice’ prima di annunciarlo sulle mailing list, a differenza di Bit Gold e B-Money che erano più concettuali.

Qual è stata l’innovazione che ha distinto Bitcoin dai precedenti tentativi di denaro elettronico?

La proof of work sarebbe stata utilizzata come meccanismo di consenso e come modo per fornire sicurezza e immutabilità: invece di usare l’hash come forma di denaro, sarebbe stato utilizzato da un nuovo processo concettuale chiamato mining, in cui un nodo raggruppava un insieme di transazioni, aggiungeva un numero casuale e poi applicava l’hashing al ‘blocco’ di dati. Un blocco valido che soddisfaceva il requisito dell’hash sarebbe stato poi pubblicizzato alla rete. Questi blocchi sarebbero stati collegati tra loro utilizzando l’hash del blocco precedente in ciascuno, e la blockchain più lunga sarebbe stata utilizzata in caso di spareggio, quando nodi diversi avrebbero validato e pubblicizzato blocchi diversi contemporaneamente creando divisioni nella catena. La proof of work è diventata il meccanismo distribuito di spareggio per risolvere il problema dei generali bizantini.

Questi miner ricevevano anche un incentivo a fornire la potenza di calcolo necessaria per eseguire la proof-of-work, venendo assegnati nuovi bitcoin per ogni blocco. La quantità di Bitcoin assegnata è anche programmata per diminuire circa ogni 4 anni fino a quando tutti i Bitcoin saranno stati creati, creando un limite massimo al totale di Bitcoin che sarà mai in circolazione, fissato a 21 milioni.

L’idea più originale fu il modo in cui risolse il problema di quanta moneta viene creata man mano che l’hardware migliora e si può applicare più potenza alla rete. I timestamp di un numero fisso di blocchi (2016) sarebbero stati mediati, e se venivano creati troppo rapidamente, l’hash necessario per creare un nuovo blocco sarebbe stato reso più difficile, se troppo lentamente sarebbe stato reso più facile. Questo era integrato nel protocollo decentralizzato che tutti i nodi eseguono, quindi qualsiasi miner che lo ignorasse avrebbe sprecato energia per minare un blocco senza alcun beneficio, poiché sarebbe stato rifiutato dal resto della rete. Questo aggiustamento garantisce che la creazione di nuovi blocchi rimanga secondo il programma previsto di emissione e fornisce incentivi ai miner per ‘seguire le regole’.


Riepilogo

Molti dei pezzi del puzzle necessari per costruire un sistema di denaro elettronico peer to peer decentralizzato basato su principi di moneta solida erano già presenti prima che Satoshi pubblicasse il suo whitepaper e poco dopo il rilascio iniziale del codice.

La natura di Bitcoin è tale che una volta rilasciata la versione 0.1, il design di base è stato fissato per tutta la sua esistenza
Satoshi Nakamoto

Sebbene molte idee di miglioramento (BIP) siano state proposte e adottate, Bitcoin ha continuato a funzionare in background dal 2009 seguendo il protocollo progettato nella versione iniziale e con pochissime interruzioni. Tutti i miglioramenti sono stati fatti mantenendo la compatibilità retroattiva con tutte le versioni precedenti.

Note
  1. Per una spiegazione del problema dei Generali Bizantini - vedi https://it.wikipedia.org/wiki/Problema_dei_generali_bizantini

↑ Torna all'indice