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?