4

from here: https://github.com/bitcoin/bitcoin/blob/master/src/pow.cpp

 // Limit adjustment step
 int64_t nActualTimespan = pindexLast->GetBlockTime() - nFirstBlockTime;
 if (nActualTimespan < params.nPowTargetTimespan/4)
     nActualTimespan = params.nPowTargetTimespan/4;
 if (nActualTimespan > params.nPowTargetTimespan*4)
     nActualTimespan = params.nPowTargetTimespan*4;

I know that the code used to control the network difficulty adjustment limits it to at least one quarter of the target and at most four times the target. But why was the factor 4 chosen? Why not 2, or 3, or 5?

Murch
  • 75,206
  • 34
  • 186
  • 622
Tue Minh
  • 41
  • 1
  • 1
    At least some of these important constants were either chosen arbitrarily or for reasons that have not been disclosed by the people who chose them. See Why 21 million and duplicate for examples. Any answer here may therefore be speculation rather than historically factual. – RedGrittyBrick Mar 04 '21 at 11:21
  • 3
    I'm voting to keep this open. It may be technically opinion based, assuming there is no rationale known by Satoshi about the choice of this constants, but there are still potentially useful technical answers about what downsides/upsides other constants could have. – Pieter Wuille Mar 04 '21 at 22:31

0 Answers0