# Partial Proof of Work in Pools

Technically speaking a full PoW solution is one whose hash value is below a certain threshold value say V. It is not equivalent to saying that the hash value must begin with say X number of zeros (unless the threshold value is a power of 2).

My question is what is the usual practice in mining pools where one needs to submit partial proof of work to give a proof that he has worked on finding the block honestly? Lets say in some 'round' the miners in a pool have got their best (the least) hash values as v= v1,v2,..v_n. Is there a function that takes in v as an input and computes the reward for each of the miners ? Are there are checkpoint sort of system where say if the submitted share has hash value lying in between some range then that miner is categorised in that range. Once all the members are categorised into groups (which would reflect how powerful mining rigs they have), they can then be paid for their service proportionately. Of course there is no need to categorise, like the way I mention but is it how it works in practice ? If so, how are the level checkpoints distributed ?

It depends on the payout system that they are using. Most payout systems use some sort of payment based on shares. A share is a Proof of Work that a miner submits to the pool. This Proof of Work is a "full PoW solution". But instead of having to meet the target for the Bitcoin network, shares just need to meet an easier target set by the mining pool.

Pools track how much work and how much hashrate someone has based upon the number, frequency, and difficulty of the shares submitted to them. They then use that to compute the payout amount. This computation depends on the payout system being used (e.g. PPS, PPLNS, etc.). The different payout systems calculate the final payout in different ways, but they all use this concept of shares.

The shares themselves are not categorized by their value. A pool knows what difficulty a particular miner is mining at so all shares are treated as being at that difficulty even if the value meets some other difficulty. The hashrate can be inferred from the number and rate of shares being submitted at a particular difficulty; the value of the hashes are not important so long as they meet the target.

• Quick question, what prevents a miner from creating duplicate accounts and submitting the same shares twice? For example, minerA computes a valid PoW solution to the difficulty target set by the pool. minerB somehow reads what minerA has submitted and resubmits the same shares without any actual work. I assume this is entirely dependent on the pool, but are there some standards to prevent this? Perhaps the PoW has some added hashes/values in the input script to differentiate a user? Maybe rejecting the same shares that are already submitted? Thanks :) Oct 26, 2018 at 1:05
• There aren't really standards for anything involved in mining pool operation. However, since shares are really just blocks with potentially invalid PoWs, each share is unique. Furthermore, because pools issue work to miners with specific parameters, they can use some unique identifier to be included in the share so that the miner can be identified. Many pools use part of the extranonce in the coinbase transaction to do this. So if two miners submit the same share, the person who is identified by the extranonce is the one who gets credited with the work, and he is only credited once.
– Ava Chow
Oct 26, 2018 at 1:23
• Thanks @AndrewChow for answering. For clarity, the exact algorithm defers from one payout system to another but the overall idea is to look at the shares submitted and its frequency to "figure out" a miner's hash rate. That is, lower the hash values and higher the frequencies of the submitted shares more this is hash rate. Is that correct ? 2nd question, is there any other way of submitting a partial proof of work ? One could for eg submit a picture of electric meter, but it can't be verified in a decentralised manner. Are there any alternate decentralised ideas for partial proof of work ? Nov 3, 2018 at 1:39
• Actually, since the 2nd question seems a little off topic from the thread, i'll post it as a new question :) Nov 4, 2018 at 7:57