30
3
The mining algorithm for Bitcoins (and most alternative but similar currencies as well) is purely computation hard, but not decision hard or memory hard. This caused the unexpected effect that GPUs are insanely good at mining and CPUs are so bad at mining that there's almost no point in using them to mine.
This has had many effects, including the concentration of mining into specialized hardware. Suppose that I think that's bad and would prefer that commodity CPUs be optimal for mining and that mining on them be practical. Given the requirements of mining, particularly that it work like a lottery and that valid results be quickly verifiable, are there algorithms that could have been chosen that would have resulted in commodity CPUs being the optimal miners?
Are there algorithms that require lots of decisions and/or lots of memory that could serve as the mining algorithm on future crypto-currencies that would make CPU mining practical again and give everyone with a high-end CPU a reasonable chance at mining?
1Interesting idea. However, even if there was an algorithm that favored commodity hardware it would still not put mining back into the hands of the people because of bot-networks. Maybe there needs to be an additional requirement of human input, like a CAPTCHA. – Thilo – 2011-09-13T01:13:15.887
4@Thilo Can you imagine the tedium of endlessly answering CAPTCHA questions to keep a currency operational? <Shudder> – Gary Rowe – 2011-09-13T09:36:35.750
1I don't think a computer can easily verify a CAPTCHA it didn't generate, so that wouldn't work. Good point about botnets though, that's a serious problem. – David Schwartz – 2011-09-13T16:21:19.403
Year and a half after you originally asked this question, LiteCoin uses scrypt as a CPU-friendly algorithm, while PPCoin uses "proof-of-stake" to balance the electricity expenditures required for "proof-of-work". In retrospect, do you think any of them would've been a better BitCoin design than the original one? :) – Joe Pineda – 2013-05-30T01:23:01.813
@JoePineda: No. I now think that an ASIC-optimized mining algorithm is much more secure than a CPU-optimized one. You can rent a supercomputer or retask a botnet to attack a currency whose PoW algorithm works best on an ASIC. – David Schwartz – 2013-06-02T22:56:31.210
Thanks David, though I find it intriguing. If you can repurpose a botnet or a supercomputer's timeshare to attack an ASIC/GPU friendly crypto-currency, how does that make it more secure than a CPU-friendly crypto-currency? Besides, both a botnet and a supercomputer could be used to mine scrypt-based currencies as well, and be very efficient at that... – Joe Pineda – 2013-06-03T16:00:25.810
2You can't really repurpose a botnet or a supercomputer to attack an ASIC-friendly crypo-currency -- you pretty much have to invest in ASICS, and thus in the very crypto-currency you're attacking. That's why Bitcoin got it right. – David Schwartz – 2013-06-03T19:26:41.227
What would be even better would be some sort of algorithm that didn't require upper end hardware of any sort, and used less electricity to run. I can't imagine how that could work though - even if you based chances of solving a block on something like the combo of the current time and your IP address, you'd still get an advantage by using lots of IP addresses (and it would also result in stacks of low value hardware participating, instead of a lesser amount of high value hardware). Finding some sort of activity to perform that benefits people at the same time would be the ultimate achievement. – Highly Irregular – 2011-10-03T21:28:03.153