# How does the pool know the share hashes are calculated and not cheated?

Miners calculate share hashes and submit them to the pool for their proof of work. And if the share hashes leads to a correct block hash in terms of difficulty, everybody in the pool gets paid according to their submitted work using different distribution methods.

Question: Why can't a miner just submit random numbers as fake share hashes (little work) to the pool, instead of doing the actual hard work of hashing?

So for the pool: Is there a way to prevent this without recalculating the hash to find out its fake? Recalculation is hard work, and annihilates the sense of delegating it to miners.

And if there is no control it would only be visible with statistics as the pool is too unlucky on the long term. Ex.: a miner submitting 100THash/s and never finding a match might doesn't even calculated the hashes but just submits random stuff.

Edit: Clarified question to distinguish from similar sounding questions.

• What makes you think the share hashes are not checked? But one can check by just computing one hash, rather than the trillions needed to find one that makes a valid share. That's the whole point of a proof of work - hard to find, easy to verify. Nov 12, 2017 at 21:58
• @HighlyIrregular Thats what I read but don't understand. If I submit a trillion random numbers with a simple laptop I will get a large reward portion from the pool as soon somebody else in the pool submits the correct one using expensive ASICs. So I didn't do any work but still am contributed a large portion simply because my hashes were "unlucky" and for the pool it looks as if I contributed. Nov 13, 2017 at 19:32
• No. If you run through a trillion hashes and find, for example, 10 hashes that are good enough to submit as "shares" to the pool, and the ASIC miners submit 100,000,000 shares, then you'll receive a proportion of the reward equal to 10 out of 100,000,010. If the reward is 20BTC, then you'd receive about 200 satoshis, currently worth about \$0.01. To earn that much without an ASIC device, you'd probably use \$1 or more of electricity. Those numbers are only an example, but it gives you an idea of the situation. Nov 13, 2017 at 20:30
• @HighlyIrregular I meant you submit 100,000,000 shares, which in a extreme context is 100,000,000 times the same number to fake "hashing work". Or does the pool keep a "submitted hashes from all miners database" to prevent this? Nov 14, 2017 at 20:14

If the hashes are not recalculated/checked by the pool independently

The hashes would be checked by the pool, so you can't just submit random numbers. Pools would most likely ban miners which did that, for wasting their time.

• But checking is the same amount of work as calculating the hash. They could never keep up with all the miners, if there isn't somewhere a shortcut for the pool, or a way to assign double work between miners to detect fraud (and loose hash power) Nov 12, 2017 at 22:32
• @Stefan: "But checking is the same amount of work as calculating the hash." No, it's not! Nov 13, 2017 at 3:08
• @NateEldredge Calculate the hash is same as check the hash, but to find the valid hash (share) miner must check (calculate) trillions of hashes, and the pool server only has to check (calculate) the one submitted by the miner. But I see that by calculate you assume finding the correct hash. Nov 13, 2017 at 12:42
• The key is that a share is not just any (nounce, hash) pair, it is a (nounce, hash) pair which reach a given difficulty level, but a level which is much easier than the "network difficulty". May 13, 2021 at 10:31

I had the exact same question and took me a while to find the answer.

TLDR: the pool simulates a smaller difficulty network and if you find a solution to it, the pool considered you did work and can check it in an instant. One of those solutions might be so good that it is the solution to the network.