The other attack is the offline attack, where the attacker does not publish his blocks until his chain is at least X blocks longer than the public chain. In this attack, 51% is indeed a tipping point, because once he reaches 51% he is assured that if he waits long enough, he will eventually have enough blocks saved up to perform the chain reversion.
But this attack is so easy to detect that it makes no sense to try it.
You mean like everyone would notice if 7 blocks get swapped all at once? Yeah, we would notice, but they would be the correct chain then, so what would we do about it?
Sell their bitcoins!!!
This attack can be countered by changing the calculation for deciding which chain is valid. An exponential function would solve the problem.
Interesting idea. IIUC, this makes it such that the deeper the reorg, the higher the barrier for it to be accepted. Which means that you effectively force the >51% attacker out into the open (they have to publish their blocks or their private chain will quickly become virtually impossible to get accepted) and basically force them to periodically build off of other's blocks...and you effectively require miners (and all nodes really) to take steps to ensure blocks get widely distributed. However, if there is a temporary split in the network, doesn't this run the risk of a temporary split becoming permanent? I suppose you could come up with a non technical means of resolving such a split should it ever occur...it might be an acceptable trade off considering that this proposal might have a huge benefit (in the sense that it would severely inhibit the damage that could be done by a miner with >50% could do).
Yup, you understand correctly. If you require reorgs with more than X (six might be a good value for X) blocks to require 2^(Y-X) difference in difficulty, a recipient can wait 12 blocks and know that unless the attacker has 64 times more power than the rest of the world, the transaction won't be reversed. Or they can wait 26 blocks and know that an attacker would need more than a million times as much. After a day, I would be pretty confident that not even ET could reverse it.
The risk of splits isn't as great as you might imagine. If the network was cut in half (weighted by hashing power), we would have about 2 hours to notice the problem and fix it. If the network was cut 90/10, we would have 10 hours. The less even the network break, the more time we have until it becomes a problem, and also the less effort will be needed to fix it.
And yes, resolving a permanent split would require human intervention. Essentially, the minority network would be forced to discard all blocks since the split if they wanted to rejoin the global network. Personally, I think the potential cost to individual miners and nodes is a small price to pay to protect the network as a whole.