timestamp
Chaque bloc Bitcoin contient un horodatage fixé par le mineur. Les horodatages ancrent la blockchain dans le temps, permettent l'ajustement de la difficulté et étaient au coeur de la solution de Satoshi Nakamoto au problème de la double dépense.
Chaque bloc de la blockchain Bitcoin contient un horodatage, un enregistrement du moment où le mineur qui a créé le bloc prétend l'avoir produit. Le timestamp est exprimé en temps Unix, le nombre de secondes écoulées depuis le 1er janvier 1970. Il est fixé par le mineur et inclus dans l'en-tête du bloc avant que le calcul de la preuve de travail ne commence. Bien que les mineurs aient une certaine souplesse pour fixer l'horodatage, le protocole impose des règles: l'horodatage d'un bloc doit être supérieur à la médiane des horodatages des onze blocs précédents, et les noeuds rejetteront les blocs horodatés à plus de deux heures dans le futur selon leurs propres horloges locales.
Les horodatages remplissent une fonction critique dans le mécanisme d'ajustement de la difficulté de Bitcoin. Tous les 2016 blocs, environ toutes les deux semaines, le protocole compare les horodatages du premier et du dernier bloc de la période pour calculer le temps qu'il a effectivement fallu pour produire ces blocs. Si le temps réel était inférieur à deux semaines, la difficulté augmente; si cela a pris plus de temps, la difficulté diminue. Cette boucle de rétroaction maintient l'intervalle moyen des blocs proche de dix minutes quelle que soit la puissance de minage qui entre ou sort du réseau.
Les horodatages étaient également intégraux à la solution de Satoshi Nakamoto au problème de la double dépense. Le livre blanc décrit un serveur d'horodatage distribué: en incluant un hachage cryptographique du bloc précédent dans chaque nouveau bloc, chaque bloc certifie l'existence de toutes les transactions précédentes à un moment particulier. Cette chaîne de blocs horodatés rend computationnellement infaisable la réécriture de l'histoire, car toute modification invaliderait la preuve de travail de chaque bloc suivant.