Author

Topic: Do POW shares count as the diff requested or the diff of the found hash? (Read 1142 times)

legendary
Activity: 1750
Merit: 1007
You only get paid at the diff the pool is asking you for. If the pool is asking you for 1024 diff shares, then both your 1024 diff share and your 30 million diff share only get paid at 1024 diff. There is no exploit possible with this mechanism. Furthermore there is no way to take work from one miner and channel it through a proxy to the pool as a different miner - work is unique to each miner and will only be accepted from that miner.

Thank you, this is the answer I was looking for.

What makes the work unique to each miner?

With Stratum, each connection is assigned unique identifier that is inserted into the coinbase transaction.  This prevents two connections from hashing the exact same headers for the block since the coinbase will never be the same on two different connections.  

Since each connection has its own unique identifier, you couldn't route your hashes to different connections running at different difficulties, since the hash would only be valid on the connection assigned to that identifier.  It's similar to how you can't take a block solving share and submit it to your own wallet, since changing the destination wallet of the coinbase would change the hash, meaning it no longer would meet difficulty.


Obviously, this all assumes the stratum implementation was done properly.  AFAIK, no pool has ever been known to have screwed up this specific part of the stratum spec.
member
Activity: 90
Merit: 10
You only get paid at the diff the pool is asking you for. If the pool is asking you for 1024 diff shares, then both your 1024 diff share and your 30 million diff share only get paid at 1024 diff. There is no exploit possible with this mechanism. Furthermore there is no way to take work from one miner and channel it through a proxy to the pool as a different miner - work is unique to each miner and will only be accepted from that miner.

Thank you, this is the answer I was looking for.

What makes the work unique to each miner?
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
You only get paid at the diff the pool is asking you for. If the pool is asking you for 1024 diff shares, then both your 1024 diff share and your 30 million diff share only get paid at 1024 diff. There is no exploit possible with this mechanism. Furthermore there is no way to take work from one miner and channel it through a proxy to the pool as a different miner - work is unique to each miner and will only be accepted from that miner.
member
Activity: 90
Merit: 10
I understand the basics of how pools work, I'm asking a more in depth question. Please do not respond unless you know how POW works.

I'm talking about when a client has set a difficulty value so as to not spam the local network with actual diff1 shares, instead they can calculate 1024 diff hashes and transmit 1/1024 the amount of data for POW (of course only finding a solution 1/1024 as often). From what I know, a pool will treat 1024 shares at difficulty 1 and 1 share at difficulty 1024 in the same time frame as being from an equal speed miner.

I really want to know a definitive answer to whether an over-difficulty share is credited at the agreed difficulty or at the actual difficulty, I believe it would be at the agreed difficulty but this raises a possible exploit in my mind: What if miners would pass their high diff hashes to a separate proxy which reports that it is performing high diff hashes all the time, however this is not a miner at all and simply a relay for the hashes from other miners. Removing the rare occurrence of a high diff hash for a diff1024 miner should have a negligible effect on the perceived hashrate, reporting a more difficult hash less often could effectively create false hashrate because the proxy would receive more credit than the actual miner would have received.

This also opens up the possibility of a proxy connecting at various difficulties and reporting hashes on the highest possible connection.

Does the difficulty target get placed into the hash? This would eliminate the possibility of claiming that a high diff hash was found at high local diff while continuing to submit low diff hashes.
staff
Activity: 3458
Merit: 6793
Just writing some code
If mining on 1024 diff and a 30m diff hash is found, does submitting this yield 1024 shares or 30m shares?

That yields one share. IIRC each submission that is valid under the pool difficulty counts as 1 share. Thus, it doesn't matter whether that submission is 30m diff or 1024, it just shows that you are doing work and eventually at some point someone will find a hash that is both under the pool diff and the network diff thus solving a block. That submission still only counts as one share.

Here is an example:
person A has been mining for a long time and has submitted 5 million shares.
person B just started mining and has submitted one share, which happened to be of a higher difficulty and is the one that found the block.

Does person B get paid more than person A because he actually found the block? No, he did less work, and is paid accordingly. His one submissions isn't worth more, and he doesn't get more shares because of the high difficulty of that submission.
legendary
Activity: 4424
Merit: 4794
most mining pools operate like this...

in a period between blocks. pools counts up ALL hash submissions from users of that upcoming block and calls each submission a share.. when a block is finally solved the reward is then divided up so that the hard work is paid off..

for instance.
user 1: submits 5million hashes
user 2: submits 25million hashes
user 3: submits 20million hashes

total hashes = 50mill..
25btc reward / 50mill= 0.00000050 per share

user 1: gets 2.5btc for 5million hashes
user 2: gets 12.5btc for 25million hashes
user 3: gets 10btc for 20million hashes

it doesnt matter who solved the block with the winning hash.. its based on how many hashes(shares) were submitted

it doesnt matter what the difficulty is.. as all it means is that it will potentially take longer..
so if the example above took 5 minutes..

for instance of more hashes after 10 minutes.
user 1: submits 10million hashes
user 2: submits 50million hashes
user 3: submits 420million hashes

the rewards would work out the same cut per person after its divided up and shared out.
(rebuttal prevention: yes the numbers are low.. its called simple maths for simple demonstration)
member
Activity: 90
Merit: 10
If mining on 1024 diff and a 30m diff hash is found, does submitting this yield 1024 shares or 30m shares?
Jump to: