Si las máquinas basadas en ASIC pueden funcionar a 14TH/s, ¿por qué no se encuentra la respuesta casi de inmediato?

Por lo que entiendo correctamente, el objetivo es encontrar un nonce que cree un hash con la dificultad especificada. La dificultad actual ronda los 1,4 billones. Si es así, ¿por qué una máquina que funciona a 14 TH/s no calcula el nonce en menos de un segundo?

El número de "dificultad" de 1,4 billones no se corresponde directamente con el "número de hashes por segundo".

Respuestas (1)

Como se explica aquí en Bitcoin Wiki , la fórmula para usar la Dificultad para determinar el tiempo esperado para resolver un bloque es:

tiempo = dificultad * 2**32 / hashrate

Actualmente, la dificultad es 1,452,839,779,146, por lo que se esperaría que un minero ASIC de 14TH/s, en promedio, resuelva un bloque con

tiempo = 1 452 839 779 146 * 4 294 967 296 / 14 000 000 000 000

lo que da un resultado de 445707095 segundos, que son unos 14 años, si he hecho mis cálculos correctamente.

Para comprobar que la técnica funciona:

Usando el hashrate de red aproximado actual (según blockchain.info) de 10,183,000TH/s, y la misma dificultad que se indicó anteriormente, la fórmula da un resultado de 612 s para resolver un bloque, que es el resultado esperado de aproximadamente 10 minutos.

Si es un número tan masivo, ¿no debería ser mayor el promedio de nonce? Acabo de echar un vistazo al último bloque y el nonce era 2075812744. A 14TH/s, ¿eso se habría encontrado casi de inmediato?
El nonce es un entero sin signo de 32 bits, por lo que el valor máximo que puede tener un nonce es 4294967296. Sin embargo, los mineros no solo incrementan el nonce; también hacen cosas a las transacciones dentro del bloque para cambiar la raíz de merkle además de incrementar el nonce. Entonces, hay muchas más cosas que solo los nonces que pueden hacer hash para encontrar un hash de bloque válido.
@DanielGee La persona que realmente encontró ese bloque sin duda encontró el nonce menos de un segundo después de que comenzó a buscar un nonce para completar ese bloque en particular. Pero los mineros prueban una gran cantidad de bloques antes de encontrar uno que funcione. Hasta que encuentre un nonce que funcione para un bloque, no tiene forma de saber si existe o no. Es por eso que intenta cada nonce, luego comienza de nuevo a intentar nonces con un bloque diferente.