What will stop my node from saying to the network "I can make bazillion hashes per second"? Do you know what Proof-of-Work is?
Proof of work?? what's that??? :p
When a node joins it has to complete a Proof of Work at 100% to prove its speed. This happens periodically.
How many? Who will send them? All network or part of it? If all, this is nonsense, node will die. If part of it, how the other part will know the block is valid?
Of course not all, in the region of a few dozen at most.
Each client generates a unique database from the same algorithm, based on his wallet ID. When a block is completed other nodes confirm this and then ask for a randomly located answer from across this database. The winning client grabs them from the DB and sends them out to be checked. If he is too slow (i.e he doesn't have the database because the botnet controller can't install a 2Tb drive onto every remotely controlled machine) he will not receive the coins. He
could generate them, but that would take minutes and the other nodes will only give him a few seconds...
At the moment this seems the best candidate for proving a client is not a botnet zombie, at reasonable price.
If you have a better solution we'd love to hear it would be throwing a nice bounty your way if implemented.
A white paper will be coming.
Thanks for asking an intelligent question, I'll send you a link for 5 parts of our .4% prefarm if you want them.