Block timestamp: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
No edit summary
Furunodo (talk | contribs)
mNo edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Each block contains a [http://en.wikipedia.org/wiki/Unix_time Unix time] timestamp. In addition to serving as a source of variation for the [[Block_hashing_algorithm|block hash]], there are also validity checks, that make it more difficult for an adversary to manipulate the block chain.
Each block contains a [http://en.wikipedia.org/wiki/Unix_time Unix time] timestamp. In addition to serving as a source of variation for the [[Block_hashing_algorithm|block hash]], they also make it more difficult for an adversary to manipulate the [[block chain]].


A timestamp is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours. "Network-adjusted time" is the median of the timestamps returned by all nodes connected to you.
A timestamp is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours. "Network-adjusted time" is the median of the timestamps returned by all nodes connected to you. As a result block timestamps are not exactly accurate, and they do not need to be. Block times are accurate only to within an hour or two.


Whenever a node connects to another node, it gets a UTC timestamp from it, and stores its offset from node-local UTC. The network-adjusted time is then the node-local UTC plus the median offset from all connected nodes. A single peer never adjusts your time by more than 70 minutes, however.
Whenever a node connects to another node, it gets a UTC timestamp from it, and stores its offset from node-local UTC. The network-adjusted time is then the node-local UTC plus the median offset from all connected nodes. Network time is never adjusted more than 70 minutes from local system time, however.


Bitcoin uses an unsigned integer for the timestamp, so the [[:Wikipedia:Year_2038_problem|year 2038 problem]] is delayed for another 68 years.
Bitcoin uses an unsigned integer for the timestamp, so the [[:Wikipedia:Year_2038_problem|year 2038 problem]] is delayed for another 68 years.
See also [[epoch]], [[genesis block]].


[[Category:Technical]]
[[Category:Technical]]

Latest revision as of 10:06, 13 July 2020

Each block contains a Unix time timestamp. In addition to serving as a source of variation for the block hash, they also make it more difficult for an adversary to manipulate the block chain.

A timestamp is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours. "Network-adjusted time" is the median of the timestamps returned by all nodes connected to you. As a result block timestamps are not exactly accurate, and they do not need to be. Block times are accurate only to within an hour or two.

Whenever a node connects to another node, it gets a UTC timestamp from it, and stores its offset from node-local UTC. The network-adjusted time is then the node-local UTC plus the median offset from all connected nodes. Network time is never adjusted more than 70 minutes from local system time, however.

Bitcoin uses an unsigned integer for the timestamp, so the year 2038 problem is delayed for another 68 years.

See also epoch, genesis block.