1. How to choose/select which miners will generate a new block based on their "proven" computation power in decentralized way?
- Puzzles are standard hash-puzzles, but easier and a lot more of them, say 2^32, by adding different nonces AND the miner's address to the data of the last block added to the chain just before the contest. (The address is there to prevent copied solutions.)
- Each miner publishes all solutions (nonce-hash pairs) and the address that was added to the contest blocks, allowing verification of solutions.
For the week's blocks:
- A 'selection' algorithm (TBD) 'fairly' distributes block slots for the next week based on each miner's demonstrated processing power. The actual assignments are 'randomized' based on some shared data that can't be predicted prior to the contest end - perhaps an XOR of all unique puzzle hash solutions from the contest. Miners could randomly select which puzzles to solve, to prevent anyone predicting that XOR value. (This is needed to avoid miners arranging to eliminate competition for their blocks.)
- All miners would run the 'selection' algorithm, and reject block solutions from anyone not approved to mine a particular block. Also reject all blocks from a miner that generates multiple block candidates.
- Each miner initially publishes half their candidate block solution and half their block hash.
- Another shared algorithm picks one of the candidate blocks when all partial blocks are submitted (or all within a time window). Maybe take all the hash solutions for all candidate blocks, XOR them together, and compare to each miner's solution hash to see which has the most bits in common with the combination. (Needs a tie-breaker... )
- All miners publish their remainder block and hash portions. Only the winner's is used, but a fall-back algorithm would select one of the others if the winner doesn't respond with a valid block.
This is a good point. OTOH, those other altcoins could implement the same method.
If they don't, THEY are wasting the power, and blame is removed from those that implement PoMoW.