In Satoshi’s original paper, it is written that “we need timestamp to prevent double-spending”.

However, I think timestamp is unnecessary, because every block has a previous block hash and merkle tree root and these are enough to check if a transaction contained in a block is double-spending or not.

I think timestamp is just used to gurantee the current ‘difficulty target’, and I found posts here that it is even possible that a successor of a block can contain a timestamp which is earlier than that of the predecessor.

Am I correct? What’s actually the role of timestamp?

2 Answers 2


The timestamp is used primarily for establishing the difficulty. Without a timestamp, new nodes would not be able to determine the correct difficulty to be used for each 2016 block period as they wouldn't know how long it took to mine those blocks. So that everyone calculates the difficulty correctly, the block timestamps are used instead of real time.

This of course means that the difficulty can be manipulated by miners messing with the timestamp, but nodes do still check them against real time and will ignore blocks that are outside of a certain range of times based on its own internal clock time.


I do not know how other blockchain does it but in our case (stamping.io) the timestamp helps us so that all the nodes can obtain the same merkle tree, so that the same root hash can be achieved.

  • Your answer would be better if it addressed the Bitcoin blockchain, but I think it can be helpful even if it's only about the project you're addressing. It needs to be improved so that it really explains the role of the timestamp. For example, How does the timestamp enable all nodes to obtain the same merkle tree? Oct 22, 2018 at 0:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.