Author

Topic: on the optimal difficulty setting for bitcoin (Read 966 times)

full member
Activity: 126
Merit: 110
Andrew Miller
August 03, 2012, 06:33:04 AM
#3
Only an additional block header would need to be stored. There's no need to validate the redundant blocks, they could just be blank proofs-of-work. If someone really wants to do unpaid overtime to increase the difficulty then it's just as well.

I'm not totally sure about the number 2 though, so I'll think about that a bit more.

The important idea is to adjust the puzzle difficulty in order to maintain a stationary ratio of chain length to number of runners-up.
donator
Activity: 2058
Merit: 1054
Wasting 50% of the network hashrate on orphans is hardly optimal (making attacks twice as easy since they build on their own blocks), as is making lightweight clients have to record several block headers per minute.
full member
Activity: 126
Merit: 110
Andrew Miller
What's the optimal setting for the puzzle difficulty? Is 10 minutes between blocks correct?

Ideally, there should be one stale block for every fee-earning block. This strikes the best balance between two performance goals:
- (Latency) the chain should grow quickly
- (Convergence) the network should settle quickly

Here's an easy way to maintain the proper difficulty setting. Miners should include in each block a set of novel stale blocks with shorter height. For every fee-winning block, we decrease the difficulty. For every stale block, we increase the difficulty. It's clear that in the steady state with constant hashpower, this scheme results in two proofs-of-work for every block in the chain.

Notice it would no longer be necessary for miners to report timestamps, and the parameter "10 minutes" would be eliminated altogether. The only remaining parameter is a 'gain' for how much to adjust the difficulty per block.

tl;dr:  First place wins a prize. Runners-up receive an honorable mention.

[edit] I originally used the wrong term "orphan block" when I meant "stale block", thanks sipa
Jump to: