3

A lot of people doing bitcoin mining participate in pooled mining. When participating in pooled mining the workers perform some mathematical calculation (that I have actually not understood) and are rewarded payouts for their contribute to new block generation.

Is it possible that the workers, minining in a pool, can find out which bitcoin they are working on? If yes, I think they would be able to see to whome the bitcoin they worked on was transferred later to?

Murch
  • 75,206
  • 34
  • 186
  • 622
Erik
  • 225
  • 1
  • 3
  • 5

2 Answers2

4

When a miner in a pool finds a valid block, the pool receives a reward (currently ~50 BTC) in a special generation transaction in the block. The address receiving the generation reward in a given block is known, and pools publish statistics on which blocks they found (and even if not, the miner who found it can in theory know which blocks he himself found if his mining software keeps a record of it), so the generation rewards can be tracked (to the same extent that any other Bitcoin transaction can be tracked).

The mathematical operation done when mining is calculating SHA-256 hashes of variants of a block header. You can learn more about mining for example at What exactly is mining?

Meni Rosenfeld
  • 19,700
  • 37
  • 70
  • I see. What if a miner does NOT find a block, but is only generating hashes? Will he still be able to know on which block he was working with his "miner colleagues" ? – Erik Jun 04 '12 at 14:22
  • @Erik: Each miner in the pool works on a different block, so that's kind of undefined. In particular, usually each miner will have a different address for the generation transaction, and he doesn't know what it is unless the pool publishes it (which it will only do if the miner finds a block). Basically what the miner knows in advance is the serial number of the block he worked on (and the identity of the previous block) and the Merkle branch, a non-invertible condensed summary of the transactions list. – Meni Rosenfeld Jun 04 '12 at 15:34
  • 2
    It's also possible to have a pool with smart miners who decide themselves what block to work on, but that's not commonly done. – Meni Rosenfeld Jun 04 '12 at 15:34
  • If every miner works on their own block, how can the pool create constant payouts? Isn't a payout like a credit from the pool then, as the block was not yet generated? – Erik Jun 04 '12 at 15:58
  • The miner in a pool can know the previous block that is being built upon. So if the previous block is at height 1,083 then the miner can know that the current block being worked on is block 1,084. In the case where there's a fork and there are two 1.083's, the miner in the pool can only build upon the one that the pool happens to have chosen. – Stephen Gornick Jun 04 '12 at 17:20
  • @Erik: Is that question about smart-miner pools? In such pools the miner still credits the pool in the generation transaction, and to prove it he send the pool the Merkle branch of this transaction for every share. The pool then distributes the rewards from the block to the miners. There's also the p2p pool p2pool, where miners credit both themselves and other miners in the generation transaction. – Meni Rosenfeld Jun 04 '12 at 17:42
  • No, my question was not about smart-miner pools – Erik Jun 04 '12 at 17:43
  • Ok. In normal pools it's also true that the block each miner is working on credits the pool. For every miner it will likely be a different address but still an address which belongs to the pool. The pool uses these rewards to pay miners, how exactly depends on the reward system used. In PPS the pool rewards miners for the work done hoping that a block will be found, before it is actually found. In most other systems payment is done when a block is found, and the block reward is distributed among miners who have recently done work. – Meni Rosenfeld Jun 04 '12 at 17:50
1

Everyone, not just miners, can see every transaction that's in any block. Being a miner doesn't give you any special insight that other users don't have. The whole blockchain is public with a full copy being held by everyone who runs a Bitcoin node.

This doesn't mean that you can easily link transactions to people however. Everyone can see that address A transferred X bitcoins to address B. But it's not obvious how to determine who owns addresses A or B.

Meni Rosenfeld
  • 19,700
  • 37
  • 70
Chris Moore
  • 14,825
  • 6
  • 66
  • 87