Because the network follows a longest chain is valid rule? If it doesn't then you are relying on a node knowing that an alternate chain came "later" and not all nodes will no that. As I already pointed out up thread imagine you are a new node, you connect to the network and receive two competing chains A & B. A is longer. Which chain do you use? If you use A and other nodes use B that is a problem (isolation attack and network fork due to non deterministic chain selection). If they are choosing B over A because they "saw it first" there is no way for you to confirm that or even know that.
Still it doesn't need to be 10,000 blocks. A 51% attack can be accomplished with a reorg of any length.
What's the downside of just hard coding a max limit of history blocks that can be reorged in AcceptBlocks? And must make that max limit < confirmation needed?
Wouldn't this protect nodes with the an existing "real" chain, without fearing for it to be overwritten (at least past the limit)?
nvm.. i guess that would cause the "hard fork attack problem".. where offline/new nodes could still pick up an entirely different fork all the time. no consensus..
great thread though.. i learned a lot:) Someone needs to make a diagram'd youtube video though.. hehe