@reina
> but the more profitable pools will grow, because they have more money to reinvest if they wish, back into mining
You're confusing pools and miners. Pools typically do not own their own hashrate. See also my comment right above yours on the mechanism that reduces marginal revenue for large miners, and how that does not apply to pools (or currently to large BCH-only miners).
> I don't see a situation where they will remain consistently a "super" pool or eclipse others, because it means somehow, none of the other players can mine on par or close to their efficiency, which is a bit hard to believe or almost impossible for the long term:
As I have said elsewhere in this thread, the greater the hashrate share a pool has, the lower their orphan risk becomes. A pool will never directly orphan their own block, so if they have 30% of the network hashrate, their orphan rate will only be 70% as high as the orphan rate for a 1% miner with the same block propagation and full node performance. When orphan rates get high on average, pool operation incentives change from survival of the fittest to survival of the biggest.
If average blocksizes get too high, then other players will not be able to mine with the same efficiency of the bigger players simply because they don't have the hashrate to mine with that efficiency. A new entrant into the competitive pool market would need to be more efficient in order to attract hashrate, and would need to already have hashrate in order to be efficient.
> Opensourcing helps to get bugs and vulnerabilities spotted. Hiding is not advantageous to you because it would make your implementation more buggy, and also the network in general could be worse because of it.
Yes, the network in general will be worse because of it. No, it is not a net advantage overall to a miner to open source their code. We can see that by looking at the
BIP66 chainsplit and SPV mining issue.
When BIP66 was activated, it turned out that some miners were not actually enforcing the new rules. This caused invalid blocks to be produced by a BTC Nuggets. Normally this wouldn't be an issue, as the rest of the hashrate would simply ignore the block. However, the miners in China were making heavy use of SPV mining at the time, and did not have checks in their code to timeout on headers that were not followed by valid blocks. So after the invalid block was mined, F2pool mined two blocks on top of the unverified header of BTC Nuggets's block, followed by Antpool mining on top of F2pool etc. All told, some transactions reached 6 confirmations in SPV wallets before being reorged out of the blockchain. F2pool mined 4 invalid blocks (a loss of 100 BTC), and Antpool mined 1 invalid block.
Surely, F2pool must have sorely regretted having done SPV mining given a loss like that, right? Actually no. F2pool went on the record as having said that even with that bug, SPV mining was a huge win for them overall. It makes sense if we do the numbers. F2pool had around 30% of the network hashrate at the time. Average orphan rates for Bitcoin were about 2%, and F2pool had a 1% orphan rate which they claimed was due to their SPV mining. This means that SPV mining was earning them 25 BTC/block * 144 blocks/day * 20% * 1% = 7.2 BTC per day, so this SPV mining mishap only cost them 13.9 days worth of SPV mining benefits. As F2pool had earned a lot more than that in the last few months from SPV mining, it was a no-brainer.
If F2pool had released their SPV mining code publicly, then their 1% orphan rate advantage would have disappeared. That would have been good for Bitcoin as a whole but bad for F2pool, so it didn't happen.
[doublepost=1535925745][/doublepost]> won't 2 happen by itself? (otherwise, who is the agent doing the limiting and the investing?)
No, pools won't safely self-regulate. That's the problem. I've done the math on this a few times earlier in this thread (e.g.
this post). Large pools have an incentive to build blocks that are too large for everyone else, specifically because of the orphan rate advantage that pools with large hashrates have. This is a destabilizing force, and can result in a single pool growing to the point that 51% attack chances are high and customer confidence in Bitcoin is harmed.
> the system becomes 51% vulnerable, which puts severe downward economic pressure on those very miners, along with everyone else.
Yeah, that's something we want to avoid having actually happen. It would be good to have some mechanism for regulating pool size that doesn't cost the whole ecosystem a fraction of their life savings.
Developers putting a default soft limit into the code at e.g. 32 MB and modifying that default value on occasion as new benchmark data comes in might seem like an arbitrary way of dealing with the issue, but it is effective, and I have been unable to come up with a better option. All the market-based approaches to dealing with the problem boil down to deciding that there is no problem or that the problem is not worth dealing with, and I do not agree with that perspective at all.