One thing I don't understand about the Ethereum protocol is how timestamps work. If I, as miner, have a reason to fiddle with timestamps (such as adding a few minutes to decrease the mining difficulty) I simply produce a block with a timestamp which is a few minutes larger than the current UNIX time.
I suppose that this is not possible, but I don't understand how this is enforced. Does the network simply not allow blocks which have a drift time which is too large compared to the current time? Or is there some kind of protocol in place which disencourages miners to create invalid timestamps?