I timestamp dei blocchi Bitcoin possono andare indietro senza alterare l’ordine della catena

Punti chiave
- Il blocco 974,988 è stato minato dopo il blocco 974,987, ma riportava un timestamp di 3 minuti e 22 secondi precedente.
- Bitcoin consente timestamp che non seguono quello del blocco immediatamente precedente, entro i limiti stabiliti dal consenso.
- I collegamenti crittografici stabiliscono l’ordine dei blocchi; i timestamp indicano un orario approssimativo.
Due blocchi consecutivi, timestamp invertiti
Il 7 novembre i timestamp dei blocchi Bitcoin sembravano andare indietro: un blocco appena minato riportava un orario precedente a quello del suo predecessore immediato. I due record erano il blocco 974,987, con timestamp 21:22:24 UTC, e il blocco 974,988, con timestamp 21:19:02 UTC. Poiché il blocco 974,988 è stato minato dopo, gli orari visualizzati sembravano fuori sequenza di tre minuti e 22 secondi. Questa discrepanza ha sollevato dubbi su un possibile malfunzionamento della blockchain di Bitcoin.
La discrepanza era visibile su un esploratore pubblico della blockchain ed è stata segnalata da Alex Thorn, responsabile della ricerca di Galaxy Digital. Thorn ha osservato che mempool.space e la sua dashboard mostravano la stessa apparente inversione, precisando però che nessuna delle due visualizzazioni era errata. La distinzione fondamentale è che l’orario mostrato è un valore scritto all’interno di un blocco, non un dato preciso fornito da un orologio centrale della rete al momento del mining.
A prima vista, vedere un blocco successivo riportare un orario precedente può far pensare che la blockchain abbia contraddetto la propria cronologia. Ma l’episodio riguarda le marche temporali, non la sequenza dei blocchi. I due record individuano un caso specifico in cui queste misure si sono discostate. Che ciò indichi un errore di consenso dipende dalle regole che Bitcoin verifica effettivamente, e tali regole non impongono che la marca temporale di ogni blocco sia successiva a quella del blocco immediatamente precedente.
Come vengono impostate e verificate le marche temporali di Bitcoin
I miner di Bitcoin scelgono la marca temporale associata a un blocco. La fonte spiega che possono modificarla mentre cercano un blocco valido, aggiungendo altre combinazioni da far provare ai loro computer. Questa flessibilità significa che la marca temporale non è semplicemente la lettura di un orologio sincronizzato, trasmessa invariata da un blocco al successivo. È un campo impostato dai miner durante il lavoro necessario a produrre un blocco accettato secondo le regole di Bitcoin.
Questa libertà ha dei limiti. La marca temporale di un blocco deve essere successiva all’ora mediana degli 11 blocchi precedenti e non può essere in anticipo di più di due ore rispetto all’orologio del nodo che la convalida. Questi controlli vincolano il valore senza imporre una sequenza strettamente crescente da un blocco all’altro. In altre parole, l’orario consentito viene valutato rispetto a un quadro più ampio della cronologia recente e all’orologio di un nodo, anziché soltanto rispetto alla marca temporale del blocco padre.
La regola della mediana è fondamentale per comprendere l’apparente inversione. Una marca temporale può essere precedente a quella del blocco immediatamente precedente e tuttavia successiva alla mediana degli 11 blocchi precedenti. I controlli di consenso di Bitcoin consentono quindi alcune irregolarità locali nelle marche temporali. La coppia del 7 novembre illustra questa distinzione: l’orario visualizzato per il blocco più recente era precedente, ma questo fatto, da solo, non dimostra che la rete abbia accettato un blocco non valido.
Perché il timestamp non determina l’ordine dei blocchi
L’analisi di Thorn fornisce un contesto su quanto spesso i timestamp differiscano da un semplice orologio che avanza in modo regolare. Ha affermato che circa il 3% dei blocchi Bitcoin ha un timestamp precedente a quello dei blocchi genitori. Ha anche detto che circa un blocco su dieci arriva con un timestamp che indica un orario di oltre un minuto successivo a quello in cui il suo nodo lo ha ricevuto. Queste cifre descrivono comportamenti distinti dei timestamp e aiutano a capire perché questo campo non vada considerato un registro preciso e costantemente sincronizzato del tempo reale.
I dati non significano che i blocchi vengano riordinati abitualmente o che le regole del consenso vengano ignorate. Mostrano che i timestamp possono differire dalla cronologia esatta che un lettore si aspetterebbe, pur rispettando i controlli previsti. La fonte non individua in questo episodio un malfunzionamento della rete; spiega invece il ruolo consentito dei timestamp impostati dai miner. La particolare coppia ha attirato l’attenzione perché gli orari visualizzati rendevano questa distinzione insolitamente evidente.
Bitcoin stabilisce la sequenza dei blocchi tramite collegamenti crittografici, non ordinando i timestamp. Ogni blocco contiene l’hash univoco del blocco precedente, che lo collega al suo genitore e rende esplicito l’ordine di quei record. Di conseguenza, un timestamp precedente in un blocco successivo non cancella né inverte tale collegamento. Per determinare quale di questi due blocchi sia venuto prima nella catena, la prova rilevante è la relazione crittografica.
Cosa comporta l’episodio per i record basati sul tempo
Secondo la fonte, una vera riorganizzazione della blockchain richiede una catena concorrente con una quantità maggiore di lavoro di mining accumulato. Modificare i timestamp, da solo, non può produrre questo risultato. La discrepanza tra i timestamp non significa quindi che le transazioni siano state annullate o che il blocco precedente abbia smesso di precedere quello successivo. La distinzione è importante: un’indicazione temporale sorprendente e una modifica alla cronologia accettata della catena sono eventi diversi, regolati da meccanismi diversi.
Per chi utilizza i record della blockchain per stabilire quando è accaduto qualcosa, il limite pratico è che un timestamp è approssimativo, non un orologio indipendente e preciso. L’altezza del blocco fornisce la sequenza, mentre il timestamp offre una stima temporale secondo le regole di Bitcoin. La fonte sottolinea in particolare che questa differenza è importante per chiunque si affidi ai record della blockchain per stabilire con precisione quando si è verificato un evento. Un’interpretazione basata sul tempo non dovrebbe confondere il timestamp visualizzato con la prova dell’ora esatta nel mondo reale.
Satoshi Nakamoto ha descritto Bitcoin come un «server di timestamp» nel white paper originale, ma l’esempio del 7 novembre mostra perché questa definizione non implica letture dell’orologio perfettamente ordinate. Il sistema si basa su prove crittografiche per l’ordine dei blocchi e su timestamp con limiti definiti per indicare un tempo approssimativo. Ciò che resta incerto nell’incidente riportato è il motivo esatto per cui il miner ha scelto quel particolare valore; la fonte spiega le regole e il risultato, ma non indica una motivazione specifica per il timestamp di quel blocco.
Fonte: BeInCrypto