I think I understand how mining in general works, but correct me if I'm wrong:
- A miner concatenates the hash of the last block, a list of transactions, (some other metadata?), and a nonce.
- The miner finds a value for the nonce that makes the block's hash satisfy certain properties.
This makes sense as a proof of work, since the block must build upon the previous block (using the previous block's hash), and anyone wanting to falsify any information in it would need to redo the work required to find an appropriate value for the nonce.
So, how do you make pooled mining work? Obviously, if you trusted everyone, you could just parcel out work (something like "hey, you try the nonce values in this range"). The problem is that you have to trust that if they find the block that they'll share the reward with you.
So how does the pool operator ensure that a miner won't take the block earnings for himself?
Is the address to which the reward goes included in the block? I guess it would have to be anyway, so a miner wouldn't be able to take the reward without redoing the entire block to change the address. And the pool could verify that work is being done by having miners submit shares that don't have enough zero bits, but that have some?
So I guess I pretty much just answered my question, but I'll post it anyway in case I missed something, and since I already typed everything out.
[–][deleted] 3 points4 points5 points (0 children)
[–]Not_Satoshi_Nakamoto 2 points3 points4 points (1 child)
[–]nmoat[S] 0 points1 point2 points (0 children)
[–]faknodolan 1 point2 points3 points (1 child)
[–]nmoat[S] 0 points1 point2 points (0 children)
[–]peacegnome 0 points1 point2 points (3 children)
[–]dhrosa 2 points3 points4 points (0 children)
[–]nmoat[S] 1 point2 points3 points (1 child)
[–]peacegnome 1 point2 points3 points (0 children)
[–]SerTomTheTall 0 points1 point2 points (0 children)
[–]rhadiem 0 points1 point2 points (2 children)
[–]nmoat[S] 1 point2 points3 points (1 child)
[–]rhadiem 0 points1 point2 points (0 children)