“Il tempo è ancora il grande mistero per noi. Non è altro che un concetto; non sappiamo nemmeno se esiste…”
Clifford D. Simak, Il pianeta di Shakespeare (1976)
Il tempo è denaro, o almeno così si dice. Ne consegue che il denaro è anche tempo: una rappresentazione dell’energia economica collettiva immagazzinata dall’umanità. Tuttavia, il legame tra tempo e denaro è più intricato di quanto possa sembrare all’inizio. Se il denaro non richiede tempo per essere creato, non funziona molto bene come denaro, o non a lungo. Più profondamente, come vedremo, tenere traccia delle cose nel regno dell’informazione implica sempre tenere traccia del tempo.
Non appena il denaro diventa digitale, dobbiamo accordarci su una definizione di tempo, e qui sta tutto il problema. Si potrebbe pensare che leggere l’ora sia facile come dare un’occhiata a qualsiasi orologio nelle vicinanze, e si avrebbe ragione quando si tratta di compiti quotidiani. Tuttavia, quando si tratta di sincronizzare lo stato di una rete globale, ostile e distribuita, dire l’ora diventa un problema quasi intrattabile. Come si fa a dire l’ora se non ci si può fidare degli orologi? Come si crea il concetto di un tempo singolare se il sistema si estende per tutta la galassia? Come si fa a misurare il tempo in un regno senza tempo? E comunque, cos’è il tempo?
Per rispondere a queste domande, dovremo dare un’occhiata più da vicino al concetto stesso di tempo e a come Bitcoin crea il proprio tempo: il block time — più comunemente conosciuto come block height (altezza di blocco). Esploreremo perché il problema del mantenimento di tempo è intimamente legato al mantenimento dei record, perché non esiste un tempo assoluto in un sistema decentralizzato, e come Bitcoin usa la causalità e l’imprevedibilità per costruire il proprio senso del presente.
I dispositivi di misurazione del tempo hanno trasformato le civiltà più di una volta. Come Lewis Mumford ha sottolineato nel 1934: “L’orologio, non la macchina a vapore, è la macchina-chiave della moderna era industriale”. Oggi, è di nuovo un dispositivo di misurazione del tempo che sta trasformando la nostra civiltà: un orologio, non i computer, è la vera macchina-chiave della moderna era informatica. E questo orologio è Bitcoin.
Tenere il conto delle cose
“Lasciate che il bambino impari a contare le cose, ottenendo così la nozione di numero. Queste cose sono, ai fini del conteggio, considerate uguali, e possono essere oggetti singoli o gruppi.”
David Eugene Smith, The Teaching of Elementary Mathematics (1900)
In termini molto generali, ci sono due modi per tenere traccia delle cose: gettoni fisici e libri mastri. Si possono usare direttamente artefatti del mondo reale, ad esempio, dare a qualcuno una conchiglia, una moneta o qualche altra cosa tangibile, oppure si può replicare lo stato del mondo scrivendo ciò che è successo su un pezzo di carta.
Immagina di essere un pastore e di volerti assicurare che tutto il tuo gregge sia tornato a casa. Puoi mettere un collare ad ogni pecora, e non appena una pecora torna a casa, semplicemente togliete il collare e lo appendete nel tuo deposito. Se hai una gruccia per ogni collare, saprai che ogni pecora è tornata sana e salva non appena tutte le grucce sono piene. Naturalmente, puoi anche contarle e tenere una lista. Tuttavia, dovrai assicurarti di creare una nuova lista ogni volta che inizi a contare, e dovrai anche assicurarti di non contare una singola pecora due volte (o non contarla affatto).
Il denaro è essenzialmente uno strumento per tenere traccia di chi deve cosa a chi. A grandi linee, tutto ciò che abbiamo usato come denaro fino ad ora rientra in due categorie: artefatti fisici e liste informative. O, per usare un linguaggio più comune: gettoni e libri mastri.
È importante rendersi conto della differenza intrinseca di queste categorie, quindi permettetemi di sottolinearla esplicitamente: Il primo metodo — un token fisico — rappresenta direttamente lo stato delle cose. Il secondo — un libro mastro — riflette indirettamente lo stato delle cose. Ognuno ha vantaggi e svantaggi. Per esempio, i token sono fisici e distribuiti; i libri mastri sono informativi e centralizzati. I token sono intrinsecamente senza fiducia; i libri mastri non lo sono.
Nel regno digitale — non importa quanto intensamente i guru del marketing cerchino di convincerti del contrario — possiamo solo usare i libri mastri. È un regno informativo, non fisico. Anche se si chiama un certo tipo di informazione un “token”, è ancora un pezzo di informazione malleabile, scritto su un disco rigido o su qualche altro mezzo che può contenere informazioni, rendendolo effettivamente un record informativo.
La natura del libro mastro di tutte le informazioni digitali è la causa principale del problema della doppia spesa. Le informazioni non rappresentano mai direttamente lo stato del mondo. Inoltre, il movimento delle informazioni implica la copia. L’informazione esiste in un posto e per “spostarla” bisogna copiarla in un altro posto e cancellarla all’origine. Questo problema non esiste nel regno fisico. Nel regno fisico, possiamo effettivamente spostare le cose da A a B. Il regno informatico non ha questa proprietà. Se vuoi “spostare” un’informazione dalla lista A alla lista B, devi copiarla da A a B. Non c’è altro modo.
Un altro modo di pensarla è in termini di unicità. Le pedine fisiche sono composti unici di atomi il cui assemblaggio non è facilmente replicabile. L’informazione pura non ha questa proprietà. Se puoi leggere l’informazione, puoi anche copiarla perfettamente. In pratica, ne consegue che i token fisici sono unici e i token digitali no. Direi addirittura che “token digitale” è un termine improprio. Un token può rappresentare informazioni segrete, ma non rappresenterà mai un’informazione unica, singolare e non copiabile.
Questa differenza di proprietà mostra che non c’è davvero alcun modo di “passare” le informazioni. È impossibile tramandare un token digitale come si farebbe con un token fisico, poiché non si può mai essere sicuri che il proprietario originale abbia distrutto le informazioni. I token digitali, come tutte le informazioni, possono solo essere diffusi, come un’idea.
“… se tu hai una mela e io ho una mela, e ci scambiamo le mele — ognuno di noi si ritrova con una sola mela. Ma se tu ed io abbiamo un’idea e ci scambiamo le idee, ognuno di noi si ritrova con due idee.”
Charles F. Brannan (1949)
I token fisici — ciò che chiamiamo beni fisici al portatore, o “contanti” — sono liberi da questo dilemma. Nel mondo reale, se mi dai una moneta, la tua moneta è andata. Non esiste una duplicazione magica della moneta, e l’unico modo per darmela è consegnarmela fisicamente. Le leggi della fisica non ti permettono di spendere due volte.
Mentre la doppia spesa esiste nel regno non digitale — mi viene in mente George Parker, un artista della truffa che ha notoriamente “doppio speso” il ponte di Brooklyn e altri punti di riferimento — richiede un inganno elaborato e acquirenti creduloni. Non così nel regno digitale.
Nel regno digitale, dato che abbiamo sempre a che fare con le informazioni, la doppia spesa è un problema intrinseco. Come schiunque abbia mai copiato un file o usato il copia-e-incolla sa, l’informazione è qualcosa che si può copiare perfettamente, e non è legata al mezzo che la ospita. Se avete una fotografia digitale, per esempio, potete copiarla un milione di volte, memorizzare alcune copie su una chiavetta USB e inviarla a migliaia di persone diverse. Le copie perfette sono possibili perché l’informazione permette una correzione degli errori impeccabile, che elimina la degradazione. E per finire, non c’è praticamente nessun costo per la duplicazione e nessun modo per dire quale fosse l’originale.
Di nuovo: quando si tratta di informazioni, la copia è tutto ciò che esiste. Semplicemente non c’è modo di spostare informazioni digitali da A a B. Le informazioni vengono sempre copiate da A a B, e se il processo di copia ha avuto successo, la copia originale di A viene cancellata. Questo è il motivo per cui il problema della doppia spesa è così complicato. In assenza di un’autorità centrale, non c’è modo di spostare qualcosa da A a B in modo affidabile. Bisogna sempre confidare che l’originale venga cancellato. Un effetto collaterale naturale è che, quando si tratta di informazioni digitali, è impossibile dire quante copie esistono e dove queste copie potrebbero essere.
Per questo motivo, usare “gettoni” digitali come denaro non può e non potrà mai funzionare. Poiché i gettoni derivano la loro affidabilità dall’essere difficili da riprodurre come risultato della loro costruzione fisica unica, questo vantaggio scompare nel regno digitale. Nel regno digitale, non ci si può fidare dei token. Come risultato della natura delle proprietà intrinseche dell’informazione, l’unico formato praticabile per il denaro digitale non è un token ma un libro mastro — il che ci porta al problema del tempo.
I Gettoni Fisici Sono Senza Tempo, i Libri Mastri No
“Perché le cose viste sono temporanee, ma quelle non viste sono eterne.”
Paolo di Tarso, Corinzi 4:18b
Quando si tratta di gettoni fisici, il tempo di una transazione non ha importanza. O hai le monete in tasca, o non le hai; o puoi spenderle, o non puoi. Il semplice atto di possesso è l’unico prerequisito per spendere. Le leggi della natura si occupano del resto. In questo senso, i gettoni fisici sono senza fiducia e senza tempo.
Quando si tratta di libri mastri, il possesso fisico cade nel dimenticatoio. Chiunque abbia il controllo del libro mastro deve assicurarsi che le cose siano in ordine. Ciò che altrimenti è dato dalle leggi fisiche, cioè che non si può spendere denaro che non si ha e non si può spendere denaro che si è già speso in precedenza, deve essere fatto rispettare da regole create dall’uomo. Sono queste regole che governano il funzionamento ordinato e il mantenimento di un libro mastro, non le leggi fisiche.
Passare dalle leggi fisiche alle regole fatte dall’uomo è il nocciolo della questione. Le regole fatte dall’uomo possono essere piegate e infrante, le leggi fisiche non tanto. Per esempio, non si può semplicemente “inventare” una moneta d’oro fisica. Bisogna estrarla dal terreno. Si può, tuttavia, assolutamente inventare una moneta d’oro sulla carta. Per farlo, basta aggiungere una voce al libro mastro e darsi un paio di monete. O, nel caso delle banche centrali, si aggiungono semplicemente un paio di trilioni con la pressione di qualche tasto del computer. (Gli esperti di finanza lo chiamano “Reipotecazione”, “Riserva Bancaria Frazionaria” o “Quantitative Easing” — ma non fatevi ingannare, è la stessa cosa: inventare denaro).
Per mantenere onesti i libri contabili e coloro che li manipolano, sono necessari controlli regolari e indipendenti. La capacità di rendicontare ogni singola voce in un libro mastro non è un lusso. I revisori devono essere in grado di esaminare i libri contabili — a ritroso nel tempo — per mantenerli onesti e funzionanti. Senza timestamp (marcature temporali) affidabili, verificare la coerenza interna di un libro mastro è impossibile. Un meccanismo per stabilire un ordine inequivocabile è essenziale.
Senza un senso assoluto del tempo, non c’è modo di avere un ordine definito delle transazioni. E senza un ordine definito delle transazioni, le regole di un libro mastro non possono essere seguite. In che altro modo si può essere sicuri di quanti soldi si hanno effettivamente? In quale altro modo si può essere sicuri che le cose siano in ordine?
La distinzione tra token (gettoni) e libri mastri evidenzia la necessità di tenere traccia del tempo. Nel regno fisico, le monete sono oggetti senza tempo che possono essere scambiati senza sorveglianza. Nel regno digitale, la marcatura delle monete richiede una marcatura temporale.
La coniazione centralizzata delle monete
“Il tempo: un grande incisore, o cancellatore.”
Yahia Lababidi (nato nel 1973)
Il modo comune per risolvere il problema della doppia spesa — il problema di assicurarsi che un trasferimento digitale avvenga solo una volta — è quello di avere una lista centrale di transazioni. Una volta che si ha una lista centrale di transazioni, si ha un unico libro mastro che può agire come unica fonte di verità. Risolvere il problema delle doppie spese è facile come passare attraverso la lista e assicurarsi che tutto si aggiunga correttamente. Questo è il modo in cui PayPal, Alipay, e tutte le banche di questo mondo — comprese le banche centrali — risolvono il problema della doppia spesa: tramite l’autorità centrale.
“Il problema, naturalmente, è che il beneficiario non può verificare che uno dei proprietari non abbia speso due volte la moneta. Una soluzione comune è quella di introdurre un’autorità centrale fidata, o una zecca, che controlla ogni transazione per la doppia spesa. […] Il problema con questa soluzione è che il destino dell’intero sistema monetario dipende dalla società che gestisce la zecca, con ogni transazione che deve passare attraverso loro, proprio come una banca.”
Satoshi Nakamoto (2009)
Vale la pena sottolineare che Satoshi non è riuscito a rendere le informazioni non copiabili. Ogni parte di bitcoin — il suo codice sorgente, il libro mastro, la vostra chiave privata — può essere copiata. Tutto questo può essere duplicato e manomesso. Tuttavia, Satoshi è riuscito a costruire un sistema che rende le copie che violano le regole completamente e totalmente inutili. La rete Bitcoin esegue una danza intricata per decidere quali copie sono utili e quali no, ed è questa danza che porta la scarsità nel regno digitale. E come in ogni danza, è necessario un metro di misura temporale per dettare il ritmo.
Anche un libro mastro centralizzato può risolvere il problema della doppia spesa solo se ha un modo coerente per tenere traccia del tempo. Bisogna sempre sapere chi ha dato quanto a chi e, soprattutto: quando. Nel regno dell’informazione, non c’è conteggio delle monete senza conteggio del tempo.
“Va sottolineato che l’impossibilità di associare eventi a punti nel tempo nei sistemi distribuiti è stato il problema irrisolto che precludeva la possibilità che un libro mastro decentralizzato fosse mai possibile fino a quando Satoshi Nakamoto ha inventato una soluzione.”
Gregory Trubetskoy (2018)
Tempo Decentralizzato
“Il tempo fa passare tutte le cose.”
Eschilo (525 a.C. — 456 a.C.)
Il tempo e l’ordine hanno una relazione molto intima. Come Leslie Lamport ha sottolineato nel suo articolo del 1978 — Time, Clocks, and the Ordering of Events in a Distributed System: “Il concetto di tempo è fondamentale per il nostro modo di pensare. Deriva dal concetto più basilare dell’ordine in cui gli eventi si verificano”. Senza un punto centrale di coordinamento, le nozioni apparentemente intuitive di “prima”, “dopo” e “simultaneamente” si rompono. Nelle parole di Lamport: “il concetto di ‘accadere prima’ definisce un ordine parziale invariante degli eventi in un sistema multiprocesso distribuito”.
In parole povere: Chi dovrebbe essere responsabile del tempo se non è permesso mettere qualcuno al comando? Come si può avere un orologio affidabile se non c’è un quadro di riferimento centrale?
Si potrebbe pensare che risolvere questo problema sia facile perché ognuno potrebbe semplicemente usare il proprio orologio. Questo funziona solo se l’orologio di tutti è accurato e, cosa più importante, se tutti si comportano bene. In un sistema conflittuale, fare affidamento su orologi individuali sarebbe un disastro. E, a causa della relatività, non funziona in modo coerente nello spazio.
Come esperimento del pensiero, pensa a come potresti imbrogliare il sistema se ognuno fosse incaricato di tenere il tempo per se stesso. Potresti fingere che la transazione che stai inviando ora sia in realtà di ieri — è solo stata ritardata per qualche motivo — così, avresti ancora tutti i soldi che hai speso oggi. A causa della comunicazione asincrona che è inerente ad ogni sistema decentralizzato, questo scenario è più di un esperimento teorico. I messaggi vengono effettivamente ritardati, i timestamp sono imprecisi, e grazie agli effetti relativistici e al limite naturale di velocità del nostro universo, è tutt’altro che facile distinguere l’ordine delle cose senza un’autorità centrale o un osservatore.
“Chi c’è? Toc toc.”
Uno scherzo asincrono
Per illustrare meglio l’impossibilità del problema, guardiamo un esempio concreto. Immagina che tu e il tuo partner commerciale abbiate entrambi accesso al conto bancario della vostra azienda. Fate affari in tutto il mondo, quindi il vostro conto bancario è in Svizzera, voi siete a New York e il vostro socio d’affari è a Sydney. Per te, è il 3 gennaio, e ti stai godendo una bella domenica sera nel tuo hotel. Per lei, è già lunedì mattina, così decide di comprare la colazione usando la carta di debito del vostro conto corrente condiviso. Il costo è di 27 dollari e il saldo disponibile è di 615 dollari. L’ora locale è le 8:21 del mattino.
Allo stesso tempo, tu stai per pagare il tuo soggiorno con un’altra carta di debito collegata allo stesso conto bancario. Il costo è di 599 dollari. Il saldo disponibile è di 615$. L’ora locale è le 17:21.
Così succede che — esattamente nello stesso momento — entrambi strisciate la carta. Cosa succede? (Cari fisici, vi prego di scusare il mio uso di “lo stesso momento” — ignoreremo per ora gli effetti relativistici e il fatto che non esiste un tempo assoluto nel nostro universo. Ignoreremo anche che il concetto di eventi sincroni non esiste realmente. Bitcoin è già abbastanza complicato!)
Il libro mastro centrale della vostra banca probabilmente riceverà una transazione prima dell’altra, quindi uno di voi sarà fortunato, l’altro non tanto. Se le transazioni dovessero arrivare nello stesso tick — diciamo nello stesso millisecondo — la banca dovrebbe decidere chi deve spendere i soldi.
Ora, cosa accadrebbe se non ci fosse una banca? Chi decide chi è il primo a strisciare? E se non foste solo voi due, ma centinaia o addirittura migliaia di persone che si coordinano? E se non vi fidaste di quelle persone? E se alcune di queste persone stessero cercando di imbrogliare, per esempio, spostando indietro i loro orologi in modo che sembri che abbiano speso i soldi un paio di minuti prima?
“Uno strumento legato al tempo [è] necessario per stabilire un ordine canonico e per far rispettare una storia unica in assenza di un coordinatore centrale.”
Giacomo Zucco, Alla scoperta di Bitcoin (2019)
Questo problema è proprio il motivo per cui tutti i precedenti tentativi di denaro digitale richiedevano un registro centralizzato. Ci si doveva sempre fidare di qualcuno che identificasse correttamente l’ordine delle cose. Era necessaria una parte centralizzata per mantenere il tempo.
Bitcoin risolve questo problema reinventando il tempo stesso. Dice no ai secondi e sì ai blocchi.
Mantenere il Tempo, Un Blocco Alla Volta
“La gloria del tempo è quella di calmare i re contendenti,
Smascherare la falsità e portare la verità alla luce,
Per imprimere il sigillo del tempo nelle cose invecchiate,
Svegliare il mattino e sorvegliare la notte,
Per dare torto a chi ha torto finché non rende ragione;”
William Shakespeare, Lo Stupro di Lucrezia (1594)
Tutti gli orologi si basano su processi periodici, qualcosa che potremmo chiamare “ticchettio”. Il familiare ticchettio di un orologio del nonno è, in sostanza, lo stesso del ronzio molecolare-atomico dei nostri moderni orologi al quarzo e al cesio. Qualcosa oscilla — o vibra — e noi semplicemente contiamo queste oscillazioni fino a quando non si raggiunge un minuto o un secondo.
Per i grandi orologi a pendolo, queste oscillazioni sono lunghe e facili da vedere. Per gli orologi più piccoli e specializzati, sono necessarie attrezzature speciali. La frequenza di un orologio — quanto spesso ticchetta — dipende dal suo caso d’uso.
La maggior parte degli orologi ha una frequenza fissa. Dopo tutto, vogliamo sapere l’ora con precisione. Ci sono, tuttavia, orologi che hanno una frequenza variabile. Un metronomo, per esempio, ha una frequenza variabile che si può impostare prima di farlo ticchettare. Mentre un metronomo mantiene il suo ritmo costante una volta impostato, il tempo di Bitcoin varia per ogni tick perché il suo meccanismo interno è probabilistico. Lo scopo, tuttavia, è lo stesso: mantenere viva la musica, in modo che la danza possa continuare.
Il fatto che Bitcoin sia un orologio è nascosto in bella vista. Infatti, Satoshi sottolinea che la rete Bitcoin nel suo complesso agisce come un orologio, o, nelle sue parole: un server di timestamp distribuito.
“In questo articolo, proponiamo una soluzione al problema della doppia spesa utilizzando un server di timestamp distribuito peer-to-peer per generare una prova computazionale dell’ordine cronologico delle transazioni.”
Satoshi Nakamoto (2009)
Che il timestamping fosse il problema principale da risolvere è evidente anche esaminando il riferimento alla fine del whitepaper di Bitcoin. Degli otto riferimenti in totale, tre riguardano il timestamping:
· Come marcare il tempo di un documento digitale di S. Haber, W.S. Stornetta (1991)
· Migliorare l’efficienza e l’affidabilità della marcatura temporale digitale di D. Bayer, S. Haber, W.S. Stornetta (1992)
· Progettazione di un servizio di timestamping sicuro con requisiti minimi di fiducia di H. Massias, X.S. Avila, e J.-J. Quisquater (maggio 1999)
Come Haber e Stornetta hanno delineato nel 1991, la marcatura temporale digitale riguarda procedure pratiche dal punto di vista computazionale che rendono impossibile per un utente — o un avversario, se è per questo — retrodatare o inoltrare un documento digitale. Contrariamente ai documenti fisici, i documenti digitali sono facili da manomettere, e il cambiamento non lascia necessariamente segni rivelatori sul supporto fisico stesso. Nel regno digitale, le falsificazioni e le manipolazioni possono essere perfette.
La natura malleabile delle informazioni rende la marcatura temporale dei documenti digitali un processo elaborato e sofisticato. Le soluzioni ingenue non funzionano. Prendiamo un documento di testo, per esempio. Non si può semplicemente aggiungere la data alla fine del documento, dato che chiunque — compreso te stesso — potrebbe semplicemente cambiare la data in futuro. Si potrebbe anche inventare qualsiasi data in primo luogo.
Il Tempo E’ Una Catena di Causalità
“In una visione estrema, il mondo può essere visto solo come connessioni, nient’altro.”
Tim Berners-Lee, Weaving the Web (1999)
Inventare date è un problema generale, anche nel regno non digitale. Ciò che è noto nel mondo dei sequestri come “Autenticazione tramite giornale” è una soluzione generale al problema dei timestamp arbitrari.
Questo funziona perché un giornale è difficile da falsificare e facile da verificare. È difficile da falsificare perché la prima pagina di oggi si riferisce agli eventi di ieri, eventi che non avrebbero potuto essere previsti dal rapitore se la foto fosse stata vecchia di settimane. Per procura di questi eventi, la foto è la prova che l’ostaggio era ancora vivo il giorno in cui il giornale è uscito.
Questo metodo evidenzia uno dei concetti chiave quando si parla di tempo: la causalità. La freccia del tempo descrive la relazione causale degli eventi. Niente causalità, niente tempo. La causalità è anche il motivo per cui le funzioni hash crittografiche sono così cruciali quando si tratta di timbrare i documenti nel cyberspazio: introducono una relazione causale. Poiché è praticamente impossibile creare un hash crittografico valido senza avere il documento in primo luogo, si introduce una relazione causale tra il documento e l’hash: i dati in questione sono esistiti prima, l’hash è stato generato dopo. In altre parole: senza l’irreversibilità di calcolo delle funzioni unidirezionali, non ci sarebbe causalità nel cyberspazio.
Con questo blocco di costruzione causale in atto, si può arrivare a schemi che creano una catena di eventi, collegando causalmente A a B a C e così via. In questo senso, la marcatura temporale digitale sicura ci sposta da un luogo senza tempo nell’etere al regno della storia digitale.
“La causalità fissa gli eventi nel tempo. Se un evento è stato determinato da certi eventi precedenti, e determina certi eventi successivi, allora l’evento è inserito in modo sicuro nel suo posto nella storia.”
Bayer, Haber, Stornetta (1992)
Va da sé che la causalità è della massima importanza quando si tratta di calcoli economici. E poiché un libro mastro non è altro che l’incarnazione dei calcoli economici di più partecipanti cooperanti, la causalità è essenziale per ogni libro mastro.
“Abbiamo bisogno di un sistema che permetta ai partecipanti di accordarsi su un’unica storia […]. La soluzione che proponiamo inizia con un server di timestamp.”
Satoshi Nakamoto (2009)
È affascinante che tutti i pezzi del puzzle che fanno funzionare Bitcoin esistevano già. Già nel 1991, Haber e Stornetta hanno introdotto due schemi che rendono “difficile o impossibile produrre falsi timbri.” Il primo si basa su una terza parte fidata; il secondo, uno schema di “fiducia distribuita” elaborato, non lo fa. Gli autori hanno anche identificato i problemi inerenti alla fiducia in una catena causale di eventi e ciò che sarebbe necessario per riscrivere la storia. Nelle loro parole, “l’unico guasto possibile è quello di preparare una falsa catena di time-stamp, abbastanza lunga da esaurire lo sfidante più sospettoso che si possa prevedere.” Un vettore di attacco simile esiste oggi in Bitcoin, sotto forma di un attacco del 51% (di più su questo in un capitolo successivo).
Un anno dopo, Bayer, Haber e Stornetta si sono basati sul loro lavoro precedente e hanno proposto di usare alberi invece di semplici liste collegate per legare insieme gli eventi. Ciò che oggi conosciamo come alberi di Merkle sono semplicemente strutture di dati efficienti per creare un hash da più hash in modo deterministico. Per il timestamping, questo significa che è possibile raggruppare in modo efficiente più eventi in un “tick”. Nello stesso articolo, gli autori propongono che il modello di fiducia distribuito introdotto nel 1991 potrebbe essere migliorato effettuando un “torneo mondiale” ricorrente per determinare un singolo “vincitore” che pubblica ampiamente l’hash risultante in qualche luogo pubblico, come un giornale. Vi suona familiare?
Come vedremo, si scopre che i giornali sono anche un modo eccellente per pensare al secondo ingrediente del tempo: l’imprevedibilità.
Causalità e Imprevedibilità
“Il tempo non è una realtà [hupostasis], ma un concetto [noêma] o una misura [metron]…”
Antifonte il Sofista, Sulla verità (III secolo d.C.)
Mentre la causalità è essenziale, non è sufficiente. Abbiamo anche bisogno di imprevedibilità affinché il tempo scorra. Nel regno fisico, osserviamo i processi naturali per descrivere il flusso del tempo. Osserviamo un aumento generale dell’entropia e lo chiamiamo la freccia del tempo. Anche se le leggi della natura sembrano essere ignare della direzione di questa freccia nella maggior parte dei casi, certe cose non possono essere annullate, in termini pratici. Non si può sbrogliare un uovo, come si dice.
Allo stesso modo, le funzioni che aumentano l’entropia sono necessarie per stabilire una freccia del tempo nel regno digitale. Proprio come è praticamente impossibile decifrare un uovo, è praticamente impossibile decifrare un hash SHA256 o una firma crittografica.
Senza questo aumento di entropia, potremmo andare avanti e indietro nel tempo volenti o nolenti. La sequenza dei numeri di Fibonacci, per esempio, è causale ma non entropica. Ogni numero della sequenza è causato dai due numeri che lo hanno preceduto. In questo senso, è una catena causale. Tuttavia, non è utile per raccontare il tempo perché è completamente prevedibile. Nello stesso modo in cui un rapitore non può semplicemente stare davanti a un calendario che mostra la data corrente, non possiamo usare processi prevedibili come prova del tempo. Dobbiamo sempre fare affidamento su qualcosa che non può essere previsto in anticipo, come la prima pagina del giornale di oggi.
Bitcoin si basa su due fonti di imprevedibilità: transazioni e proof-of-work. Proprio come nessuno può prevedere come sarà il giornale di domani, nessuno può prevedere come sarà il prossimo blocco di Bitcoin. Non puoi prevedere quali transazioni saranno incluse perché non puoi prevedere quali transazioni saranno trasmesse in futuro. E, ancora più importante, non si può prevedere chi troverà la soluzione all’attuale puzzle proof-of-work e quale sarà questa soluzione.
A differenza del giornale del rapitore, tuttavia, il proof-of-work è fisicamente legato a ciò che è successo direttamente. Non è solo una registrazione di un evento — è l’evento stesso. È l’immediatezza probabilistica della prova del lavoro che rimuove la fiducia dall’equazione. L’unico modo per trovare un proof-of-work valido è fare molte ipotesi, e fare una singola ipotesi richiede un po’ di tempo. La somma probabilistica di queste ipotesi è ciò che costruisce la catena del tempo che è Bitcoin.
Utilizzando la causalità delle hash-chains e l’imprevedibilità del proof-of-work, la rete Bitcoin fornisce un meccanismo per stabilire una storia indiscutibile degli eventi a cui si è assistito. Senza causalità, ciò che è venuto prima e ciò che è venuto dopo è impossibile da distinguere. Senza imprevedibilità, la causalità non ha senso.
Ciò che è intuitivamente compreso da ogni sequestratore è stato esplicitamente sottolineato da Bayer, Haber e Stornetta nel 1992: “Per stabilire che un documento è stato creato dopo un dato momento nel tempo, è necessario riportare eventi che non potevano essere previsti prima che accadessero.”
È la combinazione di causalità e imprevedibilità che permette la creazione di un “ora” artificiale nel regno digitale altrimenti senza tempo. Come Bayer, Haber e Stornetta sottolineano nel loro documento del 1991: “la sequenza dei client che richiedono i time-stamp e gli hash che presentano non possono essere conosciuti in anticipo. Quindi, se includiamo i bit della precedente sequenza di richieste dei clienti nel certificato firmato, allora sappiamo che il time-stamp è avvenuto dopo queste richieste. […] Ma il requisito di includere bit da documenti precedenti nel certificato può anche essere usato per risolvere il problema di vincolare il tempo nell’altra direzione, perché la società di marcatura temporale non può emettere certificati successivi se non ha in mano la richiesta corrente”.
Tutti i pezzi del puzzle erano già lì. Quello che Satoshi è riuscito a fare è metterli insieme in un modo da rimuovere la “time-stamping company” dall’equazione.
Prova del tempo
“Causa latet: vis est notissima.
La causa è nascosta, ma il risultato è noto.”
Ovidio, Metamorfosi, IV. 287 (8 D.C.)
Ricapitoliamo: per usare il denaro nel regno digitale, dobbiamo affidarci ai libri mastri. Per rendere affidabili i libri mastri, è necessario un ordine inequivocabile. Per stabilire l’ordine, sono necessari i timestamp. Quindi, se vogliamo avere denaro senza fiducia nel regno digitale, dobbiamo rimuovere qualsiasi entità che crei e gestisca i timestamp e qualsiasi entità singola che sia responsabile del tempo stesso.
C’è voluto il genio di Satoshi Nakamoto per realizzare la soluzione: “Per implementare un server distribuito di timestamp su base peer-to-peer, dovremo usare un sistema proof-of-work simile a Hashcash di Adam Back”.
Dobbiamo usare un sistema proof-of-work perché abbiamo bisogno di qualcosa che sia nativo del regno digitale. Una volta capito che il regno digitale è di natura informativa, l’ovvia conclusione è che la computazione è tutto ciò che abbiamo. Se il vostro mondo è fatto di dati, la manipolazione dei dati è tutto ciò che c’è.
Proof-of-work funziona in un ambiente peer-to-peer perché è senza fiducia, ed è senza fiducia perché è scollegato da tutti gli input esterni — come le letture degli orologi (o dei giornali, in questo caso). Si basa su una e una sola cosa: il calcolo richiede lavoro, e nel nostro universo, il lavoro richiede energia e tempo.
Collegare i Tempi
“So che funziona per me.
Mentre attraversiamo il ponte — il ponte in fiamme -
Con le fiamme dietro di noi,
Siamo di fronte alla linea.
Siamo io e te, baby, contro il mondo.”
Kate Bush, Burning Bridge (1985)
Senza la Proof of Work (prova del lavoro), ci si imbatterebbe sempre nel problema dell’oracolo perché il regno fisico e il regno informatico sono eternamente scollegati. I segni sulla tua lista di pecore non sono le tue pecore, la mappa non è il territorio, e qualunque cosa sia stata scritta sul giornale di ieri non è necessariamente quello che è successo nel mondo reale. Allo stesso modo, solo perché si usa un orologio del mondo reale per scrivere un timestamp non significa che questo sia effettivamente quello che era il tempo.
Detto senza mezzi termini, semplicemente non c’è modo di fidarsi che i dati rappresentino la realtà, tranne se la realtà in questione è insita nei dati stessi. La cosa brillante del proof-of-work aggiustato alla difficoltà di Bitcoin è che crea la propria realtà, insieme al proprio spazio e tempo.
La proof-of-work fornisce una connessione diretta tra il regno digitale e quello fisico. Più profondamente, è l’unica connessione che può essere stabilita in modo affidabile. Tutto il resto dipenderà sempre da input esterni.
La difficoltà di estrarre un nuovo blocco di Bitcoin è regolata per assicurarsi che il filo sottile tra il tempo di Bitcoin e il nostro tempo rimanga intatto. Come un orologio, la difficoltà di estrazione si riaggiusta ogni 2016 ticks (blocchi). L’obiettivo di questo riaggiustamento è quello di mantenere il tempo medio tra i tick (blocchi) a dieci minuti. Sono questi dieci minuti che mantengono una connessione stabile tra il regno fisico e quello informatico. Di conseguenza, è necessario un senso del tempo umano per riaggiustare i tick dell’orologio Bitcoin. Un riaggiustamento puramente basato sui blocchi non funzionerebbe perché sarebbe completamente scollegato dal nostro mondo umano, e l’intero scopo del riaggiustamento è quello di impedire a noi ingegnosi umani di trovare blocchi troppo veloci (o troppo lenti).
Come ci ha mostrato Einstein, il tempo non è una cosa statica. Non esiste un tempo universale su cui possiamo fare affidamento. Il tempo è relativo e la simultaneità non esiste. Questo fatto da solo rende tutti i timestamp — specialmente attraverso grandi distanze — intrinsecamente inaffidabili, anche senza attori avversari. (Questo è il motivo per cui i timestamp dei satelliti GPS devono essere regolati costantemente, a proposito).
Per Bitcoin, il fatto che i nostri timestamp umani siano imprecisi non ha molta importanza. Non importa nemmeno che non abbiamo un quadro di riferimento assoluto, in primo luogo. Devono solo essere abbastanza precisi da calcolare una media in qualche modo affidabile tra i 2016 blocchi. Per garantire ciò, il timestamp “meatspace” di un blocco è accettato solo se soddisfa due criteri:
1. Il timestamp deve essere maggiore del timestamp mediano degli 11 blocchi precedenti.
2. Il timestamp deve essere inferiore al tempo corretto dalla rete più due ore. (Il “tempo corretto dalla rete” è semplicemente la mediana dei timestamp restituiti da tutti i nodi connessi a te).
In altre parole, l’aggiustamento della difficoltà riguarda il mantenimento di un tempo costante, non un livello costante di sicurezza, difficoltà o spesa energetica. Questo è ingegnoso perché il buon denaro deve essere costoso nel tempo, non in energia. Legare il denaro alla sola energia non è sufficiente a produrre la scarsità assoluta, poiché ogni miglioramento nella produzione di energia ci permetterebbe di creare più denaro. Il tempo è l’unica cosa di cui non potremo mai avere di più. È la risorsa definitiva, come sottolinea Julian Simon. Questo rende Bitcoin la forma definitiva di denaro perché la sua emissione è direttamente legata alla risorsa ultima del nostro universo: il tempo.
La regolazione della difficoltà è essenziale perché, senza di essa, l’orologio interno di Bitcoin tenderebbe ad andare sempre più veloce man mano che più minatori si uniscono alla rete o l’efficienza dei dispositivi di mining migliora. Ci imbatteremmo rapidamente nel problema di coordinamento che Bitcoin si propone di risolvere. Non appena il tempo di blocco scende sotto una certa soglia, diciamo 50 millisecondi, sarebbe impossibile accordarsi su uno stato condiviso, anche in teoria. La luce impiega circa 66 millisecondi per viaggiare da una parte all’altra della terra. Così, anche se i nostri computer e router fossero perfetti, saremmo di nuovo al punto di partenza: dati due eventi, sarebbe inutile dire quale evento è accaduto prima e quale dopo. Senza una regolazione periodica dei ticchettii di Bitcoin, ci imbatteremmo nel disperato problema di risolvere il dilemma della coordinazione più velocemente della velocità della luce. Il tempo è anche alla radice del problema dell’instabilità crittografica, che è stato delineato nel Capitolo 1. La crittografia funziona a causa di un’asimmetria nel tempo: ci vuole poco tempo per costruire un muro crittografico e molto tempo per abbatterlo — a meno che non si abbia una chiave.
Così, in un certo senso, la proof-of-work — e la regolazione della difficoltà che va insieme ad esso — rallenta artificialmente il tempo, almeno dal punto di vista della rete Bitcoin. In altre parole: Bitcoin impone un ritmo interno la cui bassa frequenza permette un ampio margine per la latenza delle comunicazioni tra pari. Ogni 2016 blocchi, l’orologio interno di Bitcoin si riaggiusta, in modo che — in media — solo un blocco valido sarà trovato ogni 10 minuti.
Da una prospettiva esterna, Bitcoin incanala il caotico disordine dei messaggi asincroni trasmessi a livello globale in un universo parallelo, limitato dalle proprie regole e dal proprio senso dello spazio e del tempo. Le transazioni nella mempool sono senza tempo dal punto di vista della rete Bitcoin. Solo quando una transazione è inclusa in un blocco valido le viene assegnato un tempo: il numero del blocco in cui è inclusa.
È difficile sopravvalutare l’eleganza di questa soluzione. Una volta che si è in grado di creare la propria definizione di tempo, decifrare ciò che è venuto prima e ciò che è venuto dopo è banale. A sua volta, anche mettersi d’accordo su cosa è successo, in quale ordine, e, di conseguenza, chi deve cosa a chi, diventa banale.
La regolazione della difficoltà fa sì che i ticchettii del metronomo interno di Bitcoin siano in qualche modo costanti. È il direttore dell’orchestra di Bitcoin. È ciò che mantiene viva la musica.
Ma perché possiamo fare affidamento sul lavoro in primo luogo? La risposta è triplice. Possiamo contare su di esso perché il calcolo richiede lavoro, il lavoro richiede tempo, e il lavoro in questione — indovinare numeri casuali — non può essere fatto in modo efficiente.
Tempo Probabilistico
“Il tempo si biforca perpetuamente verso innumerevoli futuri.
Jorge Luis Borges, Il giardino dei sentieri che si biforcano (1941)
Trovare un nonce valido per un blocco Bitcoin è un gioco di ipotesi. È molto simile a lanciare un dado, o lanciare una moneta, o girare una roulette. Si sta, in sostanza, cercando di trovare un numero casuale oltre l’astronomico. Non c’è alcun progresso verso la ricerca di una soluzione. O si vince il jackpot, o non si vince.
Ogni volta che lanci una moneta, la probabilità che esca testa o croce è del 50% — anche se l’hai lanciata venti volte prima e ogni volta è uscita testa. Allo stesso modo, ogni volta che aspetti l’arrivo di un blocco di bitcoin, la possibilità che venga trovato in questo secondo è ~0,16%. Non importa quando è stato trovato l’ultimo blocco. Il tempo di attesa approssimativo per il prossimo blocco è sempre lo stesso: ~10 minuti.
Ne consegue che ogni singolo ticchettio di questo orologio è imprevedibile. Rispetto ai nostri orologi umani, questo orologio sembra essere spontaneo e impreciso. Questo è irrilevante, come sottolinea Gregory Trubetskoy: “Non importa che questo orologio sia impreciso. Ciò che conta è che sia lo stesso orologio per tutti e che lo stato della catena può essere legato senza ambiguità ai ticchettii di questo orologio”. L’orologio di Bitcoin potrebbe essere probabilistico, ma non è illusorio.
“Il tempo è un’illusione,
l’ora di pranzo lo è doppiamente.”
Douglas Adams (1979)
Il momento presente, tuttavia, può assolutamente essere un’illusione in Bitcoin. Poiché non c’è un’autorità centrale nella rete, possono verificarsi situazioni strane. Anche se improbabile, è possibile che un blocco valido venga trovato nello stesso momento (di nuovo: scuse a tutti i fisici), il che farà ticchettare in avanti l’orologio in due posti diversi contemporaneamente. Tuttavia, poiché i due diversi blocchi saranno molto probabilmente diversi nel loro contenuto, conterranno due storie diverse, entrambe ugualmente valide.
Questo è noto come una divisione della catena ed è un processo naturale del consenso di Nakamoto. Come uno stormo di uccelli che si divide brevemente in due per poi fondersi di nuovo, i nodi della rete Bitcoin alla fine convergeranno verso una storia condivisa dopo qualche tempo, grazie alla natura probabilistica dell’indovinare.
Il consenso di Nakamoto afferma semplicemente che la storia corretta si trova nella catena più pesante, cioè la catena con la maggior quantità di proof-of-work incorporata. Quindi, se abbiamo due storie A e B, alcuni minatori cercheranno di costruire sulla storia A, altri cercheranno di costruire sulla storia B. Non appena uno di loro trova il prossimo blocco valido, l’altro gruppo è programmato di trovarsi sul lato sbagliato della storia e passare alla catena più pesante — la catena che rappresenta ciò che è realmente accaduto, per definizione. In Bitcoin, la storia è veramente scritta dai vincitori.
“Il beneficiario ha bisogno della prova che al momento di ogni transazione, la maggioranza dei nodi concordano che sia la prima ricevuta. […] Quando ci sono più versioni duplicate della stessa transazione, una e una sola diventerà valida. Il destinatario di un pagamento deve aspettare circa un’ora prima di credere che sia valido. La rete risolverà ogni possibile doppia spesa per allora.”
Satoshi Nakamoto (2009)
In questa semplice affermazione sta il segreto del problema della coordinazione distribuita. È così che Satoshi ha risolto il problema del “pagamento simultaneo” che i nostri partner commerciali fittizi hanno incontrato in precedenza. L’ha risolto una volta per tutte, al diavolo gli effetti relativistici!
A causa di questa natura probabilistica dell’orologio di Bitcoin, il momento presente — quello che chiamiamo la punta della catena — è sempre incerto. Il passato — i blocchi sepolti sotto la punta della catena — è sempre più certo.
“Più profonda è la comprensione necessaria, più indietro nel tempo si deve andare.”
Gordon Clark, A Christian View of Men and Things, p. 58. (1951)
Di conseguenza, l’orologio di Bitcoin potrebbe riavvolgersi di tanto in tanto, per alcuni coetanei, per un tick o due. Se la tua punta della catena — il momento presente — capita di perdere contro una punta della catena concorrente, il tuo orologio prima si riavvolgerà e poi salterà in avanti, scavalcando gli ultimi tick che pensavi fossero già storia. Se il vostro orologio è probabilistico, anche la vostra comprensione del passato deve esserlo.
“Tick tock tick tock tick — what is the time?
Tick tock tick tock… it ends in c619.
Are you sure this is fine? Are we probably late?
Absolutes do not matter: before nine there comes eight.
The clock isn’t exact; it sometimes goes in reverse.
Exact time implies center; that’s the root of this curse!
Yet this clock keeps on ticking, tock-tick and tick-tock,
there’s no profit in tricking; just tick-tock and next block.”
Una piccola filastrocca divertente su Bitcoin e il tempo (2020)
Conclusione
“Il tempo è ancora uno dei grandi misteri della fisica, che mette in discussione la definizione stessa di cosa sia la fisica.”
Jorge Cham e Daniel Whiteson: We Have No Idea: A Guide to the Unknown Universe, pp. 117–118 (2017)
Tenere traccia delle cose nel regno dell’informazione implica tenere traccia di una sequenza di eventi, che a sua volta richiede di tenere traccia del tempo. Tenere traccia del tempo richiede di concordare un “ora” — un momento nel tempo che collega eternamente il passato stabilito con il futuro incerto. In Bitcoin, questo “ora” è la punta più pesante della catena Proof-of-Work.
Due elementi sono essenziali per la struttura del tempo: i collegamenti causali e gli eventi imprevedibili. I legami causali sono necessari per definire un passato, e gli eventi imprevedibili sono necessari per costruire un futuro. Se la sequenza degli eventi fosse prevedibile, sarebbe possibile saltare avanti. Se i singoli passi della sequenza non sono collegati, sarebbe banale cambiare il passato. A causa del suo senso interno del tempo, è follemente difficile imbrogliare Bitcoin. Si dovrebbe riscrivere il passato o prevedere il futuro. La catena del tempo di Bitcoin impedisce entrambe le cose.
Guardare Bitcoin attraverso la lente del tempo dovrebbe chiarire che la “catena dei blocchi” — la struttura di dati che collega causalmente più eventi insieme — non è l’innovazione principale. Non è nemmeno un’idea nuova, come è evidente studiando la letteratura sul timestamp del passato.
“Una blockchain è una catena di blocchi.”
Peter Todd
Ciò che rappresenta una nuova idea — ciò che Satoshi ha capito — è come concordare indipendentemente una storia di eventi senza coordinamento centrale. Ha trovato un modo per implementare uno schema di timestamping decentralizzato in cui (A) non richiede una società o un server di marcatura temporale, (B) non richiede un giornale o qualsiasi altro mezzo fisico come prova, e (C) può mantenere i tick più o meno costanti, anche quando si opera in un ambiente in cui i tempi di clock della CPU sono sempre più veloci.
Il mantenimento del tempo richiede causalità, imprevedibilità e coordinazione. In Bitcoin, la causalità è fornita da funzioni unidirezionali: le funzioni hash crittografiche e le firme digitali che sono al centro del protocollo. L’imprevedibilità è fornita sia dal puzzle della prova di lavoro che dall’interazione con altri peer: non si può sapere in anticipo cosa stanno facendo gli altri, e non si può sapere in anticipo quale sarà la soluzione del puzzle della Proof of Work. La coordinazione è resa possibile dalla regolazione della difficoltà, la salsa magica che collega il tempo di Bitcoin al nostro. Senza questo ponte tra il regno fisico e quello informatico, sarebbe impossibile concordare un tempo basandosi solo sui dati.
Bitcoin è il tempo inteso in più modi. Le sue unità sono il tempo memorizzato perché sono soldi, e la sua rete è tempo perché è un orologio decentralizzato. Il battito incessante di questo orologio è ciò che dà origine a tutte le proprietà magiche di Bitcoin. Senza di esso, l’intricata danza di Bitcoin crollerebbe. Ma con esso, tutti sulla terra hanno accesso a qualcosa di veramente meraviglioso: Magic Internet Money.
Traduzione dall’originale di Gigi — Bitcoin Is Time