Skip to content

Decreased-variance PoW logic #4

@kek-coin

Description

@kek-coin

Currently the mining process is very sensitive to variance. This is due to the fact that mining a block is essentially a question of rolling a die and checking if the result is good enough; if it is, you've mined a block, if it isn't, you roll it again until it is. This has the consequence that the expected value of the amount of necessary rolls is equal to 1/p_success where p_success represents the chance that any roll is a success.

The same expected value for the amount of rolls can be achieved by requiring n rolls to all meet a given lower difficulty threshold instead. In other words, p_partialsuccess = p_success/n. In this new scheme, the variance in time to finding a block is reduced to the variance in time to finding n blocks in the old scheme.

This has a couple of notable advantages.

  1. Better user experience due to more predictability in confirmation time.
  2. Difficulty readjustment logic can be vastly improved. For the same amount of resilience to variance as in current Bitcoin, only 2016/n blocks are needed to a difficulty readjustment period.
  3. Mining payout becomes more reliable, and therefore small pools/solo mining becomes more feasible, aiding in mining decentralization.

I have not yet worked out the details of the implementation as I first wanted to collect feedback on the concept, but one implementation could work by making the nonce field n times as long and let every ith (i from 1 to n) partial-hash be calculated over the blockheader including only the first 32*i bits of the nonce field.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions