timestamp
Ogni blocco Bitcoin contiene un timestamp impostato dal miner. I timestamp ancorano la blockchain nel tempo, abilitano l'aggiustamento della difficoltà e furono centrali nella soluzione di Satoshi Nakamoto al problema del doppio pagamento.
Ogni blocco nella blockchain di Bitcoin contiene un timestamp, un registro di quando il miner che ha creato il blocco afferma di averlo prodotto. Il timestamp è espresso come Unix time, il numero di secondi trascorsi dal 1 gennaio 1970. Viene impostato dal miner e incluso nell'intestazione del blocco prima che inizi il calcolo della proof-of-work. Sebbene i miner abbiano una certa flessibilità nell'impostare il timestamp, il protocollo impone regole: il timestamp di un blocco deve essere maggiore della mediana degli undici blocchi precedenti, e i nodi rifiuteranno i blocchi con timestamp superiori a due ore nel futuro secondo i propri orologi locali.
I timestamp svolgono una funzione critica nel meccanismo di aggiustamento della difficoltà di Bitcoin. Ogni 2016 blocchi, circa ogni due settimane, il protocollo confronta i timestamp del primo e dell'ultimo blocco del periodo per calcolare quanto tempo ci ha effettivamente impiegato produrre quei blocchi. Se il tempo effettivo è stato inferiore a due settimane, la difficoltà aumenta; se ha impiegato più tempo, la difficoltà diminuisce. Questo ciclo di feedback mantiene l'intervallo medio dei blocchi vicino a dieci minuti indipendentemente da quanta potenza di mining entra o esce dalla rete.
I timestamp erano anche parte integrante della soluzione di Satoshi Nakamoto al problema del doppio pagamento. Il whitepaper descrive un server di timestamp distribuito: includendo un hash crittografico del blocco precedente in ogni nuovo blocco, ogni blocco certifica l'esistenza di tutte le transazioni precedenti in un particolare momento nel tempo. Questa catena di blocchi con timestamp rende computazionalmente impossibile riscrivere la storia, perché qualsiasi alterazione invaliderebbe la proof-of-work di ogni blocco successivo.