Autore: dergigi | Original Date: 14/01/2021 | Tradotto da: 31febbraio | Milano Trustless | Link: Bitcoin is Time
"Un orologio luminoso contro il cielo
proclamava che l'ora non era né sbagliata né giusta".
Robert Frost, Acquainted with the Night (1928)
"Il tempo è ancora un grande mistero per noi. Non è che un concetto; nemmeno sappiamo se esiste..."
Clifford D. Simak, Il pianeta di Shakespeare (1976)
Il tempo è denaro, o almeno così dice il proverbio. Ne consegue che anche il denaro è tempo: una rappresentazione dell'energia economica collettiva accumulata dall'umanità. Tuttavia, il legame tra tempo e denaro è più intricato di quanto possa sembrare a prima vista. Se non richiede tempo per essere creato, il denaro non funziona molto bene come tale, o non a lungo. Più profondamente, come vedremo, tenere traccia delle cose in ambito informativo implica sempre tenere traccia del tempo.
Non appena il denaro diventa digitale, dobbiamo concordare una definizione di tempo, e qui sta il problema. Si potrebbe pensare che per leggere l'ora sia sufficiente dare un'occhiata all'orologio che si trova nelle vicinanze, e si ha ragione quando si tratta di attività quotidiane. Ma quando si tratta di sincronizzare lo stato di una rete globale, contradditoria e distribuita, la lettura dell'ora diventa un problema quasi insuperabile. Come si fa a leggere l'ora se non ci si può fidare degli orologi? Come si crea il concetto di tempo unico se il sistema si estende su tutta la galassia? Come si misura il tempo in un regno senza tempo? E che cos'è il tempo?
Per rispondere a queste domande, dovremo esaminare più da vicino il concetto stesso di tempo e il modo in cui Bitcoin crea il proprio tempo: il tempo a blocchi, più comunemente noto come block height. Esploreremo perché il problema della misurazione del tempo è intimamente legato alla tenuta dei registri, perché non esiste un tempo assoluto in un sistema decentralizzato e come Bitcoin utilizza la causalità e l'imprevedibilità per costruire il proprio scorrere del tempo.
I dispositivi di misurazione del tempo hanno trasformato le civiltà più di una volta. Come ha sottolineato Lewis Mumford nel 1934: 'L'orologio, non la macchina a vapore, è la macchina chiave dell'era industriale moderna'. Oggi è di nuovo un dispositivo di misurazione del tempo che sta trasformando la nostra civiltà: un orologio, non un computer, è la vera macchina chiave della moderna era informatica. E questo orologio è Bitcoin.
Tenere traccia delle cose
"Lasciate che il bambino impari a contare le cose, acquisendo così la nozione di numero. Queste cose, ai fini del conteggio, sono considerate uguali, e possono essere oggetti singoli o gruppi".
David Eugene Smith, L'insegnamento della matematica elementare (1900)
In linea generale, ci sono due modi per tenere traccia delle cose: i token fisici e i libri mastri. Si possono usare direttamente gli artefatti del mondo reale, ad esempio dare a qualcuno una conchiglia, una moneta o qualche altro oggetto tangibile, oppure si può replicare lo stato del mondo scrivendo ciò che è successo su un pezzo di carta.
Immaginate di essere un pastore e di volervi assicurare che tutto il vostro gregge sia tornato a casa. Potete mettere un collare a ogni pecora e, non appena una pecora torna a casa, dovete semplicemente togliere il collare e appenderlo nel vostro capanno. Se avete una gruccia per ogni collare, saprete che ogni pecora è tornata a casa sana e salva non appena tutte le grucce saranno riempite. Naturalmente, potete anche contarle e tenere un elenco. Tuttavia, dovrete assicurarvi di creare un nuovo elenco ogni volta che iniziate a contare, e dovrete anche assicurarvi 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. In linea di massima, tutto ciò che abbiamo usato finora come denaro rientra in due categorie: artefatti fisici e liste informative. O, per usare un linguaggio più comune: token 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 di essi presenta vantaggi e svantaggi. Ad esempio, i token sono fisici e distribuiti; i libri mastri sono informativi e centralizzati. I token sono intrinsecamente trustless [privi di fiducia, sono contante n.d.t.], mentre i libri mastri non lo sono.
Nel regno digitale - per quanto i guru del marketing cerchino di convincervi del contrario - possiamo usare solo i libri mastri. È un regno informativo, non fisico. Anche se un certo tipo di informazione si chiama 'token', si tratta comunque di un pezzo di informazione malleabile, scritto su un disco rigido o su un altro supporto in grado di contenere informazioni, rendendolo di fatto un record di informazione.
La natura di 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 una copia. L'informazione esiste in un luogo e per 'spostarla' è necessario copiarla in un altro luogo 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 informativo non ha questa proprietà. Se si vuole 'spostare' un'informazione da una lista A a una lista B, bisogna copiarla da A a B. Non c'è altro modo.
Un altro modo di pensare è in termini di unicità. I token fisici sono composti unici di atomi il cui assemblaggio non è facilmente replicabile. L'informazione pura non ha questa proprietà. Se si può leggere l'informazione, si può anche copiarla perfettamente. In pratica, ne consegue che i gettoni fisici sono unici, mentre quelli digitali non lo sono. 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à dimostra che non c'è modo di 'passare' le informazioni. È impossibile trasmettere un token digitale come si farebbe con uno 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 io e te abbiamo un'idea e ci scambiamo le idee, ognuno di noi si ritrova con due idee.
Charles F. Brannan (1949)
I token fisici - quelli che chiamiamo beni fisici al portatore, o 'contanti' - sono esenti da questo dilemma. Nel mondo reale, se mi dai una moneta, la tua moneta non c'è più. Non esiste una duplicazione magica della moneta e l'unico modo per darmela è consegnarla fisicamente. Le leggi della fisica non permettono di spenderla due volte.
Anche se la doppia spesa esiste nel regno non digitale - mi viene in mente George Parker, un artista della truffa che ha notoriamente 'doppiato' il ponte di Brooklyn e altri monumenti - richiede un inganno elaborato e acquirenti creduloni. Non è così nel regno digitale.
Nel regno digitale, poiché abbiamo sempre a che fare con le informazioni, la doppia spesa è un problema intrinseco. Come sa chiunque abbia mai copiato un file o usato il copia-e-incolla, l'informazione è qualcosa che si può copiare perfettamente e non è legata al supporto che la ospita. Se avete una fotografia digitale, ad esempio, potete copiarla un milione di volte, memorizzarne alcune copie su una chiavetta USB e inviarla a migliaia di persone diverse. Le copie perfette sono possibili perché l'informazione consente una correzione degli errori impeccabile, che elimina la degradazione. E per finire, la duplicazione non ha praticamente alcun costo e non c'è modo di sapere quale fosse l'originale.
Ancora una volta: quando si tratta di informazioni, la copia è tutto ciò che esiste. 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. Ecco perché 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. Si deve sempre confidare che l'originale venga cancellato. Un effetto collaterale naturale è che, quando si tratta di informazioni digitali, è impossibile sapere quante copie esistono e dove si trovano.
Per questo motivo, l'utilizzo di 'token' digitali come denaro non può e non potrà mai funzionare. Poiché i gettoni traggono la loro affidabilità dal fatto di essere difficilmente riproducibili grazie alla loro struttura fisica unica, questo vantaggio scompare nel regno digitale. Nel regno digitale non ci si può fidare dei gettoni. A causa della natura delle proprietà intrinseche dell'informazione, l'unico formato possibile per il denaro digitale non è un token ma un libro mastro, il che ci porta al problema del tempo.
I token sono senza tempo, i libri mastri no
"Perché le cose che si vedono sono temporanee, ma quelle che non si vedono sono eterne".
Paolo di Tarso, I Corinzi 4:18b
Quando si tratta di gettoni fisici, il momento della transazione non ha importanza. O si hanno le monete in tasca, o non si hanno; o si possono spendere, o non si possono spendere. Il semplice atto di possesso è l'unico prerequisito per la spesa. Le leggi della natura si occupano del resto. In questo senso, i gettoni fisici sono trustless e senza tempo.
Quando si tratta di libri contabili, il possesso fisico cade in secondo piano. Chiunque abbia il controllo del libro mastro deve assicurarsi che le cose siano in ordine. Ciò che altrimenti è dato dalle leggi fisiche, ossia che non si può spendere denaro che non si ha e che 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 e la manutenzione ordinata di un libro mastro, non le leggi fisiche.
Il passaggio dalle leggi fisiche alle regole create dall'uomo è il nocciolo della questione. Le regole create dall'uomo possono essere piegate e infrante, le leggi fisiche non altrettanto. Per esempio, non si può semplicemente 'inventare' una moneta d'oro fisica. Bisogna estrarla dal sottosuolo e coniarla. Tuttavia, è assolutamente possibile creare una moneta d'oro su carta. Per farlo, è sufficiente aggiungere una voce al libro mastro e regalarsi un paio di monete. Oppure, nel caso delle banche centrali, basta aggiungere un paio di trilioni con qualche tasto del computer. (Gli esperti di finanza chiamano tutto questo 'Ri-ipotecazione', 'Riserva frazionaria' o 'Quantitative Easing', ma non fatevi ingannare, è la stessa cosa: invenzione del denaro dal nulla).
Per mantenere l'onestà dei libri contabili e di coloro che li manipolano, sono necessarie revisioni contabili regolari e indipendenti. La capacità di rendere conto di ogni singola voce di un libro mastro non è un lusso. I revisori devono essere in grado di esaminare i libri contabili - a ritroso nel tempo - per mantenere i libri contabili onesti e funzionanti. Senza timestamp affidabili, la verifica della coerenza interna di un libro mastro è impossibile. È essenziale un meccanismo che stabilisca un ordine univoco.
Senza una definizione assoluta 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 quale altro modo si può essere certi di quanto denaro si ha effettivamente? In quale altro modo si può essere sicuri che le cose siano in ordine?
La distinzione tra token e libri mastri evidenzia la necessità di tenere traccia del tempo. Nel regno fisico, le monete sono artefatti senza tempo che possono essere scambiati senza alcun controllo. Nel regno digitale, la convalida delle monete richiede la registrazione del tempo.
Marcatura temporale centralizzata delle valute
Il tempo: un grande incisore o cancellatore.
Yahia Lababidi (nato nel 1973)
Il modo più comune per risolvere il problema della doppia spesa - il problema di assicurarsi che un trasferimento digitale avvenga una sola volta - è quello di avere un elenco centrale delle transazioni. Una volta che si dispone di un elenco centrale di transazioni, si ha un unico libro mastro che può fungere da unica fonte di verità. Per risolvere il problema della doppia spesa è sufficiente scorrere l'elenco e verificare che i conti tornino. È così che PayPal, Venmo, Alipay e tutte le banche del mondo, comprese le banche centrali, risolvono il problema della doppia spesa: tramite un'autorità centrale.
!Il problema, ovviamente, è 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 di fiducia, o una zecca, che verifichi ogni transazione per verificare che non ci siano doppi pagamenti. [...] Il problema di questa soluzione è che il destino dell'intero sistema monetario dipende dalla società che gestisce la zecca, e ogni transazione deve passare attraverso di essa, 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 codice sorgente, il libro mastro, la chiave privata - può essere copiata. Tutto può essere duplicato e manomesso. Tuttavia, Satoshi è riuscito a costruire un sistema che rende completamente e totalmente inutili le copie che violano le regole. La rete Bitcoin esegue un'intricata danza 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 registro centralizzato può risolvere il problema della doppia spesa solo se ha un modo coerente per tenere traccia del tempo. È sempre necessario sapere chi ha dato quanto a chi e, soprattutto, quando. Nel regno dell'informazione, non c'è timbratura delle monete senza timbratura del tempo.
"Va sottolineato che l'impossibilità di associare eventi a punti nel tempo nei sistemi distribuiti è stato il problema irrisolto che ha precluso la possibilità di un libro mastro decentralizzato, finché Satoshi Nakamoto non 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 ha sottolineato Leslie Lamport 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. È derivato dal concetto più elementare di ordine in cui si verificano gli eventi'. In assenza di un punto centrale di coordinamento, le nozioni apparentemente intuitive di 'prima', 'dopo' e 'contemporaneamente' vengono meno. Per dirla con le parole di Lamport: 'il concetto di 'accadere prima' definisce un ordine parziale invariante degli eventi in un sistema distribuito multiprocesso'.
Detto in altro modo: chi dovrebbe occuparsi del tempo se non è consentito mettere qualcuno al comando? Come si può avere un orologio affidabile se non esiste un quadro di riferimento centrale?
Si potrebbe pensare che risolvere questo problema sia facile, perché ognuno potrebbe usare il proprio orologio. Questo funziona solo se l'orologio di tutti è preciso e, soprattutto, se tutti si comportano bene. In un sistema di tipo controverso, affidarsi agli orologi individuali sarebbe un disastro. Inoltre, a causa della relatività, non funziona in modo coerente nello spazio.
Come esperimento di pensiero, immaginate come si potrebbe imbrogliare il sistema se ognuno fosse incaricato di tenere l'ora per sé. Si potrebbe fingere che la transazione che si sta inviando ora sia in realtà di ieri - è stata solo ritardata per qualche motivo - e quindi si avrebbe ancora tutto il denaro speso oggi. A causa della comunicazione asincrona insita in 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 in assenza di un'autorità centrale.
Chi c'è? Toc toc
Uno scherzo asincrono
Per illustrare meglio l'impossibilità del problema, vediamo un esempio concreto. Immaginate che voi e il vostro 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 partner commerciale è a Sydney. Per voi è il 3 gennaio e vi state godendo una bella domenica sera in albergo. Per il partner è già lunedì mattina, quindi decide di acquistare la colazione utilizzando la carta di debito del vostro conto corrente comune. Il costo è di 27 dollari e il saldo disponibile è di 615 dollari. L'ora locale è le 8:21.
Nello stesso momento, tu sta per pagare il suo soggiorno con un'altra carta di debito collegata allo stesso conto bancario. Il costo è di 599 dollari. Il saldo disponibile è di 615 dollari. L'ora locale segna le 17:21.
Così accade che - esattamente nello stesso momento - entrambi strisciate la carta. (Cari fisici, scusate l'uso di 'stesso momento': per ora ignoreremo gli effetti relativistici e il fatto che non esiste un tempo assoluto nel nostro universo. Ignoreremo anche il fatto che il concetto di eventi sincroni non esiste. Bitcoin è già abbastanza complicato così com'è).
Il registro centrale della vostra banca probabilmente riceverà una transazione prima dell'altra, quindi uno di voi sarà fortunato, l'altro meno. Se le transazioni arrivano nello stesso tick - diciamo nello stesso millisecondo - la banca deve decidere chi deve spendere il denaro.
Ora, cosa succederebbe se non ci fosse una banca? Chi decide chi è il primo a prelevare? E se non foste solo voi due, ma centinaia o addirittura migliaia di persone a coordinarsi? E se non vi fidaste di queste persone? E se alcune di queste persone cercassero di imbrogliare, ad esempio mettendo indietro l'orologio in modo che sembri che abbiano speso i soldi un paio di minuti prima?
"È necessario uno strumento legato al tempo per stabilire un ordine canonico e imporre una storia unica in assenza di un coordinatore centrale".
Giacomo Zucco, Discovering Bitcoin (2019)
Questo problema è proprio il motivo per cui tutti i precedenti tentativi di denaro digitale richiedevano un registro centralizzato. Bisognava sempre fidarsi di qualcuno che identificasse correttamente l'ordine delle cose. Era necessario un soggetto centralizzato per tenere il tempo.
Bitcoin risolve questo problema reinventando il tempo stesso. Dice no ai secondi e sì ai blocchi.
Tenere il tempo, un blocco alla volta
La gloria del tempo è quella di calmare i re in lotta, smascherare la falsità e portare alla luce la verità,
di imprimere il sigillo del tempo nelle cose che invecchiano, di svegliare il mattino e di sorvegliare la notte, di dare torto a chi sbaglia finché non rende il giusto;
William Shakespeare, Il ratto di Lucrece (1709)
Tutti gli orologi si basano su processi periodici, qualcosa che potremmo chiamare 'ticchettio'. Il ticchettio familiare dell'orologio del nonno è, in sostanza, lo stesso ronzio molecolare-atomico dei nostri moderni orologi al quarzo e al cesio. Qualcosa oscilla e noi ci limitiamo a contare queste oscillazioni fino a sommarle a un minuto o a un secondo.
Per gli orologi a pendolo di grandi dimensioni, queste oscillazioni sono lunghe e facili da vedere. Per gli orologi più piccoli e specializzati sono necessarie apparecchiature speciali. La frequenza di un orologio, ovvero la frequenza del suo ticchettio, dipende dal suo utilizzo.
La maggior parte degli orologi ha una frequenza fissa. Dopo tutto, vogliamo conoscere l'ora con precisione. Esistono tuttavia orologi a frequenza variabile. Un metronomo, ad esempio, ha una frequenza variabile che si può impostare prima di farlo ticchettare. Mentre il metronomo mantiene un ritmo costante una volta impostato, il tempo di Bitcoin varia a ogni ticchettio 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. Satoshi sottolinea infatti che la rete Bitcoin nel suo complesso agisce come un orologio o, per dirla con le sue parole, come un server di timestamp distribuito.
"In questo modo si propone una soluzione al problema del double-spending utilizzando un server di timestamp distribuito peer-to-peer per generare una prova computazionale dell'ordine cronologico delle transazioni".
Satoshi Nakamoto (2009)
Che il timestamp fosse il problema principale da risolvere è evidente anche esaminando il riferimento alla fine del whitepaper di Bitcoin. Degli otto riferimenti totali, tre riguardano la marcatura temporale:
- Come marcare temporalmente un documento digitale di S. Haber, W.S. Stornetta (1991)
- Improving the efficiency and reliability of digital time-stamping di D. Bayer, S. Haber, W.S. Stornetta (1992)
- Design of a secure timestamping service with minimal trust requirements di H. Massias, X.S. Avila e J.-J. Quisquater (maggio 1999)
Come hanno sottolineato Haber e Stornetta nel 1991, la marcatura temporale digitale riguarda procedure computazionalmente pratiche che rendono impossibile per un utente - se è per questo anche per un avversario - manipolare o retrodatare un documento digitale. Contrariamente ai documenti fisici, i documenti digitali sono facili da manomettere e la modifica 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 ad esempio un documento di testo. Non si può semplicemente aggiungere la data alla fine del documento, perché tutti, compresi voi stessi, potrebbero cambiare la data in futuro. Si potrebbe anche inventare una data qualsiasi.
Il tempo è una catena causale
"In una visione estrema, il mondo può essere visto solo come connessioni, nient'altro".
Tim Berners-Lee, Weaving the Web (1999)
Inventare le date è un problema generale, anche nel regno non digitale. Ciò che nel mondo dei sequestri è noto come 'Autenticazione tramite giornale' è una soluzione generale al problema dei timestamp arbitrari.
Funziona perché un giornale è difficile da falsificare e facile da verificare. È difficile da falsificare perché la prima pagina di oggi si riferisce a eventi di ieri, eventi che il rapitore non avrebbe potuto prevedere se la foto fosse stata vecchia di settimane. Sommando tutti questi eventi, la foto è la prova che l'ostaggio era ancora vivo il giorno dell'uscita del giornale.
Questo metodo mette in evidenza uno dei concetti chiave quando si parla di tempo: la causalità. La freccia del tempo descrive la relazione causale degli eventi. Se non c'è causalità, non c'è tempo. La causalità è anche il motivo per cui le funzioni di hash crittografico sono così cruciali quando si tratta di datare i documenti nel cyberspazio: introducono una relazione causale. Poiché è praticamente impossibile creare un hash crittografico valido senza disporre del documento, 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à computazionale delle funzioni unidirezionali, non ci sarebbe causalità nel cyberspazio.
Con questo elemento causale, si possono originare 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 fa passare 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 alcuni eventi precedenti e determina alcuni eventi successivi, allora l'evento è incastrato saldamente nel suo posto nella storia".
Bayer, Haber, Stornetta (1992)
È ovvio 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 esistessero già. Già nel 1991, Haber e Stornetta hanno introdotto due schemi che rendono 'difficile o impossibile produrre timestamp falsi'. Il primo si basa su una terza parte fidata; il secondo, più elaborato, sulla 'fiducia distribuita', no. Gli autori hanno anche identificato i problemi intrinseci della fiducia in una catena causale di eventi e ciò che sarebbe necessario per riscrivere la storia. Nelle loro parole, 'l'unico spoof possibile è preparare una catena falsa di timbri temporali, abbastanza lunga da esaurire lo sfidante più sospetto che si prevede'. Un vettore di attacco simile esiste oggi in Bitcoin, sotto forma di attacco al 51% (di cui si parlerà in un capitolo successivo).
Un anno dopo, Bayer, Haber e Stornetta hanno fatto tesoro del loro lavoro precedente e hanno proposto di utilizzare gli alberi invece delle semplici liste collegate per unire tra loro gli eventi. Quelli 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, ciò significa che è possibile raggruppare in modo efficiente più eventi in un unico 'tic'. Nello stesso articolo, gli autori propongono che il modello di fiducia distribuita introdotto nel 1991 potrebbe essere migliorato effettuando un 'torneo mondiale' ricorrente per determinare un singolo 'vincitore' che pubblichi ampiamente l'hash risultante in un luogo pubblico, come un giornale. 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.)
La causalità è essenziale, ma non sufficiente. Abbiamo anche bisogno di imprevedibilità perché 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 freccia del tempo. Anche se nella maggior parte dei casi le leggi della natura sembrano ignorare la direzione di questa freccia, alcune cose non possono essere annullate, in pratica. Come si dice: non si può disfare un uovo.
Allo stesso modo, per stabilire una freccia del tempo nel regno digitale sono necessarie funzioni che aumentano l'entropia. Così come è praticamente impossibile decifrare un uovo, è praticamente impossibile decifrare un hash SHA256 o una firma crittografica.
Senza questo aumento dell'entropia, potremmo andare avanti e indietro nel tempo a piacimento. La sequenza dei numeri di Fibonacci, ad esempio, è causale ma non entropica. Ogni numero della sequenza è causato dai due numeri che lo precedono. In questo senso si tratta di una catena causale. Tuttavia, non è utile per indicare l'ora perché è del tutto prevedibile. Allo stesso modo in cui un rapitore non può semplicemente stare davanti a un calendario che indica la data corrente, non possiamo usare processi prevedibili come prova del tempo. Dobbiamo sempre affidarci a qualcosa che non può essere previsto in anticipo, come la prima pagina del giornale di oggi.
Bitcoin si basa su due fonti di imprevedibilità: le transazioni e la 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 si può prevedere quali transazioni saranno incluse perché non si può prevedere quali saranno trasmesse in futuro. E, cosa ancora più importante, non si può prevedere chi troverà la soluzione all'attuale puzzle proof-of-work o quale sarà la soluzione.
A differenza del giornale del rapitore, tuttavia, la proof-of-work è fisicamente legata a ciò che è accaduto nella realtà. Non è solo la registrazione di un evento, ma è l'evento stesso. È proprio la diretta natura probabilistica della prova del lavoro che elimina la fiducia dall'equazione. L'unico modo per trovare una proof-of-work valida è fare molte ipotesi, e fare una singola ipotesi richiede un po' di tempo. La somma probabilistica di queste ipotesi è ciò che costruisce la timechain che è Bitcoin.
Utilizzando la causalità delle hash-chain e l'imprevedibilità della proof-of-work, la rete Bitcoin fornisce un meccanismo per stabilire una storia incontestabile degli eventi testimoniati. Senza causalità, è impossibile distinguere ciò che è venuto prima da ciò che è venuto dopo. Senza imprevedibilità, la causalità non ha senso.
Ciò che è intuitivamente compreso da ogni rapitore è stato esplicitamente sottolineato da Bayer, Haber e Stornetta nel 1992: 'Per stabilire che un documento è stato creato dopo un determinato momento, è necessario riportare eventi che non potevano essere previsti prima che accadessero'.
È la combinazione di causalità e imprevedibilità che permette di creare un 'adesso' artificiale nel regno digitale, altrimenti senza tempo. Come sottolineano Bayer, Haber e Stornetta nel loro articolo del 1991: 'la sequenza di client che richiedono time-stamp e gli hash che inviano non possono essere conosciuti in anticipo. Quindi, se nel certificato firmato includiamo i bit della precedente sequenza di richieste del client, sappiamo che la marca temporale si è verificata dopo tali richieste. [...] Ma il requisito di includere nel certificato i bit dei documenti precedenti può anche essere usato per risolvere il problema di limitare il tempo nell'altra direzione, perché la terza parte di marcatura temporale non può emettere certificati successivi se non ha in mano la richiesta attuale'.
Tutti i pezzi del puzzle erano già presenti. Satoshi è riuscito a metterli insieme in un modo che elimina la necessità di una 'terza parte di marcatura temporale' dall'equazione.
La prova del tempo
Causa latet: vis est notissima.
La causa è nascosta, ma il risultato è noto.
Ovidio, Metamorfosi, IV. 287 (8 D.C.)
Ricapitoliamo: per utilizzare il denaro nel regno digitale, dobbiamo affidarci ai libri mastri. Per rendere i libri mastri affidabili, è necessario un ordine univoco. Per stabilire l'ordine, sono necessari i timestamp. Quindi, se vogliamo avere denaro trustless nel regno digitale, dobbiamo eliminare qualsiasi entità che crei e gestisca i timestamp e qualsiasi singola entità che sia responsabile del tempo stesso.
Ci voleva un genio come Satoshi Nakamoto per realizzare la soluzione: 'Per implementare un server di timestamp distribuito su base peer-to-peer, dovremo utilizzare un sistema di 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 compreso che il regno digitale è di natura informativa, la conclusione più ovvia è che la computazione è tutto ciò che abbiamo. Se il mondo è fatto di dati, la manipolazione dei dati è tutto ciò che esiste.
La Proof-of-work funziona in un contesto peer-to-peer perché è priva di fiducia (ne elimina la necessità), ed è priva di fiducia perché è scollegata da tutti gli input esterni, come le letture degli orologi (o dei giornali). Si basa su una e una sola cosa: la computazione richiede lavoro, e nel nostro universo il lavoro richiede energia e tempo.
Tempo fisico e digitale che si collegano
So che per me funziona
Mentre attraversiamo il ponte, il ponte in fiamme
con le fiamme dietro di noi,
Siamo in prima linea
Siamo io e te, baby, contro il mondo.
Kate Bush, Burning Bridge (1985)
Senza proof-of-work, si incorrerebbe sempre nel problema dell'Oracolo, perché il regno fisico e quello informativo sono eternamente scollegati. I segni sulla vostra lista di pecore non sono le vostre pecore, la mappa non è il territorio e ciò che è stato scritto sul giornale di ieri non è necessariamente ciò che è accaduto nel mondo reale. Allo stesso modo, il fatto che si utilizzi un orologio del mondo reale per scrivere un orario non significa che questo sia effettivamente l'orario.
In parole povere, non c'è modo di fidarsi che i dati rappresentino la realtà, a meno che la realtà in questione non sia insita nei dati stessi. L'aspetto brillante della proof-of-work di Bitcoin, che si adatta alla difficoltà, è che crea la propria realtà, insieme al proprio spazio e al proprio tempo.
La proof-of-work fornisce una connessione diretta tra il regno digitale e quello fisico. Più approfonditamente, è l'unica connessione che può essere stabilita in modo affidabile. Tutto il resto dipenderà sempre da input esterni.
La difficoltà di estrazione di un nuovo blocco viene regolata per garantire che il sottile filo tra il tempo di Bitcoin e il nostro tempo rimanga intatto. Come un orologio, la difficoltà di estrazione viene regolata ogni 2016 blocchi (i rintocchi del ticchettio). L'obiettivo di questo aggiustamento è mantenere il tempo medio tra i rintocchi, stabili a dieci minuti. Sono questi dieci minuti a mantenere una connessione stabile tra il regno fisico e quello informativo. Di conseguenza, per regolare i ticchettii dell'orologio Bitcoin è necessario un senso del tempo umano. 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 dimostrato Einstein, il tempo non è una cosa statica. Non esiste un tempo universale su cui fare affidamento. Il tempo è relativo e la simultaneità è inesistente. Questo fatto, da solo, rende tutti i timestamp - soprattutto su grandi distanze - intrinsecamente inaffidabili, anche in assenza di attori controversi. (A proposito, questo è il motivo per cui i timestamp dei satelliti GPS devono essere aggiustati costantemente).
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. 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 viene accettato solo se soddisfa due criteri:
- Il timestamp deve essere maggiore del timestamp mediano degli 11 blocchi precedenti.
- Il timestamp deve essere inferiore al tempo di aggiustamento delle difficoltà di rete, sommato di due ore. (Il 'tempo corretto per la rete' è semplicemente la mediana dei timestamp restituiti da tutti i nodi connessi all'utente).
In altre parole, la regolazione della difficoltà serve a mantenere un tempo costante, non un livello costante di sicurezza, difficoltà o dispendio energetico. Questo è ingegnoso perché il denaro buono deve essere costoso in termini di tempo, non di energia. Collegare il denaro alla sola energia non è sufficiente a produrre una 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 fare a meno. È la risorsa definitiva, come sottolinea Julian Simon. Questo rende Bitcoin la forma definitiva di denaro perché la sua emissione è direttamente legata alla risorsa definitiva 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ù miner si uniscono alla rete o che 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, ad esempio 50 millisecondi, sarebbe impossibile concordare uno stato condiviso, anche in teoria. La luce impiega circa 66 millisecondi per viaggiare da una parte all'altra della Terra. Quindi, anche se i nostri computer e router fossero perfetti, saremmo al punto di partenza: dati due eventi, sarebbe inutile dire quale evento è accaduto prima e quale dopo. Senza un aggiustamento periodico dei ticchettii di Bitcoin, ci imbatteremmo nell'irrimediabile problema di risolvere il problema della coordinazione più velocemente della velocità della luce. Il tempo è anche alla base del problema dell'instabilità crittografica. Il tempo è un elemento fondamentale per il funzionamento della crittografia. La crittografia funziona grazie a un'asimmetria temporale: ci vuole poco tempo per costruire un muro crittografico e molto tempo per abbatterlo, a meno che non si disponga di una chiave.
Quindi, in un certo senso, la proof-of-work - e la regolazione della difficoltà che lo accompagna - rallenta artificialmente il tempo, almeno dal punto di vista della rete Bitcoin. In altre parole: Bitcoin impone un ritmo interno la cui bassa frequenza consente un ampio buffer per la latenza delle comunicazioni tra peer. Ogni 2016 blocchi, l'orologio interno di Bitcoin si riaggiusta, in modo che - in media - si trovi un solo blocco valido ogni 10 minuti.
Da una prospettiva esterna, Bitcoin incanala la confusione caotica 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 sottolineare 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, su chi deve cosa a chi, diventa banale.
La regolazione della difficoltà fa sì che il ticchettio del metronomo interno di Bitcoin sia in qualche modo costante. È il direttore dell'orchestra Bitcoin. È ciò che mantiene viva la musica.
Ma perché possiamo fare affidamento sul lavoro? La risposta è triplice. Possiamo fare affidamento su di esso perché la computazione 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 perennemente verso innumerevoli futuri.
Jorge Luis Borges, Il giardino dei sentieri che si biforcano (1958)
Trovare un nonce valido per un blocco Bitcoin è un gioco a indovinare. È come tirare un dado, lanciare una moneta o far girare una roulette. In sostanza, si sta cercando di trovare un numero casuale di dimensioni oltremodo astronomiche. Non c'è alcun progresso verso la soluzione. O si vince il jackpot, o non si vince.
Ogni volta che lanciate una moneta, la probabilità che esca testa o croce è del 50%, anche se l'avete lanciata venti volte e ogni volta è uscita testa. Allo stesso modo, ogni volta che si attende l'arrivo di un blocco di bitcoin, la possibilità che venga trovato in questo secondo è di ~0,16%. Non importa quando è stato trovato l'ultimo blocco. Il tempo di attesa approssimativo per il blocco successivo è 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 possa essere legato senza ambiguità ai ticchettii di questo orologio'. L'orologio di Bitcoin può 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 esiste un'autorità centrale nella rete, possono verificarsi situazioni strane. Sebbene sia improbabile, è possibile che venga trovato un blocco valido nello stesso momento (ancora una volta: scuse a tutti i fisici), il che farà ticchettare l'orologio in avanti in due luoghi diversi contemporaneamente. Tuttavia, poiché è molto probabile che i due blocchi differiscano nel loro contenuto, essi conterranno due storie diverse, entrambe ugualmente valide.
Questo fenomeno è noto come divisione della catena ed è un processo naturale del consenso di Nakamoto. Come uno stormo di uccelli che si divide brevemente in due per poi riunirsi di nuovo, i nodi della rete Bitcoin finiranno per convergere verso una cronologia 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è quella con la maggior quantità di proof-of-work incorporata. Quindi, se abbiamo due cronologie A e B, alcuni miner cercheranno di basarsi sulla cronologia A, altri sulla cronologia B. Non appena uno di loro trova il blocco successivo valido, l'altro gruppo è programmato per accettare di essere dalla parte sbagliata della cronologia e passare alla catena più pesante - la catena che rappresenta ciò che è realmente accaduto, per definizione. In Bitcoin, la storia è davvero scritta dai vincitori.
"Il beneficiario ha bisogno della prova che, al momento di ogni transazione, la maggioranza dei nodi era d'accordo che fosse la prima ricevuta. [...] Quando ci sono più versioni con doppio pagamento della stessa transazione, una e una sola diventerà valida. Il destinatario di un pagamento deve attendere circa un'ora prima di credere che sia valido. A quel punto la rete risolverà tutte le eventuali gare di doppio pagamento".
Satoshi Nakamoto (2009)
In questa semplice affermazione si nasconde 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 della 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.
"Quanto più approfondita è la comprensione necessaria, tanto più si deve andare indietro nel tempo".
Gordon Clark, Una visione cristiana degli uomini e delle cose, p. 58. (1951)
Di conseguenza, l'orologio di Bitcoin potrebbe riavvolgersi di tanto in tanto, per qualche coetaneo, per uno o due ticchettii. Se la vostra punta della catena - il momento attuale - perde contro una punta della catena concorrente, l'orologio prima si riavvolge e poi salta in avanti, annullando gli ultimi tick che pensavate fossero già storia. Se il vostro orologio è probabilistico, anche la vostra comprensione del passato deve esserlo.
Tic toc tic toc tic toc - che ore sono?
Tic toc tic toc... finisce in c619
Sei sicuro che vada bene? Probabilmente siamo in ritardo?
Gli assoluti non contano: prima delle nove ci sono le otto
L'orologio non è esatto, a volte va al contrario
L'ora esatta implica il centro; ecco la radice di questa maledizione!
Eppure questo orologio continua a ticchettare, tic toc e tic toc,
non c'è profitto nell'ingannare; solo tic-toc e il prossimo blocco
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 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 delle informazioni implica tenere traccia di una sequenza di eventi, che a sua volta richiede di tenere traccia del tempo. Per tenere traccia del tempo è necessario concordare un 'adesso' - un momento nel tempo che collega eternamente il passato consolidato con il futuro incerto. In Bitcoin, questo 'adesso' è la punta della catena proof-of-work più pesante.
Due elementi sono essenziali per la struttura del tempo: i legami causali e gli eventi imprevedibili. I legami causali sono necessari per definire un passato, mentre gli eventi imprevedibili sono necessari per costruire un futuro. Se la sequenza di eventi fosse prevedibile, sarebbe possibile fare un salto in avanti. Se i singoli passi della sequenza non sono collegati, sarebbe banale cambiare il passato. A causa del suo senso interno del tempo, è estremamente difficile imbrogliare la rete 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 blockchain - la struttura di dati che collega causalmente più eventi tra loro - non è l'innovazione principale. Non è nemmeno un'idea nuova, come è evidente studiando la letteratura sui timestamp del passato.
Una blockchain è una catena di blocchi.
Peter Todd
Ciò che è un'idea nuova - ciò che Satoshi ha scoperto - è come concordare in modo indipendente una cronologia di eventi senza un coordinamento centrale. Ha trovato un modo per implementare uno schema di timestamping decentralizzato che (a) non richiede una società o un server di timestamping, (b) non richiede un giornale o qualsiasi altro supporto fisico come prova, e c) può mantenere i ticchettii più o meno costanti, anche quando si opera in un ambiente con tempi di clock della CPU sempre più veloci.
Il cronometraggio richiede causalità, imprevedibilità e coordinamento. In Bitcoin, la causalità è fornita da funzioni unidirezionali: le funzioni hash crittografiche e le firme digitali che sono al centro del protocollo. L'imprevedibilità è data sia dal rompicapo proof-of-work sia dall'interazione con gli altri peer: non si può sapere in anticipo cosa fanno gli altri e non si può sapere in anticipo quale sarà la soluzione del puzzle della proof-of-work. Il coordinamento è reso 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 informativo, sarebbe impossibile concordare un tempo basandosi solo sui dati.
Bitcoin è tempo in più modi. Le sue unità sono tempo immagazzinato perché sono denaro, 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 andrebbe in pezzi. Ma con esso, tutti sulla terra hanno accesso a qualcosa di veramente meraviglioso: the Magic Internet Money.
Se non diversamente specificato, il contenuto di questo articolo è concesso in licenza ai sensi del CC BY-SA 4.0
Milano Trustless (31febbraioMI)
#MilanoTrustless è un progetto personale per #orangepillare 🟠💊 Milano e infondere ai (meravigliosi) milanesi la mentalità #trustless
follow me :
Related Posts
10 przykazań dobrego bitcoinowania
Dec 23, 2024
Personal Reflections on Adopting Bitcoin 2024
Nov 29, 2024
Lightning Network to Wspólny Język Ekonomii Bitcoina
Oct 25, 2024