Resources
People often ask me "How did you learn how to hack?" The answer: by reading. This page is a collection of the blog posts and other articles that I have accumulated over the years of my journey. Enjoy!
Timestamps (block.timestamp) are used for logic. Actions such as sending ETH and entropy are common uses for timestamps because they create some randomness.
Block timestamps are quite flexible, commonly within a 15 minute time window. A bad miner can exploit this in order to create exploitable conditions for themselves. More recently, the standard has been 15 seconds in order to prevent attacks against manipulation of the timestamp.
To prevent issues with timestamps, use a more robust algorithm, or do something off chain. Functions should be able to maintain integrity with a 15 second variance in the timestamp.