0

Update: This is a bad idea because it simply won't work, but it did help me understand what happens between a Miner and a Pool.

And if you missed it in the comments, read @Meni's PDF for a threat and profitability analysis of pools.


Is it feasible for a pool operator to include a "signature transaction" sending a small amount of BTC from and to themselves... and then monitor the public block chain for these addresses if share withholding (and subsequent solo broadcast) is attempted?

In other words, if a pool has 10,000 workers, then generate 10,000 addresses. Then create a transaction with an output corresponding with the worker address. Of course this money won't go to the worker (unless the operator desires it), but it can be used as virtual stamp on the entire block.

  • Is this a viable strategy? If so, what scope is best for this check: per miner, per x miners, or per pool?

(I think the per pool scope may be a good way to get a measurement on % of cheaters)

Murch
  • 71,155
  • 33
  • 180
  • 600
makerofthings7
  • 12,656
  • 11
  • 60
  • 129
  • Honestly, 7 hours ago you didn't know what shares are. It's presumptuous to try to offer solutions to attacks against pools. – Meni Rosenfeld Feb 28 '13 at 08:00
  • @MeniRosenfeld No disrespect or arrogance is intended. I want to learn this system but don't see a clear path of educating myself. I'm using the Q&A format to attempt to get there. Can you suggest a better way to learn that won't come off like that? – makerofthings7 Feb 28 '13 at 13:01
  • 3
    There's a lot of information online, I agree it's not always easy to find. Some questions are ok here but if you want to bounce ideas to see where they fail I think the forum is better. (FWIW the downvote isn't mine) – Meni Rosenfeld Feb 28 '13 at 14:34
  • For withholding attacks specifically, there is some information in one of the sections in my https://bitcoil.co.il/pool_analysis.pdf. – Meni Rosenfeld Feb 28 '13 at 14:35
  • @MeniRosenfeld - Thank you, I found that PDF last night and recognized your name immediately after you answered this Q. I honestly don't know what some of those symbols mean (I never took statistics and assume this is where it's from). I'm reading it in hopes it will explain the technical "data that is being hashed in a share" vs "data being hashed for a block". – makerofthings7 Feb 28 '13 at 14:44
  • A block is a special case of share. If the hash of the share happens to have a low enough value the share is a block. – Meni Rosenfeld Feb 28 '13 at 15:14
  • @MeniRosenfeld If the share happens to be a block, can the block can be published on the network by that miner? (instead of published to the pool so the miner gets the full reward) What is this attack called? – makerofthings7 Feb 28 '13 at 15:31
  • That's not possible. The transaction list - including the generation transaction which credits the pool - is determined before the hashing is done. The miner can't take the block reward for himself. The forum is better for this kind of discussions. – Meni Rosenfeld Feb 28 '13 at 15:36
  • @makerofthings7: Either the miner publishes the block or he doesn't. If he modifies the block, it's now a different block. – David Schwartz Feb 28 '13 at 20:01
  • @DavidSchwartz This made complete sense to me a few hours ago. Thank you for your follow up. – makerofthings7 Feb 28 '13 at 20:03

1 Answers1

5

I think you may be confused about what block withholding means.

Pools already assign unique work to miners which credits the pool, not the miner. A miner cannot take the block reward for himself.

"Block withholding" means the miner submits shares normally, unless the share happens to be a block. Then he withholds it for either sabotage or lie-in-wait. Since block finding is random, no "marking" by the pool can help it determine if the miner found a block or not.

Meni Rosenfeld
  • 19,650
  • 35
  • 70