Pages:
Author

Topic: Simple adjustment to prevent mining pools (Read 2391 times)

sr. member
Activity: 364
Merit: 250
I'm really quite sane!
April 15, 2014, 03:54:33 PM
#23
This sounds like a great idea to me. Pools are necessary for Bitcoin, but they are improperly applied to altcoins.
legendary
Activity: 3388
Merit: 4615
i would say people go to a certain pool not because of slightly better variance but because of a better web interface.

My opinion is that a rather significant percentage of hashers are actually really bad at mathematics (which is why they are mining at a loss relative to simply purchasing the bitcoins directly).

As such, they don't understand variance, or how pools reduce variance.  Instead they just assume "bigger is better".  They figure that the largest pools must be the best pools, relying on the idea that enough other people have done the investigation as to which pool is best and therefore by going with the majority they are benefiting from the research of others (just like people who aren't very good at computer programming assume that enough other people have already reviewed the bitcoin source, so they choose the wallet that they believe most people are using).

Furthermore, because larger pools get blocks more often, many of these hashers believe that more blocks = more bitcoins, and therefore think that larger pools will earn them more money.
sr. member
Activity: 448
Merit: 250
there is no need to prevent mining pools, let the free markets sort this out.
as bitcoin becomes more popular and pools start making more money running a pool will become a more lucrative business venture,
naturally more pools will be created and the hashing power will be more distributed between them.
I'm afraid you must not be very experienced with this ecosystem. There have been hundreds of pools created. Operating a pool, especially a small one, is not a business that has many barriers; and large pools have had revenue at times in excess of $100k/mo, so it's not like any more income is needed to justify running one.  Just having a choice of centralization does not result in Bitcoin being decenteralized, and the major reason you see consolidation in pools isn't because there aren't people running them but because pools do their job (reducing variance) when they are large.

but even if we had 100 pools each with 1% of hashing power the variance would be low enough for 99 percent of people (the pool would find approximately 1.44 blocks each day and thus people would get paid every day).
i would say people go to a certain pool not because of slightly better variance but because of a better web interface.
staff
Activity: 4172
Merit: 8419
there is no need to prevent mining pools, let the free markets sort this out.
as bitcoin becomes more popular and pools start making more money running a pool will become a more lucrative business venture,
naturally more pools will be created and the hashing power will be more distributed between them.
I'm afraid you must not be very experienced with this ecosystem. There have been hundreds of pools created. Operating a pool, especially a small one, is not a business that has many barriers; and large pools have had revenue at times in excess of $100k/mo, so it's not like any more income is needed to justify running one.  Just having a choice of centralization does not result in Bitcoin being decenteralized, and the major reason you see consolidation in pools isn't because there aren't people running them but because pools do their job (reducing variance) when they are large.
sr. member
Activity: 448
Merit: 250
there is no need to prevent mining pools, let the free markets sort this out.
as bitcoin becomes more popular and pools start making more money running a pool will become a more lucrative business venture,
naturally more pools will be created and the hashing power will be more distributed between them.
staff
Activity: 4172
Merit: 8419
It makes me see mining pools in a different light: possibly a necessity
Centralized pools are not, however. (P2Pool is an existence proof that there are other options)
newbie
Activity: 3
Merit: 0
Annoyingly, the obvious 'replacement' for pooled mining is not non-pooled mining, it's cloud mining that puts the hardware in the physical control of the pooling party. Thats a step down.

Good point, I hadn't considered that, that would be the opposite of the desired effect.
It makes me see mining pools in a different light: possibly a necessity to form a block against server farms.
legendary
Activity: 1232
Merit: 1084
Block-creation is basically free however. More costly is block validation— after all we want mining to be evidence that the chain is valid for SPV nodes... but that also means not having miners skipping out on the validation. Forrest has been working on some improvements to make it possible to mine with very low resources, but I think I disrupted his progress somewhat by pointing out that validation is really important.

The point is to share validation over a swarm of nodes.  The main problem is that to create a new block immediately after a block is found is hard. 

A swarm would likely have latency problems.

An option would be something like

Create 2MB block with valid transactions and commit to that block while mining the currency block.

When a new block comes in, delete the transactions that are included in the new block.

The result will have at least 1MB worth of transactions, so a 1MB block can be created using the first 1MB worth of transactions.

If the "draft" block is restricted so that there are no transaction's that depend on other transactions in the block, then dropping transactions is safe.

While the minting fee dominates, an even easier method would be to switch to empty blocks for 1-2 minutes after a new block is found.

