Author

Topic: Were mining pools originally considered (Read 1456 times)

sr. member
Activity: 364
Merit: 250
I'm really quite sane!
September 22, 2014, 03:52:44 PM
#12
...
Quote
and if they are in fact a desirable thing to have as part of the network.
Pooling for payment? The network doesn't care, thats a matter which only impacts the miners in question. But the common way that miners are implemented using "stratum" is actively harmful to the network and the security model of the Bitcoin system.
...
Curious here: What's harmful about stratum? Is it that miners have to trust the pool operator completely?
Not just that, though thats true too... it's only harmful to the miners themselves, it's foolish to mine with a centralized pool who could be stealing from you via skimming (or via 'hacking' incidents) but it only harms the miner who chooses to do it.

Stratum continues and cements a historical inertia of conflating pooling for payment (which encourages more small participants by reducing variance) with "selling your vote" on the valid state of the network, creating real centralization which is antithetical to the security model.

There is no technical reason why you can't form your blocks locally, according to your own preference and policy, but pay out the coinbase according to a pool's spec and get credited for that work.

This means that pools create a large centralization risk when there is no need for it to be so to get their benefit.  Indeed, it's arguable that miners can move so they're less of a risk than, say, cloud mining— but in practice miners do not move even when a pool is caught ripping people off (and certantly not quickly).

Thanks for the detailed response.
staff
Activity: 4284
Merit: 8808
September 21, 2014, 09:01:02 PM
#11
...
Quote
and if they are in fact a desirable thing to have as part of the network.
Pooling for payment? The network doesn't care, thats a matter which only impacts the miners in question. But the common way that miners are implemented using "stratum" is actively harmful to the network and the security model of the Bitcoin system.
...
Curious here: What's harmful about stratum? Is it that miners have to trust the pool operator completely?
Not just that, though thats true too... it's only harmful to the miners themselves, it's foolish to mine with a centralized pool who could be stealing from you via skimming (or via 'hacking' incidents) but it only harms the miner who chooses to do it.

Stratum continues and cements a historical inertia of conflating pooling for payment (which encourages more small participants by reducing variance) with "selling your vote" on the valid state of the network, creating real centralization which is antithetical to the security model.

There is no technical reason why you can't form your blocks locally, according to your own preference and policy, but pay out the coinbase according to a pool's spec and get credited for that work.

This means that pools create a large centralization risk when there is no need for it to be so to get their benefit.  Indeed, it's arguable that miners can move so they're less of a risk than, say, cloud mining— but in practice miners do not move even when a pool is caught ripping people off (and certantly not quickly).
sr. member
Activity: 364
Merit: 250
I'm really quite sane!
September 21, 2014, 06:12:37 PM
#10
...
Quote
and if they are in fact a desirable thing to have as part of the network.
Pooling for payment? The network doesn't care, thats a matter which only impacts the miners in question. But the common way that miners are implemented using "stratum" is actively harmful to the network and the security model of the Bitcoin system.
...

Curious here: What's harmful about stratum? Is it that miners have to trust the pool operator completely?
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
September 19, 2014, 08:01:23 PM
#9
Quote
If with some other hashing mechanism it was enforced that the miners had all the information they needed to generate the block themselves, it would discourage pools because any pool member could 'steal' a block.
Incorrect. A block cannot be 'stolen' because it is immutable once authored. Every attempted block has an independant success probablity, and changing any part of the block results in a totally different block.
For clarity, that means you can't solve a block for a pool and then decide the coins should go to you instead. Doing so would give the block a new hash, which would not be valid.
newbie
Activity: 4
Merit: 0
September 18, 2014, 10:32:06 AM
#8
Thanks for the information everyone.  Its answered my concerns about the big mining pools.
Clearly I need to read up more on the pooled mining architecture/protocols.
legendary
Activity: 3472
Merit: 4801
September 17, 2014, 10:45:08 PM
#7
I am wondering if mining pools were originally thought about when Satoshi originally designed Bitcoin,

