The chain can only be secured with hashing. If a chain is not secure, a malicious individual will attack it. That is the reality of this world.
I'd be interested in hearing your thoughts about Hiro's proposed fix i.e. automated checkpoints.
It appears the automated checkpoint system comes directly from Peercoins automated checkpoints. Of that I am no expert, but I will give you my thoughts. Automated checkpoints do provide an extra layer of security, but at the same time, implementing such a system requires some give and take. The entire idea behind Bitcoin was to provide decentralization through a peer consensus, but automated checkpoints, in this sense, require centralization. In order to take the benefit of additional security that automated checkpoints provide, I must give up some decentralization.
As I said earlier, I am no expert, but it seems to me that centralized, automated checkpoints have a central point of failure - the master checkpoint node. What were to happen if the master node is down? In the instance of an attack, it could go down by means of a sustained DoS. While the checkpoint node is down, an attacker can begin to focus on the chain. One other thing to note is that automated checkpoints are opt-in/opt-out. If a portion of the network refuses to partake in the automatic checkpoints, that portion relies on a herd immunity of sorts to stay with the rest of the network.
I like to think of it like this: Locking the doors and windows to my house may keep a majority of criminals out, but the determined and skilled criminal will just need more time.
@Math
Thanks for trying to explain the problem. I quickly read through the links (I will revisit them). But don't you think an attack is only possible at the moment of fork and that too when attacker is extremely lucky. I noticed a huge jump in hashrate after the fork. To me it seems like an attack was attempted but it failed. Your thoughts?
Try not to get yourself confused over the difference between a hard fork and a fork in the chain, or what you may call a soft fork. A hard fork occurs by means of a protocol update. Essentially, the old version will not be compatible with the new version. This is what happened with Auroracoin at block 5400. The old client still functions, but it will not be able to sync with the version of the chain the developer and community deem valid.
When people like BCX talk about a fork in the chain, they are not referring to a hard fork. I think this (
https://en.bitcoin.it/wiki/Block_chain) provides a simple explanation of what a blockchain is. If you direct your attention to the picture, you'll notice that the blockchain looks like a tree of sorts. If we think of the current chain as the trunk of a tree, BCX has threatened to create multiple branches from that trunk. Some clients may choose to follow one branch while other clients choose to follow a separate branch. When competing chains exist in the wild, it is up to the developer to decide which chain is valid. The chain may be rolled back and a checkpoint instituted.
Forks occur every day in most blockchains, and typically this is a none issue. This is what causes an orphaned block. Even Bitcoin forks daily. The issue, however, is that an attacker can release multiple chains into the wild and nobody knows which is the valid chain. A chain can can be forked from either the last hard fork or the last checkpoint. Without enough hash power to secure the chain, it is free reign from that point forward.