Un problema de ecuación de dificultad.

Cuando leo este libro Master Bitcoin , tengo un problema para entender la "Dificultad" en el Capítulo 8.

Hay una ecuación de dificultad:

New Difficulty = Old Difficulty * (Actual Time of Last 2016 Blocks / 20160 minutes)

Me siento confundido.
De acuerdo con la fórmula, si el Tiempo real fuera más largo que 20160 minutos , la Dificultad nueva sería mayor que la Dificultad anterior , y luego el Tiempo real sería más y más largo.

Se ve muy extraño. Para mí la ecuación debería ser:

New Difficulty = Old Difficulty * (20160 minutes / Actual Time of Last 2016 Blocks)

Sin embargo, encontré que esta fórmula es consistente con la del código bitcoin.

unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params& params)
{
    if (params.fPowNoRetargeting)
        return pindexLast->nBits;

    // 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;

    // Retarget
    const arith_uint256 bnPowLimit = UintToArith256(params.powLimit);
    arith_uint256 bnNew;
    bnNew.SetCompact(pindexLast->nBits);
    bnNew *= nActualTimespan;
    bnNew /= params.nPowTargetTimespan;

    if (bnNew > bnPowLimit)
        bnNew = bnPowLimit;

    return bnNew.GetCompact();
}

Entonces encontré esta respuesta .
Esto es lo que entiendo, pero por qué es diferente de la ecuación del libro y el código.

actualizar

Creo que esto era sólo una expresión ambigua.
La mejor expresión debería ser:

New Difficulty Target = Old Difficulty Target * (Actual Time of Last 2016 Blocks / 20160 minutes)

Respuestas (1)

El código que está citando en realidad no se ocupa de la dificultad. Se trata de objetivos . El objetivo es el valor máximo de 256 bits que se le permite tener al hash del bloque.

La dificultad se define como 2^208 * 65535/objetivo .

En cuanto al libro, eso se ve mal de hecho.

Gracias por responder, como dijiste, ¿la descripción del libro es incorrecta?
El libro está mal.