Although this creates an unfair advantage, we must understand that the core protocol is one cpu one vote. There is very little we can do to get around that. Although the benefit is that it promotes rapid adoption of a coin, which is good far all. Here is the simple solution:
Make the coin confirmation time 35-37 days. Hosting providers are billed on a monthly cycle. So if someone launches 1,000 cloud servers, and the end of the month they have no idea what the trade rate is and will have to foot the bill. This is an extreme disadvantage for cloud miners, as they don't know if they will break even or come out in the red. Gives for a more even coin launch and is the easiest to implement.
A disadvantage to one competitor provides an advantage to another. Now you've given an advantage to botnets. This is why I say the algorithm should change on the fly so that people running a botnet will not know how long the algorithm they use will work and botnets cannot easily change or adapt. Cloud servers can change and adapt really easily and would have the advantage over botnets however the cloud operators would not know what model CPU is favored. I'm saying there should be a basket of hashing algorithms which favor different CPUs and settings and this should change continuously and randomly.
And it should also do the same for GPUs. Sometimes it will favor certain GPU types and not others, sometimes it will be SHA256 or it will be Scrypt or perhaps some exotic new algorithm. If we make the hashing algorithm something which can b modular and randomly chosen from a list then you can confuse miners by not allowing them to optimize their settings because they wont know what will come next. It should be an anti-optimization strategy through random algorithm selection.
Although this creates an unfair advantage, we must understand that the core protocol is one cpu one vote. There is very little we can do to get around that. Although the benefit is that it promotes rapid adoption of a coin, which is good far all. Here is the simple solution:
Make the coin confirmation time 35-37 days. Hosting providers are billed on a monthly cycle. So if someone launches 1,000 cloud servers, and the end of the month they have no idea what the trade rate is and will have to foot the bill. This is an extreme disadvantage for cloud miners, as they don't know if they will break even or come out in the red. Gives for a more even coin launch and is the easiest to implement.
Your simple solution is effectively what this whole thread is about... random vesting period between 1 day and 1 year averaging 6 months makes it only profitable to mine if you are willing to take a long-term perspective on the coin and thus eliminates those who are trying to profit on short-term price changes or crowd out little guys. Large mining operations would have to commit capital to the operation proportional to their mining effort for 6 months.
I think random vesting period is a good idea, similar to what we had for Netcoin. Add to it a random algorithm selection and you have something which would work. I understand protoshares is proof of momentum and should stay that. But I think newer DACs should experiment with different algorithms and my suggestion is a random hashing algorithm series with an unknown order combined with random vesting periods. This way neither the cloud miners or the botnet can benefit.
A botnet isn't going to know what hardware the next hashing algorithm will be optimized for and most importantly they wont know how long that hashing algorithm will be in operation before the next switch. So basically I'm saying just as difficulty changes, the entire hashing algorithm should change too and that in the beginning it should be predictable what algorithm is coming next, but later on it should become random so no one will know and this means someone could end up mining on their cellphones because it's optimized for ARM processors for that day or week.
I'm not sure how to pull it off but you want all the unoptimized miners to still mine too.
http://www.netcoin.io/wiki/Netcoin_Proof-of-Work_Hashing_Function