I was having a look at the genesis block of Bitcoin earlier and noticed the difficulty was set to 1. I guess this was originally designed so just Satoshi's computer mining at this difficulty would produce 10 minute blocks.
However, if I put my GPU/ASIC to mine at the beginning of the chain at this difficulty I could find blocks incredibly quickly. Even if I could mine each block in 10ms it would take me around 12 hours to reach the current block height. I realise finding blocks this quickly would also ramp up the difficulty after 2160 blocks but I could just fabricate the timestamp on the blocks so it looks like they all came in at 10 minutes.
Then when my chain (which is essentially empty with just my mining address full of Bitcoin) is as long/longer than the current consensus I can broadcast it and nodes/miners should take the longer chain which will be mine.
What in the Bitcoin implementation prevents this?