- new block detected
- immediately switch to mining an empty block with just a coinbase
- verify the new block
- create/verify next block for miner pool
staff
Activity: 4172
Merit: 8419
A miner pool with 1% of the hash rate would share the load of block creation over lots of miners, rather than each miner running his own node.
Block-creation is basically free however. More costly is block validation— after all we want mining to be evidence that the chain is valid for SPV nodes... but that also means not having miners skipping out on the validation. Forrest has been working on some improvements to make it possible to mine with very low resources, but I think I disrupted his progress somewhat by pointing out that validation is really important.
legendary
Activity: 1232
Merit: 1084
This is undesirable as it disallows users control of their own transaction selection.

They could join a different miner pool.  The inclusion rules could be set by the creator of the pool.

A miner pool with 1% of the hash rate would share the load of block creation over lots of miners, rather than each miner running his own node.
staff
Activity: 4172
Merit: 8419
All nodes would be mining the same block
This is undesirable as it disallows users control of their own transaction selection.
full member
Activity: 126
Merit: 108
Andrew Miller
This is the same idea as in:
https://bitcointalksearch.org/topic/a-non-outsourceable-puzzle-to-prevent-hosted-mining-and-mining-pools-309073

First of all DSA signatures don't work since it's easy to create a new valid DSA signature from an old one and some partial state, so you could easily outsource a partial attempt and the pool participant could keep iterating without needing to know the key.

The other thing is that the "non outsourceable puzzle" focuses on preventing the outsourcer from just posting a bond "I promise 2x the reward of a block never to steal the reward" by using zero knowledge proofs. If this is too exotic, and the goal is just to discourage pools (rather than hosted mining as well), then maybe using just a (deterministic, strongly unforgeable) signature may be enough.
legendary
Activity: 1232
Merit: 1084
GBT was supposed to enable it, but it was supplanted by stratum before it could get adoption.  I'm not sure of how to break out of the status quo.

I wonder if a p2p system for mining could be implemented.

P2pool pools hashing but each node still requires bitcoind.  It pools hashing but not mining.

I think a system based on fraud proofs might work.  All nodes would be mining the same block, but it would be created in a p2p way.
staff
Activity: 4172
Merit: 8419
This will also kill all ASIC-based mining because the bottleneck becomes the ECDSA signing operation. A mining gig would only produce MH/s instead of TH/s or GH/s today.
No it wouldn't, it would just require different hardware.
newbie
Activity: 55
Merit: 0
This will also kill all ASIC-based mining because the bottleneck becomes the ECDSA signing operation. A mining gig would only produce MH/s instead of TH/s or GH/s today.
legendary
Activity: 3388
Merit: 4615
Or they send the private keys of the coinbase address to their clients, which means that all these clients can claim the coins when a block is found.

Actually, each client could be given a different coinbase address. There would still be the problem that the individual client could run off with the entire block reward, but it would reduce the exposure to just the single client.

Furthermore, each client could be required by the pool to put up 50 BTC earnest money that the client would forfeit to the rest of the pool members if they failed to share the reward of a solved block with the rest of the pool.

This would allow each client to continue signing and hashing without needing to bother the pools servers, and would provide an incentive for each client to share the block rewards appropriately.

Therefore, since this doesn't seem to prevent pools, there doesn't seem to be much benefit to making such a disruptive change to the protocol.

staff
Activity: 4172
Merit: 8419
Annoyingly, the obvious 'replacement' for pooled mining is not non-pooled mining, it's cloud mining that puts the hardware in the physical control of the pooling party. Thats a step down.

Instead we /just/ need to improve the tools so that people can pool for variance reduction without turning over their consensus controls. It's straight forward: the pool gives you a coinbase txn specification (e.g. "must pay these addresses") and you mine whatever block content you want, returning shares to the pool. Then you get low variance payout, but without handing over control.

GBT was supposed to enable it, but it was supplanted by stratum before it could get adoption.  I'm not sure of how to break out of the status quo.
hero member
Activity: 490
Merit: 501
luke-jr already made a similar proposal using getblocktemplate, where miners decide which transactions are to be included.

Mining Pools are not bad and do not need to be prevented. Cool


Not bait at all. Pools were created to solve a problem. The problem being that if everyone solo-mined very many would get no reward for their efforts. Sure, kill the pools, and then watch the number of miners dwindle as well because the big miners would be the only ones finding any coins regularly. Saying that pools have 51% attack potential is one thing. Saying that the potential goes away with the death of pools is quite another.

I mean really imagine a world where your 2Th/s machine only gets income maybe once a year(no i didn't do the math). How many would stay with it? If people were really concerned about the pools being bad, they would stop using them.
legendary
Activity: 2058
Merit: 1431
luke-jr already made a similar proposal using getblocktemplate, where miners decide which transactions are to be included.

Mining Pools are not bad and do not need to be prevented. Cool
legendary
Activity: 1428
Merit: 1000
I do like this idea very much. its another step to keep crypto decentralized.
Pages:
Jump to: