*This really applies to any CPU-friendly chain, I'm picking on LTC because its what I've been experimenting with.
As a result of the discussion in
Pooler's LTC cpu miner thread I started thinking about how hard and expensive (or easy and cheap) it would be to pull off a 51% attack... and I now think it's pretty easy and cheap.
I ran Pooler's miner on Amazon EC2's highest CPU instance (cc2.8xlarge) and averaged 85 kh/s. The spot price for that instance was $.54/hr. The entire LTC network is
under 18 Mh/s right now (yesterday it was almost 30 MH/s - maybe it was already attacked).
An attacker would need to little more than double the network - let's say add 19 Mh/s right now, which would require 224 of those instances at a total cost of $121 per hour (about 20k LTC at the current btc-e exchange rate). Many more than 224 instances are available if needed -
Amazon mentions how 1064 of these instances were used to rank #42 on a Top 500 supercomputer list.
The only thing I can think of that makes this unfeasible is that the exchange rate for LTC is so low, it's just not attractive to anyone with the know-how to pull it off. The attacker would of course need doctored software and a fair bit of planning to let him double-spend his coin, and sufficient demand at an exchange to let him cash out.
This raises the question of how to defend against such an attack...
Keeping the exchange rate low would work short term, but would most likely hurt adoption in the long run.
Promoting adoption could spike the exchange rate and make the attack more attractive.
Promoting more mining among separate individuals, and pooled mining at that (for transparency) would seem to be the only truly viable option. Of course new miners mean less profit for (currently unprofitable) existing miners, but with enough mining the network/currency could support a higher exchange rate, making it profitable for all miners.
So... how do we actively recruit new miners?