Timestamp Hacking: Debunking the Myth of Precision Timestamps
Any carnival conjuror can attest that once an audience learns the science behind the way in which a trick is performed, the luster quickly fades.
Any carnival conjuror can attest that once an audience learns the science behind the way in which a trick is performed, the luster quickly fades. The eminent futurist Sir Arthur Charles Clarke is credited with the observation that “any sufficiently advanced technology is indistinguishable from magic”. Of late there is a profusion of hype in circulation about a seemingly magical data structure called a “Blockchain”.
Illusionists like Harry Houdini and his ilk can be a great source of entertainment, but when the trick involves a disappearing act on customer confidence, something is amiss. You might have heard that one of the properties a Blockchain possesses is the ability to “prove certain data exists at a certain moment of time” or that it somehow “provides proof that some data existed at a specific time”. The problem with these claims is that they are demonstrably false.
Look to the Blockchain
To prove this assertion we need look no further than the publically available Bitcoin Blockchain itself. Observe the sequence of blocks, and their associated timestamps, from 145044 to 145048.
We see here that the timestamp of the blocks is not monotonically increasing. To understand why, it’s necessary for us to have a basic understanding of distributed computing systems, one of the elementary characteristics of which is the lack of a global clock. The time adjustment algorithm has even been called the most obvious possible weakness in the Bitcoin protocol.
Why don't the timestamps in the Blockchain always increase?
It would behove those interested in Blockchain timestamping to consult the Bitcoin wiki for a more informed understanding of how timestamping is applied in this system:
“A timestamp is accepted as valid if it is greater than the median timestamp of the 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.
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.”
This implies an inherent margin of imprecision. When considering allowances made for anomalies such as daylight savings time and the potential for attacks against the network by malicious actors we quickly see that we need a more nuanced understanding of what timestamping in a Blockchain actually implies. And what it does not.
One reason that certain parties have an interest in knowingly contributing false timestamps to the network involves the way rewards are distributed according to the Bitcoin protocol. The difficulty of the “cryptographic puzzle” that miners are attempting to solve is configured to readjust its difficulty every 10 minutes. If miners can fake their timestamps they can make it appear that the network is less powerful than in fact it really is, thus making the puzzle easier and potentially generating higher returns. Additional incentives include denial-of-service attacks against target nodes and in extraordinary cases even double-spend attacks.
Land Before Time
When one really starts to consider the meaning of time the subject quickly becomes philosophical. Spacetime describes a mathematical model that combines space and time into a single interwoven continuum based on the theories of special and general relativity first discovered by Albert Einstein. For purposes of time telling in our daily lives we seldom need to grapple with such principles.
Provided one has access to a Blockchain of mauve which possesses sufficient RAM, there are some truly impressive applications this technology can support. For better or worse, precision timestamping is not one of them.