There is no mention of pooled mining in the bitcoin whitepaper, so I suspect that it wasn't "originally thought about when Satoshi originally designed bitcoin".

However, it appears that Satoshi was in favor of polled mining:

ribuck's description is spot on.

Pool operators can modify their getwork to take one additional parameter, the address to send your share to.

The easy way for the pool operator would be to wait until the next block is found and divy it up proportionally as:
user's near-hits/total near-hits from everyone

That would be easier and safer to start up.  It also has the advantage that multiple hits from the same user can be combined into one transaction.  A lot of your hits will usually be from the same people.

The instant gratification way would be to pay a fixed amount for each near-hit immediately, and the operator takes the risk from randomness of having more or less near-hits before a block is found.

Either way, the user who submits the hit that solves the block should get an extra amount off the top, like 10 BTC.

New users wouldn't really even need the Bitcoin software.  They could download a miner, create an account on mtgox or mybitcoin, enter their deposit address into the miner and point it at anyone's pool server.  When the miner says it found something, a while later a few coins show up in their account.

Miner writers better make sure they never false-positive near-hits.  Users will depend on that to check if the pool operator is cheating them.  If the miner wrongly says it found something, users will look in their account, not find anything, and get mad at the pool operator.

and if they are in fact a desirable thing to have as part of the network.

Pooled mining results in more total hash power in the network (resulting in better security), and allows more people to participate by reducing the variance so that mining isn't restricted to those that can afford to wait weeks, months, or years for a reward (or restricted to those that can afford enough hashing power to succeed in completing blocks frequently).

As far as I understand, with the way that the hashing/block generation works today, mining pools are 'encouraged' because you can have a pool where no particular miner has the information to generate the block and collect the block reward themselves.

I'm not quite sure what you are trying to say here.  It is safe to create a pool because the participants can't steal the block reward from the pool.  Polls are 'encouraged' because it reduces the cost of entry and reduces reward variance. If someone wants to (and can afford to) participate in solo mining, there isn't any reason that they can't generate their a block and collect a block reward themselves.

If with some other hashing mechanism it was enforced that the miners had all the information they needed to generate the block themselves, it would discourage pools because any pool member could 'steal' a block.

The fact that someone can generate their own block in solo mining doesn't prevent pools from creating blocks.  The hashing mechanism has nothing to do with miners inability to modify the block.

Secondly, are mining pools desirable in the network?

Didn't you ask this once already?

I think I answered it.

There are many scare stories about pools having too much hashing power and potentially reaching 51%.

And without pools, there would be scare stories about a wealthy person having too much hashing power and potentially reaching 51%.

And really, a mining pool could be considered like a single node (a huge node) in the network.

It really can't.  Since there is nothing that a pool can do to force the participants to stay with them.  Participants are free to change pools as often as they like whenever they like.

I am reading back on when the blockchain fork occurred due to a bug in v0.8 of the client, and how mining pools were encouraged to downgrade to v0.7 to fix the issue.  Whilst it was a good outcome, is it not very scary that in a distributed network, where one of the key principles if that you do not trust other peers, it is possible to convince enough hashing power to change client version?

If there weren't any pools, then the solo miners would have been asked to switch.  There would be many less miners, so it wouldn't be much more difficult to communicate to them and arrange the coordinated switch.
staff
Activity: 4284
Merit: 8808
September 17, 2014, 10:34:15 PM
#6
I am wondering if mining pools were originally thought about when Satoshi originally designed Bitcoin,
No.

Quote
and if they are in fact a desirable thing to have as part of the network.
Pooling for payment? The network doesn't care, thats a matter which only impacts the miners in question. But the common way that miners are implemented using "stratum" is actively harmful to the network and the security model of the Bitcoin system.

