Blockchain: l'importanza
del timestamp

Ormai conosci bene il paragone. 
Lo usiamo spesso nei post del blog di KNOBS, per rendere il tuo viaggio alla scoperta della blockchain semplice, concreto e appassionante.

La blockchain è come una fila di taxi gialli
E ogni taxi, ogni blocco contiene una serie di informazioni che lo contraddistinguono in modo univoco.
Puoi approfondire architettura e caratteristiche dei blocchi blockchain qui, ma ecco intanto una piccola sintesi.

Ogni blocco ha un:

  • index, numero assoluto che indica la sua posizione nella caten
  • previous HASH, cioè l’HASH del blocco che lo precede
  • set di informazioni legate al valore che trasporta
  • HASH, cioè un suo specifico codice identificativo, nella forma di algoritmo crittografico di 64 caratteri generato dalla combinazione di tutti gli altri dati (Per capire meglio cos’è un HASH clicca qui

Che ne dici? Tutto chiaro fin qui? 
Forse chiaro sì, ma non completo.
Hai la sensazione che manchi un’informazione importante, vero?

In effetti, è proprio così!

Nessuno dei dati che abbiamo citato fa riferimento all’esatto momento di partenza del taxi. 
Sai bene però, che, secondo i principi di tracciabilità e verificabilità propri della blockchain, questo non può essere corretto. 
L’indicazione del momento in cui un blocco entra a far parte della blockchain è, infatti, fondamentale per il buon funzionamento e la piena trasparenza di tutto il sistema.

E quindi? 
Esiste un parametro, uno strumento che registra questo momento in modo ufficiale?
Assolutamente sì, e questo post ha proprio l’obiettivo di raccontartelo.

Partiamo da una domanda. 
Quale orologio guardano il tassista ed il suo cliente? 
Probabilmente non lo stesso. 
Ognuno ha il suo. E del suo si fida, ciecamente.

Ma allora come possiamo sapere se il tassista è in ritardo? 
E come fa il sistema di gestione dei taxi della città a definire e concordare i vari orari di chiamata, partenza ed arrivo a destinazione? 
La risposta arriva dalla blockchain, o, meglio da un suo componente di importanza fondamentale: il timestamp.

Indice argomenti

1. Cos’è il timestamp?

Il timestamp altro non è che – traducendo alla lettera – la marca temporale di un evento.
È cioè l’indicazione esatta del momento in cui un determinato evento, ossia un “blocco”, è stato validato ed inserito ufficialmente all’interno del registro blockchain.

Ha la forma di un valore numerico intero, pubblico e immutabile, che viene memorizzato all’interno di ogni singolo blocco quando questo entra a far parte della rete.

Questo valore utilizza l’unità di misura del tempo tipica dei computer basati su sistema operativo Unix o Unix-like ed indica i secondi totali trascorsi dalla mezzanotte (UTC) del 1 gennaio 1970, momento definito “epoch”.  

Vuoi capire meglio
Torniamo all’esempio dei tassisti.

Non c’è dubbio che tutto sarebbe più semplice e trasparente e che le parti in gioco sarebbero più tutelate se fosse possibile risalire all’ora esatta della chiamata, a quella dell’arrivo del taxi sul posto e del suo arrivo a destinazione.

Ecco, la blockchain permette di farlo, semplicemente registrando, “stampando” ogni passaggio sulla blockchain con una transazione
In questo modo, abbiamo anche il vantaggio di una trasparenza totale e di una totale correttezza dei dati, perché nessun ente centralizzato viene coinvolto e non sussiste alcuna possibilità di manipolazione o alterazione delle informazioni.

2. Dove si trova il timestamp?

Probabilmente ti stai chiedendo dove puoi trovare e visualizzare il timestamp.
E forse non ti aspetteresti mai questa risposta: quasi ovunque!

Cosa significa?
Andiamo per gradi.

Hai mai sentito parlare di un explorer di blockchain?
Si tratta di un semplice sito che permette a chiunque di consultare e verificare tutti gli eventi registrati su una determinata blockchain. 
Se vuoi, puoi sperimentare tu stesso in prima persona e navigare, ad esempio, Etherscan, l’explorer legato alla blockchain di Ethereum. 
Lo trovi a questo link: 👉 https://etherscan.io

Prova ad aprire il collegamento e tutto diventerà subito più chiaro. 
Vedi? Trovi proprio la conferma di quello che abbiamo detto: consultando un explorer di blockchain, puoi renderti conto che trovi il timestamp quasi ovunque. 

Ogni singola operazione, da quella semplice alla più complessa, dalla transazione alla creazione di un intero blocco, è associata ad un timestamp

Oltre ad essere utile, questo fatto è indispensabile. 
È, infatti, essenziale che in ogni singolo istante sia possibile conoscere lo stato ufficiale della blockchain. 

Perché? Il motivo è molto semplice.

Pensa ad esempio ai token.
In ogni momento è necessario sapere quanti token sono detenuti da ogni address.
Non saperlo, infatti, impedirebbe di processare e portare a compimento qualsiasi transazione perché non saremmo in grado di conoscere il bilancio dei vari indirizzi. 

Prova ad immaginare questa situazione.
Potresti mai inviare 2 bitcoin da un indirizzo ad un altro, senza poter sapere in quell’esatto istante se quei 2BTC appartengono al mittente? Non sarebbe possibile.

È proprio qui che entra in gioco una delle peculiarità della blockchain
Poichè la blockchain è un registro distribuito con vari nodi validatori che raccolgono le transazioni e le inseriscono in un blocco per essere validate, esiste una ed una sola versione ufficiale del registro.

3. La sequenza temporale di una catena blockchain

Cosa significa in termini temporali che esiste una sola versione ufficiale del registro blockchain?
Significa che esiste una sola sequenza di eventi corretta. 

Può sembrare banale, ma non lo è. 
Dato che più nodi partecipano al network, infatti, è possibile che ci siano momenti di ambiguità

Può succedere, ad esempio, che due nodi tentino di aggiungere un blocco nello stesso istante
Cosa avverrà in questo caso? Che due blocchi creati da nodi diversi conterranno le transazioni in ordine diverso.

Ed ecco il problema. Quale dei due sarà da considerare valido, cioè quello che trasporta le informazioni corrette? 
La risposta non è immediata, ma, se stai familiarizzando bene con la blockchain, ti apparirà intuitiva. 

È semplicemente necessario aspettare il blocco successivo
Alla creazione di un ulteriore blocco, infatti, il nodo avrà il compito di “attaccare” questo nuovo elemento ad uno dei due blocchi precedentemente creati. 
Solitamente c’è un solo “ultimo blocco” e quindi una sola catena possibile a cui aggiungere il nuovo e non sussiste alcun problema.
In questo caso, però, il nodo si trova davanti a due “ultimi blocchi”
E quindi? 
Molto semplice! 
Il blocco valido diventa quello a cui viene aggiunto il nuovo blocco.

Da cosa dipende la scelta?
In realtà,
il blocco valido viene scelto in modo piuttosto automatico e randomico, senza però mai prescindere da una regola fondamentale della blockchain: vince sempre la catena più lunga.
Perché? Semplicemente perché la catena più lunga è quella che ha ricevuto più conferme e maggiore fiducia.
Ed è dunque quella da prendere in considerazione. 

Facciamo un altro passo avanti.
Pensiamo al blocco ancora successivo.
Un nuovo nodo si ritroverà a dover scegliere se aggiungere un nuovo blocco ad una blockchain con X blocchi oppure ad un’altra con X+1 blocchi. 
Quale sceglierà? 
Il meccanismo resta il medesimo.
Per la regola della catena più lunga, sceglierà…la seconda, esatto!

4. A cosa serve il timestamping?

Il timestamping gioca un ruolo fondamentale nel garantire la trasparenza e l’affidabilità del sistema.
Proprio grazie a questa funzione, trova applicazioni pressoché illimitate.
In
ambito aziendale, ad esempio, permette di tutelare la limpidezza e l’ufficialità di dati e procedure interne, rivelandosi uno strumento prezioso in un mondo sempre più dominato dai big data.

Hai bisogno di qualche esempio concreto?
Eccolo!
Consente, ad esempio, di comunicare informazioni in modo totalmente trasparente ai propri clienti oppure di attribuire valore legale a dati che documentano dettagli e caratteristiche di eventi già avvenuti. 

Potremmo continuare a lungo, facendo centinaia di esempi diversi per i diversi ambiti aziendali.
Il concetto fondamentale resta comunque sempre il medesimo.
O
gni azienda, in qualsiasi settore operi, può trarre enormi benefici da questo strumento, a patto – naturalmente – che l’informazione a cui il timestamping fa riferimento sia stata correttamente registrata e notarizzata su blockchain.

5. Come si crea un timestamp?
Blockchain e fuso orario

Come avrai sicuramente già capito, il timestamping è parte integrante del processo crittografico.
Se ad ogni operazione è associato un timestamp, infatti, inevitabilmente, un timestamp è associato anche a gran parte degli HASH (Approfondisci il concetto di HASH qui).

Hai seguito bene i passi che abbiamo fatto fin qui? 
Allora, ti stai sicuramente facendo una nuova domanda.

Se, come sappiamo, i nodi blockchain sono distribuiti in tutto il mondo, come possiamo stabilire qual è il fuso orario di riferimento quando ciascuno di questi nodi interagisce con la rete? 
Questione molto interessante!

Naturalmente è impensabile che i nodi possano lavorare sfasati. 
Deve esserci una soluzione differente.

Prova ad andare di nuovo su Etherscan.
Vedrai che tutti i timestamp, senza alcuna eccezione, sono espressi in UTC, il Tempo Coordinato Universale che utilizziamo come orario di riferimento internazionale.

Come avviene questa conversione ad un riferimento temporale unico e uniforme?
Secondo quale procedimento e quali parametri?
Ecco la risposta.

Qual è l'ora della blockchain? Fusi orari e sincronizzazione dei nodi

Il parametro temporale si basa sulla regolazione della media dei timestamp restituiti da tutti i nodi.

Questa regolazione avviene in modo istantaneo ed è resa possibile dalla decentralizzazione e dal fatto che tutto lavora affinché i nodi della rete siano sempre il più sincronizzati possibile

Naturalmente c’è un ma.
I timestamp dei blocchi non sono esatti, anche se conservano sempre un buon margine di validità con una precisione relativa compresa tra una e due ore
Questo avviene da un lato perché non devono essere necessariamente in ordine e dall’altro perché fondamentalmente tutti i nodi si connettono alla stessa fascia oraria
Partendo dall’UTC-0, l’ora locale di Londra, i nodi della rete coordinano il tempo in cui lavorano e ogni nodo memorizza questi dati e calcola il “tempo di viaggio” tra UTC e ora locale

Viene così effettuato un adeguamento tra il tempo del nodo locale e lo spostamento di tutti i nodi che sono collegati alla rete.
Ed è proprio questo che
consente di regolare costantemente l’ora della rete e di impedire qualsiasi tentativo di manipolazione.

Solitamente questo adeguamento viene effettuato con lievi variazioni temporanee rispetto alla fascia oraria, per evitare che la presenza di molti indici di ore e di ripetizioni possa creare problemi.
In sintesi, è stato sviluppato un sistema di creazione di timestamp universale per tutti i nodi, in grado di tener conto del jet lag che potrebbe sussistere tra un nodo e l’altro. 

L’implementazione del timestamp, quindi, gioca un ruolo cruciale poichè rende il blocco unico, memorizzando data ed ora della sua creazione.

6. Osservazioni finali

Il timestamp è uno strumento semplice, ma assolutamente essenziale per il corretto funzionamento delle transazioni.
Avere una situazione costantemente chiara e ufficiale in termini di tempo come abbiamo visto, è un requisito fondamentale all’interno della blockchain.

Perché tu possa orientarti più facilmente, concludiamo facendo un semplice paragone con il mondo reale.

Cosa sono HASH + timestamp se immaginiamo di trasferirli nel nostro quotidiano?
A cosa possiamo assimilarli?
Beh…non sono altro che il
certificato ufficiale di nascita dell’evento a cui sono associati.
In fondo è semplice, no?

Se ti sembra ancora complesso, non preoccuparti. 

Il nostro obiettivo è guidarti nell’universo blockchain passo dopo passo e permetterti di scoprire ed esplorare i meccanismi, gli strumenti e le straordinarie potenzialità di questa tecnologia in modo semplice e divertente!

Puoi farlo leggendo i post del nostro blog, a cominciare da qui, e tenendoti sempre aggiornato tramite la nostra newsletter.

Vuoi scoprire di più sulla tecnologia blockchain
e su come puo' far crescere il tuo business?

|   Chi siamo

KNOBS è una società di sviluppo software specializzata in tecnologia blockchain. Dal 2014.

|   KNOBS srl

Bastioni di Porta Volta, 9
20121 Milano (MI) – Italia
info@knobs.it
knobs@legalmail.it
P. IVA 08560240965
SDI X2PH38J

|   Orari di apertura

Dal lunedì al venerdì 9.00 – 18.00

|   Seguici

|   Newsletter

Iscriviti alla newsletter e ricevi subito il nostro PDF
Blockchain in parole semplici