The difficulty-readjustment algorithm VALM-CACHE is quite complex and represents the first solution of its type. VALM includes several analytical functions and several more that perform value recalculation. One could compare VALM to the Russian writer Krylov’s famous fable The Swan, the Crayfish and the Pike, in which the three animals try to pull a loaded cart, but each of them pulls in a different direction. Each function in VALM uses its own algorithm to analyze and readjust value, essentially “pulling” the final value in its own direction. Resulting value changes are completely non-linear and can even seem wrong to users who are familiar with the subject. When using VALM, compared to different algorithms, in cases where difficulty would normally increase we will see it remain virtually unchanged, decrease, increase to the same extent, or increase several times faster. As an example, let us examine a network of a certain processing power. VALM uses three intervals to calculate an average value, then preselects the necessary value based on the analysis of non-pooled data, corrects the TargetSpacing, and finally all these values – after many more transformations – are inserted into the final function, with actually readjusts difficulty. Let’s explore two sample cases.
1. A network of a stable processing power, with the average value of the three intervals
close to the TargetSpacing value. VALM recalculates difficulty gradually, without significant increases or decreases, even with fast blocks or long intervals. VALM partially ignores single outlying value that differ significantly from the target spacing value and readjusts difficulty taking into account the predetermined number of blocks per 24 hours. 2. A network with a hashrate over double that of the stable network from example 1) connects to it to carry out an attack. Based on the results of the first and even second short interval, VALM slightly increases the difficulty, checking for the possibility to generate blocks with a high luck value. After the third fast block, the algorithm’s aggressiveness level changes, and if short intervals continue, the “Swan, Crayfish and Pike” start pulling in the same direction. As a result, the processing power of the attacking network does not matter, since by the fifth or sixth block the network will have a difficulty that corresponds to its hashrate, and by the 7th-10th block - rounds will be sufficiently long.