Quote
mining pools are 'encouraged' because you can have a pool where no particular miner has the information to generate the block and collect the block reward themselves.
You have completely misunderstood the pooled mining process and how its security arises. No secrecy is required or would be in any way helpful. Pooling is secure because miners send failed lower difficulty attemps ('shares') that prove that they were attempting to mine blocks meeting particular criteria. This proves their work in an unforgable way and protects the pool from the miner. (But nothing protects the miners from the pool with centeralized pools, and pools have "lost" the miners funds many times in the past)

It's just an accident of history that hardware operators commonly completely give up control over their vote, blindly selling their computation to a third party... secure mining is perfectly possible while leaving the operators in control of their vote, just by agreeing to pay the earnings according to the pool's policy. (As is implemented in P2pool, but could also be equally accomplished for centeralized pooling systems too)

Quote
If with some other hashing mechanism it was enforced that the miners had all the information they needed to generate the block themselves, it would discourage pools because any pool member could 'steal' a block.
Incorrect. A block cannot be 'stolen' because it is immutable once authored. Every attempted block has an independant success probablity, and changing any part of the block results in a totally different block.

hero member
Activity: 588
Merit: 500
Get ready for PrimeDice Sig Campaign!
September 17, 2014, 10:12:43 PM
#5
Ah, it is built into the protocol/reference client?  I had assumed it was something people had implemented on-top - but admit I have not looked into that in enough detail.
To me, it feels like the network would be more secure if every node was mining for themselves rather than forming pools - although I guess we would have less hashing power because the reward would be extremely rare for each node.
Well i think there is an implementation for connecting to a miner, but I have no idea.
legendary
Activity: 1792
Merit: 1111
September 17, 2014, 09:53:11 PM
#4
Ah, it is built into the protocol/reference client?  I had assumed it was something people had implemented on-top - but admit I have not looked into that in enough detail.
To me, it feels like the network would be more secure if every node was mining for themselves rather than forming pools - although I guess we would have less hashing power because the reward would be extremely rare for each node.

There is pros and cons, and is discussed many times already.

As you noted, with the current model, people could still maintain a small scale mining farm in their garage. If pooled mining is forbidden, mining could be even more centralized.
newbie
Activity: 4
Merit: 0
September 17, 2014, 09:12:53 PM
#3
Ah, it is built into the protocol/reference client?  I had assumed it was something people had implemented on-top - but admit I have not looked into that in enough detail.
To me, it feels like the network would be more secure if every node was mining for themselves rather than forming pools - although I guess we would have less hashing power because the reward would be extremely rare for each node.
hero member
Activity: 588
Merit: 500
Get ready for PrimeDice Sig Campaign!
September 17, 2014, 09:03:18 PM
#2
I'm sure, if he didnt want this to happen he didnt have to implement the feature of connecting to a miner to mine for them or however it works.
newbie
Activity: 4
Merit: 0
September 17, 2014, 08:55:55 PM
#1
Hi,

I'm new here.  Sorry if this is answered elsewhere - I tried searching but couldn't find any info on it.
I am wondering if mining pools were originally thought about when Satoshi originally designed Bitcoin, and if they are in fact a desirable thing to have as part of the network.
As far as I understand, with the way that the hashing/block generation works today, mining pools are 'encouraged' because you can have a pool where no particular miner has the information to generate the block and collect the block reward themselves.  If with some other hashing mechanism it was enforced that the miners had all the information they needed to generate the block themselves, it would discourage pools because any pool member could 'steal' a block.
Secondly, are mining pools desirable in the network?  There are many scare stories about pools having too much hashing power and potentially reaching 51%.  And really, a mining pool could be considered like a single node (a huge node) in the network.  I am reading back on when the blockchain fork occurred due to a bug in v0.8 of the client, and how mining pools were encouraged to downgrade to v0.7 to fix the issue.  Whilst it was a good outcome, is it not very scary that in a distributed network, where one of the key principles if that you do not trust other peers, it is possible to convince enough hashing power to change client version?
Thanks for any info and corrections in my understanding.
PS. I have read about 2P-PoW (2 phase proof of work) which is a proposed change to disincentivise pools, but not sure what the community opinion is on something like that.

Dannytrigo
Jump to: