Now I am confused (apparently).
Weren't checkpoints supposed to contain hashes of specific blocks so it would be impossible to supply entire fake blockchain that is ahead of the real one ?
Didn't Satoshi implement checkpoints for such attack to be impossible ?
Checkpoints are intended to allow faster and less error prone catching up with the current chain. Without checkpoints, clients could waste days of CPU time verifying fake chains, only to find they have a lower cumulative difficulty. They also help estimate how much of the initial chain download has been verified.
Without checkpoints, clients would eventually converge upon the correct chain but if connected to many malicious nodes this would take much longer.
Well then, wouldn't it be possible to put in checkpoints containing parts (or hashes) of the historically valid chain, so it becomes impossible to supply a longer fake chain ?