This is a message I sent Joe the other day, involving a radical idea that may or may not be feesible. As Joe has a lot on his plate I've decided to let the community munch it over a bit before he gets to reading it
What follows is an unpolished, unfinished idea, and as you might have noticed, I am incapable of short versions, so take your time when reading it to fully grasp my meaning
I was up last night as I had a bit too much coffee and was thinking on how to eliminate the big miners without hurting the rest of the network. The answer - you can't, at least not the way cryptomining is designed now. Even if you limit the POW to let's say 160KH/s, there is nothing stopping me from splitting 700KH/s onto six or seven accounts and seven threads, still increasing the overall hashrate of the network and bringing down the reward, gaining more profit than the average CPU miner. So I came up with a safety switch.
Each CPU has info on it (at least most every recent one) including brand, model, and unique serial number accessible via C++ code. This can be used to limit a person's mining ventures, but only (and this is the biggest downside I can think of) if the code for the miner remains closed-source. This of course clashes with most of the mining logic to evenly distribute money, so that also needs to be redefined a bit for the concept to work.
Imagine the following scenario:
The block chain is mostly left intact, meaning that hashes are calculated, and blocks are closed and people get MAGI. But instead of the person closing the block getting all of the reward, the WHOLE network works as a pool. A user has a minimum hashrate of 1 KH/s to remain viable for currency gain. A user has a maximum hashrate of 30KH/s that he can dedicate to mining in the network pool, thus increasing the network's overall gain. Once a block is closed, the reward is split EVENLY among all participants trying to close that block, regardless of their contributed hashrate. This basically ensures that every participating miner, regardless of their CPU capabilities, is capable of mining the same sum over the course of a day - distributing the cryptocurrency evenly. To prevent a user from mining with several accounts as he can now, the CPU unique number is included in the hashchain, ensuring that one CPU is mining at the same gain as every other, or in other words, one CPU cannot run two threads for two users at the same time. If it reaches more than 30KH in a second (per CPU, not user), the rest of the attempts to close the block are denied for that CPU for the remainder of the timeframe (they are invalid, even if block closure is achieved by the >30000th attempt). This is why the source should probably remain closed, otherwise, a workaround sending fake CPU IDs can be constructed.
For those that want to get ahead (in other words, want to throw their oversized hashrate at the system) there is a separate hashchain, very much similar to the current one - the rewards get smaller as more and more hashes are sent, BUT, you have a bigger statistical chance of receiving the reward of a closed block in proportion to your additional hashrate compared to the total competing hashrate of this second chain. So the rewards are still split, and closing a block is still not a guarantee of profit - you only get a bigger chance if you mine with more powerfull gear (but the rewards are, like now, proportional to the overall network hashrate, and will thus not overpower a regular miner by much).
Together, the two hashchains should distribute the currency evenly among users, with the small folk getting an even share, and the big guys duking it out for spare change (with each block chain leveling block reward separately).
Of course, I may have overlooked some important detail, but I wanted to share my thoughts with you and the rest of the comminuty
Please, let me know what you think.