How many confirmations do you need in order to trust the timestamp on a mined block?
Discussion
you can only trust it so far as it's within an hour or so of the actual time it was mined. but there is an extranonce field for miners to use that gets incremented each attempt as well usually.
the consensus does not disallow out of order timestamps, only the previous block hash matters.
This is a safe answer. The more confirmations, the less likely a change will occur that includes a timestamp change.
uhhh, not to be debbie downer but you can never trust the timestamp on a block
You can trust it as much as you can trust funds have been received at an address and not double spent
Nope.
You can mine a block with any timestamp greater than the median of the last 11 blocks or less than 2 hours ahead of the median time of all the nodes your node is connected to.
Distributed consensus is hard. Distributed consensus on timestamps is no different. Bitcoin judges proof of work with absolute strictness and timestamps extremely loosely.
You can't trust a single block timestamp. Best you can do is take an average, but even that is exploitable. This is how a timewarp attack works.
I knew it was something like those two rules, but can never remember details. Bitmex has a good write up on it iirc
Yeah I had to wrangle my LLM into believing my condensed explanation of NAT. It was explaining the algorithm core uses and saying my definition was wrong. Classic junior engineer thinking.
Kinda weird that it doesn't include your own node's system time in the median calculation. 🤔 I wonder if there is a reason for that. Or maybe my LLM is just wrong.
I honestly struggle a bit still understanding how it works, and thinking about it too hard starts to worry grug with fud. Surely it's ungamable with those restrictions 😅
Essentially the NAT calculation excludes your own node's clock time from the consensus. This opens you up to eclipse attacks that warp your node's perception of network time.
If you're eclipsed, though, the much more effective attack is to simply withhold new blocks. But that attack would be obvious. Eclipse attacking the NAT time could be a much more insidious long-range attack, potentially causing you to mine an invalid block.
Pretty interesting but a very far fetched attack vector.