Skip to main content

Difficulty parameter

We want the computation of the VDF to be random and converge to an average block time given as a parameter. Benchmarks of the Wesolowski VDF gave an estimation of 800 000 000 iterations compute in 24 hours. The VDF delay parameter is explained in VDF. This delay parameter is random since is stems from an hash function, and uniformly distributed, thus averages at 800 000 000 / 2 iterations. If we want for example to average at 10 minutes per block, we need the delay parameter to be at an average of around 5 500 000. Here comes into play the quantification of the miner's PoB. If we want to reduce the 400 000 000 average delay parameter before the quantification division down to 5 500 000, we need the average quantification to be 72.

We also have a network difficulty adjustment parameter that is updated to keep up with the possible acceleration of computation capacity. The difficulty δ\delta will be adjusted every PP blocks to match the desired block time Δt\Delta_t, for an average mining time of Δtˉ\bar{\Delta_t} over the last PP blocks, as follows:

δδΔtΔtˉ\delta \gets \delta \cdot \frac{\Delta_t}{\bar{\Delta_t}}

Limits

For each new block, the difficulty can only be increased by a minimum of 25% (min_update_network_difficulty_percent) and a maximum of 400% (max_update_network_difficulty_percent) as defined in chainspec.