I'm talking about two services: NiceHash and MiningRentals and CryptonightV1 algorithm (which they call CryptonightV7), for example.

Let's suppose someone trying to fool one of them and:

  1. Miner (seller) tries to fool pool (buyer) and sends invalid shares, which not calculated, just generated.
  2. Or pool (buyer) tries to fool miner (seller) and tells it invalid share, but actually, it's valid.

How do these services technically decide who is not a liar at this example? As well as I know, to perform full validation, you need block template from a network. But NiceHash doesn't have it; they only get three params: blob, target, job_id.

For example, xmr-node-proxy, – they have its format and receive everything they need to perform full validation.

xmrig-proxy don't (they perform basic validation), so it can be bypassed, isn't it?

1 Answer 1


Whilst I can't speak to xmrrig-proxy as I'm not familiar with it's codebase, I can to xmr-node-proxy, which does actually perform full validation of the miner submitted job.

Aside from this clarification and to answer your specific points:

  1. Pools perform full validation of submitted jobs and therefore a miner cannot send invalid work and get shares awarded.
  2. A malicious pool could indeed not accept valid work, so there's an element of trust here. If a pool appears to not be accepting valid work and giving the correct shares, miners will begin to notice and use another pool.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.