Most proof of work cryptocurrencies, including Bitcoin, have most of their hashrate controlled by the biggest mining pools which significantly decreases decentralization. Would it be theoretically possible to create a proof of work algorithm that distributes the block reward to miners relative to how many shares they have submitted? Basically make it so that the algorithm itself is a decentralized mining pool.
biggest mining pools which significantly decreases decentralization
Not at all. Pools contribute to decentralization. Without pools, small miners would never be able to mine feasibly, because they would never find a block. No matter how much time they spent mining, no block = no reward. Pools allow them a fair share of block rewards proportional to their work.
Would it be theoretically possible to create a proof of work algorithm that distributes the block reward to miners relative to how many shares they have submitted
It's called P2Pool
Stratum v2 (a protocol for pooled mining) will improve few things:
- Miner will broadcast block instead of mining pool
- Signalling bits
- Choose own transaction set (if refused by pool, miner will know the reason)
For decentralized payouts, maybe we can use discreet log contracts however this depends on mining pool and difficult to change the protocol so that everyone follows it:
- Miner that broadcasted the mined block (Peer 1), Mining pool (Peer 2)
- Payout address used in coinbase transaction is 2 of 2 multisig funding address for this DLC
- Multiple miners with some oracles provide information about value of the shares miners submitted
- This contract is settled based on M of N oracles and specifications used for multiple oracles