¿Cómo se relacionan el nonce y la dificultad?

Buenos días,

Estoy leyendo sobre la tecnología Blockchain, pero tengo un par de preguntas sobre el nonce para las que no puedo encontrar las respuestas. Espero que alguien aquí pueda responderlas.

i) Para ajustar el nivel de poder de cómputo disponible, ¿cómo se cambia la dificultad del nonce? ¿Cuál es el mecanismo que verifica si esto debería suceder y cómo?

ii) ¿Qué impide que un minero experto en códigos cambie la dificultad de su nonce generado a algo fácil para que sea él quien coloque el bloque en la cadena de bloques y gane las monedas extraídas?

Estoy encontrando este tema bastante fascinante, por lo que cualquier ayuda que puedan brindar es siempre muy apreciada.

Respuestas (2)

La dificultad en Bitcoin se expresa mediante el hash de un encabezado de bloque de Bitcoin que debe ser numéricamente más bajo que un objetivo determinado. Este objetivo de dificultad se restablece cada 2016 bloques hasta un factor de cuatro hacia arriba o hacia abajo. Por la presente, se ajusta la dificultad de que el hashrate promedio disponible en los últimos bloques de 2016 tardaría alrededor de 14 días en minar los bloques de 2016. Por ejemplo, si los bloques de 2016 tardaron 10 días en lugar de 14, la dificultad aumentaría en un factor de 1,4.

El nonce es un medio para iterar rápidamente a través de muchos candidatos de bloque de la misma plantilla de bloque, mientras que el extra-nonce es un medio para realizar rápidamente un ligero cambio en la plantilla de bloque. Cada vez que se codifica un nuevo bloque candidato, el resultado es completamente impredecible, por lo que eventualmente un bloque candidato cumplirá con el requisito de dificultad. Cuando esto sucede, el minero exitoso transmite el nuevo bloque a la red.

Sin embargo, todos los demás nodos de la red también se asegurarán de que el bloque sea realmente válido. Esto incluye probar la validez del hash de bloque del encabezado, así como verificar cada transacción. Por lo tanto, un minero que extrae a una dificultad más baja podría simplemente transmitir un bloque que no cumple con el requisito de dificultad y, por lo tanto, será rechazado por todos los demás participantes de la red.

El Nonce no se basa en la dificultad, el hash del bloque se basa en la dificultad. Primero, el minero procesa el bloque y verifica si el bloque está resuelto. Si no es así, se incrementa el Nonce. Si el Nonce se desborda (lo que sucede con frecuencia), entonces la porción extraNonce de la transacción se incrementa cambiando Merkle Root y el bloque hash nuevamente, por lo que el minero continúa y vuelve a hacer un ciclo del valor de Nonce.

Hay algo de información aquí .

No hay nada que impida que un minero cambie localmente la dificultad del bloque que está extrayendo, pero dicho bloque simplemente no será aceptado por los otros nodos de Bitcoin.