Bitcoin Forum

Bitcoin => Mining => Topic started by: BITLISH on October 29, 2011, 11:58:55 PM



Title: Submitting work to multiple pools
Post by: BITLISH on October 29, 2011, 11:58:55 PM
Hello,

mining is getting some work, calculating and submitting it back. But what would happen if one submit calculated work to multiple pools? How pools are protecting against it?


Title: Re: Submitting work to multiple pools
Post by: Deafboy on October 30, 2011, 01:28:50 AM
I wonder how is it possible that none asked this question before. I was thinking about this some time ago and I think there is no mechanism implemented yet to prevent this.


Title: Re: Submitting work to multiple pools
Post by: slush on October 30, 2011, 01:35:12 AM
I wonder how is it possible that none asked this question before. I was thinking about this some time ago and I think there is no mechanism implemented yet to prevent this.

This has been asked (and responded) many times. There is also wiki page on bitcoin.it explaining this :-) (however it isn't working for me now so I cannot send a link).

Quote
there is no mechanism implemented yet to prevent this.

Of course there there *is* a mechanism to prevent this and no (properly coded) pool will accept share originated from another service. Pool is recalculating your submitted share and validating if it's correct.


Title: Re: Submitting work to multiple pools
Post by: Deafboy on October 30, 2011, 02:21:18 AM
Now when I think about it again... You are right. Sorry for my stupid post. I must have missed this topic every time before. :)
Btw. wiki is up again but I can't find it. Can you please post link?


Title: Re: Submitting work to multiple pools
Post by: DeathAndTaxes on October 30, 2011, 06:39:54 PM
I wonder how is it possible that none asked this question before. I was thinking about this some time ago and I think there is no mechanism implemented yet to prevent this.

The block header contains the Merkle tree root hash.  It is a hash of ALL the transactions in the block.  One of those transactions is the coinbase transaction which contains the pool "reward" address.

Simply put a hash is only valid for a particular block header including indirectly the pool reward address.  The only way two pools could have the same block header is if all variables were the same (including the reward destination). 

Thus any particular hash is only useful to a particular pool.

It is not possible for a miner to
a) keep the block and submit it the network to keep the whole reward.
b) give it to another pool

It is possible for a miner to simply not return the solution.  A block withholding attack however only hurts the pool it doesn't help the attacker.

Info on block withholding attack:
http://bitcoin.stackexchange.com/q/1338/307


Title: Re: Submitting work to multiple pools
Post by: BITLISH on October 30, 2011, 07:50:01 PM
Exhaustive explanation, thank you.


Title: Re: Submitting work to multiple pools
Post by: Meni Rosenfeld on October 30, 2011, 07:53:58 PM
It is possible for a miner to simply not return the solution.  A block withholding attack however only hurts the pool it doesn't help the attacker.
The lie-in-wait block withholding attack certainly can help the attacker.