edicted Blog Banner

edicted

Mining-Pool Blockchain Implementation

miningpools.jpg

Proof of work coins have come under a lot of fire over the past few years.

  • They waste electricity.
  • High volatility
  • Don't fit the definition of money.
  • Highly technical / hard to use.
  • Centralized mining pools

I'd like to focus on that last one.

ethereum mining pools.png

@dan tries to say that dpos is less centralized because the block producer pie chart looks like this:

bp pie charts.jpg

Hm yes, it certainly looks decentralized when you put it that way, but when Block.one holds 10% of all EOS coins and they can vote 30 times it's obvious that @dan is full of shit. The pie charts that really need to be shown to get a good idea of DPOS decentralization are the votes that get the witnesses elected in the first place; not the ones that show already elected block producers making blocks evenly. Still, I'll give him the benefit of the doubt until he does something truly greedy and exploitative.

Why are we doing it this way?

Back to the topic at hand. If mining pools are so popular yet so bad for decentralization, why aren't blockchains incorporating the concept of a mining pool directly into the code? Weirdly enough, this reminds me of playing World of Warcraft way back in the day. This is a game that has mods that make the game easier. One of the mods was a quest helper. This mod was so valuable that Blizzard Entertainment incorporated it directly into the game. I'm a little confused about why proof of work coins haven't incorporated mining pools directly on chain.

Bitcoin mining

mining bitcoin reward block.jpg

As of right now winning the hash lottery on Bitcoin and posting a block will get you 12.5 Bitcoins. That's $85,000. Does that make sense? No. Why are we doing it this way? This high payout that only occurs every 10 minutes forces us to join a mining pool.

Mining pools

When you join a mining pool you are centralizing your lottery ticket hashes and putting them into the hands of the pool. If the pool (or a collaboration of multiple pools) were able to get 51% of the hash rate they could attack the network and start double-spending and rejecting valid winning lottery tickets. There is no excuse for these primitive mechanics to still be in place.

Solution

Incorporate the mining pool DIRECTLY into the blockchain. Instead of paying 12.5 Bitcoin to the one person who won the lottery you split that reward between multiple miners. There are several ways this solution could be actualized.

The first way I can think of is having two difficulty levels. The top difficultly level is the same one we have now. When this difficulty threshold is broken a new block is created. Transactions are confirmed and the inflation payout process commences. The second difficulty level would be the mining pool difficulty. Everyone who creates a block above this difficulty gets a piece of the pie, just like a regular mining pool.

The second variation that I can think of only requires the mining pool difficulty. In this scenario the next block on the chain is "simply" created after the specified time limit has passed. In the case of Bitcoin, the next block would get created exactly 10 minutes after the last block instead of fabricating a difficulty that will take an average of 10 minutes.

However, the technical logistics of this method might prove to be less secure than the first one. How does the system know how much time has passed? Would trusted oracles need to be implemented on the blockchain? This second solution may very well not be worth the effort even though it sounds solid from an outsider's perspective.

Distribution.jpg

Payout breakdown distribution

Then there's the question of reward distribution. Do you give everyone an even share like on a regular mining pool? Do you reward miners based on the difficulty they achieved? It's all up to the community to decide these things. However, there is a certain simplicity to equal shares. Rewarding by block difficulty achieved requires more calculations.

Increased overhead

This new system of incorporating mining pools directly onto the POW blockchain would add extra calculations per block. Instead of verifying and rewarding the single block winner you now have to reward thousands of people just like a mining pool would. Still, when you consider that ASIC miners pump out trillions of hashes per second (when it comes to SHA-256 Bitcoin mining) How hard would it be to verify 10,000 more reward pool hashes every 10 minutes?

Conclusion

I don't understand why proof of work coins haven't eliminated the middle man and incorporated mining pool tactics directly on chain. Doing so would massively improve mining decentralization and coin security.


Return from Mining-Pool Blockchain Implementation to edicted's Web3 Blog

Mining-Pool Blockchain Implementation was published on and last updated on 08 Jul 2018.