Forced fork of older, low difficulty blocks Let’s assume main chain (A) height is 1000 and the difficulty adjustment is 50 blocks. At height 450, the difficulty is very small. By modifying timestamp of blocks 450-500, I mine a fork (B) such that at height 500 to 600 the chainWork is higher than A at the same height.
A new peer wants to sync with me. I send B. At height 500 to 600, the peer chooses B and saves A as a fork. Given a long enough forced forking of A, is it possible for the peer to give up on A?
If the client never gives up on a fork, does this open it to fork chain spam attacks?
ChainWork is not compared at each specific height. The Chainwork of Chain A in total (at height 1000) would be greater than the chainwork at height 600 if the two were equal at 600.
If the two chains had equal work at height 1000 (the tip), then you'd have a standard block race, as described in the whitepaper. The fork with the most hash rate (Satoshi calls it CPU power), will continue to produce more work and ultimately outpace other forks.