Hi folks, I often read that many people are afraid of so called 51% attacks. I really don't understand the big deal about it.
********1st problem: Double Spend Attack*********
Here my solution: Can't we agree that our full Bitcoin Nodes never automatically overwrite these parts of the Blockchain that are older than let's say 1 hour (or 6 confirmations). Normally orphaned blockchains never contain more than one additional block, so there should not occur any problems.
In the rare occasion that there is a longer fork and you have the shorter blockchain the program should ask for manual selection of the blockchain that should be used.
For unlikely cases like
*
http://bitcoin.org/en/alert/2013-03-11-chain-fork* an real 51% attack
* Australia gets disconnected from the rest of the world and you live in Australia or whatever :-)
I think it would be safer if users can manually handle these events.
*******2nd problem: Mining Empty blocks ********
Gavin also found a good solution (changing the protocol to reject longer chains in some cases):
https://bitcointalk.org/index.php?topic=78403.msg874553#msg874553******3rd problem: Prevent all other miners from mining any valid blocks ********
If the attacker doesn't do double spend attacks and includes all transaction but just ignores all blocks from other miners it could be a problem. Other miners would soon go bankrupt and the attacker would gain even more % of the network....
I would suggest the same solution like with problem 1. Any Miner or any Full Node shall not overwrite a Block that is older than 5min in the case that such an attack is ongoing.
******
So overall I suggest to include a manually adjustable parameter, that allows every user to set the timespan in which overwriting existing blocks remains possible.
In case of emergency it could be set to 5min
Full Nodes could set it to 60min and
simple Nodes or Nodes with bad connectivity could set it to infinity....