Bitcoin Forum
May 27, 2024, 07:02:08 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Debunking the Myth of Precision Timestamps  (Read 548 times)
s.matthew.english (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 5


View Profile
September 26, 2016, 11:50:10 AM
 #1

Here's an article I've written about timestamping in Bitcoin, the original one is here:
https://cointelegraph.com/news/timestamp-hacking-debunking-the-myth-of-precision-timestamps
but also the text is reproduced below:

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.

145044: 2011-09-12 15:46:39
145045: 2011-09-12 16:05:07
145046: 2011-09-12 16:00:05 // Occurs about 5 minutes before the prior block
145047: 2011-09-12 15:53:36 // About 7 & about 12 minutes before 2 prior blocks
145048: 2011-09-12 16:04:06 // After 2 prior blocks but still before 145045

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.


Timestamp hacking

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.
yayayo
Legendary
*
Offline Offline

Activity: 1806
Merit: 1024



View Profile
September 26, 2016, 12:09:06 PM
 #2

This is an article that stands out, because unlike 90% of all the other stuff that it published it really conveys some interesting information that involves research and understanding of the technological preconditions of the Bitcoin network. Thank you for that!

However I don't think that precision timestamping has ever been promoted as a use case for the Bitcoin blockchain. Precision timestamping wouldn't even work in a reliable manner with a strictly monotonically increasing block timestamp sequence, because the time for new block discovery varies greatly. As far as I know, it's timestamping per se that was seen as a possible blockchain service. That's still a viable option when allowing for a 2-hour imprecision.

ya.ya.yo!

.
..1xBit.com   Super Six..
▄█████████████▄
████████████▀▀▀
█████████████▄
█████████▌▀████
██████████  ▀██
██████████▌   ▀
████████████▄▄
███████████████
███████████████
███████████████
███████████████
███████████████
▀██████████████
███████████████
█████████████▀
█████▀▀       
███▀ ▄███     ▄
██▄▄████▌    ▄█
████████       
████████▌     
█████████    ▐█
██████████   ▐█
███████▀▀   ▄██
███▀   ▄▄▄█████
███ ▄██████████
███████████████
███████████████
███████████████
███████████████
███████████████
███████████████
███████████▀▀▀█
██████████     
███████████▄▄▄█
███████████████
███████████████
███████████████
███████████████
███████████████
         ▄█████
        ▄██████
       ▄███████
      ▄████████
     ▄█████████
    ▄███████
   ▄███████████
  ▄████████████
 ▄█████████████
▄██████████████
  ▀▀███████████
      ▀▀███
████
          ▀▀
          ▄▄██▌
      ▄▄███████
     █████████▀

 ▄██▄▄▀▀██▀▀
▄██████     ▄▄▄
███████   ▄█▄ ▄
▀██████   █  ▀█
 ▀▀▀
    ▀▄▄█▀
▄▄█████▄    ▀▀▀
 ▀████████
   ▀█████▀ ████
      ▀▀▀ █████
          █████
       ▄  █▄▄ █ ▄
     ▀▄██▀▀▀▀▀▀▀▀
      ▀ ▄▄█████▄█▄▄
    ▄ ▄███▀    ▀▀ ▀▀▄
  ▄██▄███▄ ▀▀▀▀▄  ▄▄
  ▄████████▄▄▄▄▄█▄▄▄██
 ████████████▀▀    █ ▐█
██████████████▄ ▄▄▀██▄██
 ▐██████████████    ▄███
  ████▀████████████▄███▀
  ▀█▀  ▐█████████████▀
       ▐████████████▀
       ▀█████▀▀▀ █▀
.
Premier League
LaLiga
Serie A
.
Bundesliga
Ligue 1
Primeira Liga
.
..TAKE PART..
s.matthew.english (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 5


View Profile
September 26, 2016, 12:11:37 PM
 #3

ah, yeah- true.

I see it here:

What network hash rate results in a given difficulty?
The difficulty is adjusted every 2016 blocks based on the time it took to find the previous 2016 blocks. At the desired rate of one block each 10 minutes, 2016 blocks would take exactly two weeks to find. If the previous 2016 blocks took more than two weeks to find, the difficulty is reduced. If they took less than two weeks, the difficulty is increased. The change in difficulty is in proportion to the amount of time over or under two weeks the previous 2016 blocks took to find.

my mistake.

anyway- thank you for pointing that out to me.

do you know where exactly in the code this function is calculated?
Senor.Bla
Sr. Member
****
Offline Offline

Activity: 280
Merit: 253


View Profile
September 26, 2016, 12:12:35 PM
 #4

well it was never meant to be a precise timestamp. do not let you tell otherwise. you would not accuse a car to be a bad house, since it was not build as a house, although you can life in it. bitcoin is very useful if you want to prove that something existed or was said some time ago. but you need to use it right. the blockchain is not a clock. times and timestamps is something you can tell ordinary people so they get an idea.
one major flaw of the article is that the difficulty changes about every two week and not every 10 minuets. the consequences should be clear.
unclear to me is how double spending can work because of this. please explain.

s.matthew.english (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 5


View Profile
September 26, 2016, 12:19:58 PM
 #5

for sure, but check out these sites:

https://proofofexistence.com/about

https://tierion.com/chainpoint

the way they talk about timestamping- what they said- it's not accurate.

the double spend scenario is explained here:

http://culubas.blogspot.de/2011/05/timejacking-bitcoin_802.html
Senor.Bla
Sr. Member
****
Offline Offline

Activity: 280
Merit: 253


View Profile
September 26, 2016, 12:45:02 PM
 #6


the double spend scenario is explained here:

http://culubas.blogspot.de/2011/05/timejacking-bitcoin_802.html


this is interesting, but i would need some time to check the facts first. there are some points i could argue about, but better check it first. even so this would be very hard and unlikely, but that is not the point. i wonder if this is still possible, since this article is 5 years old and the is a fix for it (involving the calculation of current time for the node). so i wonder how widespread this is.

s.matthew.english (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 5


View Profile
September 26, 2016, 12:50:03 PM
 #7

want to try it together on the testnet?

DannyHamilton
Legendary
*
Offline Offline

Activity: 3402
Merit: 4656



View Profile
September 26, 2016, 12:50:51 PM
 #8

- snip -
We see here that the timestamp of the blocks is not monotonically increasing.
- snip -

Correct.  The timestamp is not intended to be "precise", nor is it intended to be monotonically increasing.  Anyone that thinks otherwise is mistaken.  Any service that attempts to tell their customers otherwise is lying to them.

The only intended purpose for the timestamp is to approximate the amount of time that it takes for 2016 blocks to be created so that the difficulty can be adjusted appropriately.  An error of a few hours over a time span of 2 weeks is not significant and would work itself out over multiple difficulty adjustment periods.

However, what we can say with absolute certainty about the blocks is that blocks of greater height were absolutely created AFTER blocks with lesser height.  So, if you establish a proof of existence with a transaction in a block, and then someone else attempts to establish a proof of existence in a later block, we can ALWAYS determine who attempted to establish that proof of existence first.

Additionally, since the timestamps are accurate to margin of a few hours, if you establish a proof of existence with a transaction in a block, you can confidently state the year, month, and day so long as the block doesn't occur within a few hours of the border between 2 days, months, or years.  If you add a few hours to the timestamp, you can confidently say that the proof was established no later than that.

Senor.Bla
Sr. Member
****
Offline Offline

Activity: 280
Merit: 253


View Profile
September 26, 2016, 01:48:32 PM
 #9

want to try it together on the testnet?

this would be cool and a great opportunity to learn something, but unfortunately right know i do not have the time and resources, and a vacation coming up. i would still love to see this, so hopefully some of you go ahead with it (maybe open a thread in the project subforum).
btw i do like the article as its quality stands out.
do you or someone know what tool is used for the pics on the website?   

sbtctalk
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250


View Profile
September 26, 2016, 04:27:14 PM
 #10

Hi OP, is this a computer science dissertation? Smiley

13Sk3gsQ1ogrzmyt3xMVvByxcUvZr98kKN
Dabs
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
September 26, 2016, 04:58:35 PM
 #11

Additionally, since the timestamps are accurate to margin of a few hours, if you establish a proof of existence with a transaction in a block, you can confidently state the year, month, and day so long as the block doesn't occur within a few hours of the border between 2 days, months, or years. If you add a few hours to the timestamp, you can confidently say that the proof was established no later than that.

This.

You can say, with confidence, that something existed as of a certain date. Or before a certain date. Or just state that the accuracy of this time stamp is +/- 2 hours. When people have something notarized by a lawyer or some legal office, magistrate, judge, or public official, they are accurate only to the day. And even then, there are some offices that pre-date or back-date stuff.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!