I have the opinion that 3 factors should go into the difficulty adjustment.
This opinion is captured in new technology I am calling
Hard Turtle.1. The long term mining rate of the coin.
- 600 sec / block since genesis
- adjust the difficulty_0 according to this factor
2. The interval mining rate of the coin. This is the standard difficulty adjustment after 2016 blocks,
difficulty or
difficulty_1.3. The time since MedianPrevTime.
- This should also be 600 sec/block.
- The value of those difficulty increases (will be) in a calculated table, and called difficulty_2.
- The actual behavior is described very well by a Poisson distribution. See the link several posts above.
- This can be control without an audit trail by changing the target hash reported in getminingtemplate
- The value of those difficulty increases (will be) in a calculated table, and called difficulty_2.
4. The new difficulty will be the cube root of difficulty_0 * difficulty_1 * difficulty_2.
- This is easy to calculate using nBits.
- After calculation, it will be clipped to a factor of 4x change, as is the current practice.
5. These changes will dovetail very nicely with a distributed mining pool.
- The difficulty items are nearing the end of development and testing.
- The mining pool has some development work.
6. The old client will work with these changes for a few Intervals (epochs of 2016 blocks) but as the difficulty starts to steady out, the nBits numbers will eventually differ and cause a hard fork.
7. I am making the hard fork stronger, and repairing the entire blockchain.
- This will result in the same transactions as before, but a blockchain with a difficulty near 1.
- It will take fewer hashes to mine 58,000 blocks at difficulty 1 than 300 blocks at difficulty 1,000,000.
- No data will be lost.
- Timestamps will be very similar.
- It took a devil of a long time to work out the logic of mining blocs nunc pro tunc.
- The blockchain repair will occur with a client that also supports the mining pool. Alternate blocks will generate new rewards, so it will be earn as you repair.
8. It turns out, I can include a coinbase block for a bitcoin block as well, while I am doing the repair. Go to the survey a few postings above, and include any bitcoin address that you have been paid to in a coinbase block :-).