We all knew asics were coming. Only fools thought scrypt was actually asic proof
Scrypt was the choice because it was ASIC free. Minor changes can keep it that way.
could maybe change the N value as it is hardcoded in most scrypt asics
asics:
Ok give me your 3000. It'll be a preorder, I'll deliver in April. Oh wait, delays. May. Oh wait, more delays. June now. Ok last delay, here you go, your brand new ASIC in July! Btw we were doing extensive "testing" on these ASICs for the past few months, aka mining for ourselves with them until they were no longer profitable due to other ASICs spiking the difficulty.
Enjoy your brand "new", now unprofitable ASIC!
Long story short: ASIC companies are nothing like legitamite GPU companies. They've done things like this in the past, they'll do it again. They are literally probably doing it right now with the 23 GH/s whale on wafflepool.
ELI5: Cuckoo Cycle makes mining easier for a regular user, and levels the playing field against GPU farms. The way it does it is by making the miner access many times to memory, instead of doing many calculations with the memory. GPUs and ASICs don't have much advantage against a regular CPU on this because RAM speed is the same for everyone.
ELI5 cuckoo cycle POW
There has never been a coin with a memory-hard POW like Cuckoo Cycle. Malware that collapses the RAM usage of the host would be very noticeable: 1 GB - 2 GB of RAM plus very high mem IO activity. The host computer would be mostly unusable, and it would leave an easily identifiable footprint for antivirus software. In addition, something to consider: if it were really that easy to get millions of computers in a botnet, how do cryptocurrencies survive? If you had almost infinite free cycles you could perform a 51% attack in any coin.
tromp
Hi. I'm the author of Cuckoo Cycle. Here's some of my thoughts on how it relates to ASICs and GPUs, and some thoughts on how to introduce this.
An ASIC for something like cuckoo728 (graph size 7x2{28} ), which requires 7GB for a single instance, could not be self contained. It would be like a vastly simplified CPU with perhaps 1024 cores, that runs 32 instances of cuckoo728 at once, each one running with 32 threads. It would have to be connected to 32x7GB, or nearly 256GB of memory, which would totally dominate the price. Intel is already planning to introduce cpus with hundreds of cores, so such an ASIC would not offer enough performance advantage to justify its development cost. I think this is as ASIC proof as a PoW can get.
Similarly, no current GPU card has enough memory to run cuckoo728, and future ones with twice the memory of the current max (6GB) would only be able to run a single instance (the algorithm doesn't allow a time-memory trade-of). Even that may not be competitive with a CPU, which has much better memory latencies. The vastly superior memory bandwidth of a GPU is wasted on Cuckoo Cycle, which makes completely random accesses. Another problem with GPUs is that they cannot deal well with data dependent code flow, which features prominently in Cuckoo Cycle. I think this is about as GPU unfriendly as you can get.
The problem with introducing Cuckoo Cycle in an established coin like doge is that is would be quite disruptive. The block header would grow significantly, since a Cuckoo Cycle proof takes 4x42 = 168 bytes. You can bring that down to 4x20 = 80 bytes by choosing a smaller cycle length, but it gives up some algorithmic hardness.
Perhaps the best way to introduce this is Myriad-coin style. First you adopt the ability to accept different PoWs, each with their own difficulty target. Perhaps you initially allow only scrypt with N=2048 as an alternative PoW. Once you have that working smoothly, you could add Cuckoo Cycle as a third PoW into the mix. Eventually, you could phase out plain scrypt by artificially boosting its difficulty.
Even this approach should not be attempted without extensive testing on a testnet and a healthy dose of developer spare-time.
http://en-us.reddit.com/r/dogecoin/comments/210y4a/how_to_stop_asics_and_multipools_xpost_github/