Bitcoin Forum
November 17, 2024, 12:09:41 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Were mining pools originally considered  (Read 1454 times)
dannytrigo (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
September 18, 2014, 01:55:55 AM
 #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
williamj2543
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500

Get ready for PrimeDice Sig Campaign!


View Profile WWW
September 18, 2014, 02:03:18 AM
 #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.

█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
▓▓▓▓▓  BIT-X.comvvvvvvvvvvvvvvi
→ CREATE ACCOUNT 
▓▓▓▓▓
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
dannytrigo (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
September 18, 2014, 02:12:53 AM
 #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.
jl2012
Legendary
*
Offline Offline

Activity: 1792
Merit: 1111


View Profile
September 18, 2014, 02:53:11 AM
 #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.

Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY)
LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC)
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
williamj2543
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500

Get ready for PrimeDice Sig Campaign!


View Profile WWW
September 18, 2014, 03:12:43 AM
 #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.

█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
▓▓▓▓▓  BIT-X.comvvvvvvvvvvvvvvi
→ CREATE ACCOUNT 
▓▓▓▓▓
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4284
Merit: 8808



View Profile WWW
September 18, 2014, 03:34:15 AM
 #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.

DannyHamilton
Legendary
*
Offline Offline

Activity: 3486
Merit: 4851



View Profile
September 18, 2014, 03:45:08 AM
 #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.
dannytrigo (OP)
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
September 18, 2014, 03:32:06 PM
 #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.
Taras
Legendary
*
Offline Offline

Activity: 1386
Merit: 1053


Please do not PM me loan requests!


View Profile WWW
September 20, 2014, 01:01:23 AM
 #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.
Willisius
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

I'm really quite sane!


View Profile
September 21, 2014, 11: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?
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4284
Merit: 8808



View Profile WWW
September 22, 2014, 02:01:02 AM
 #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).
Willisius
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250

I'm really quite sane!


View Profile
September 22, 2014, 08: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.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!