No importa cuán alta sea la dificultad (o cuán baja sea la meta), no entiendo cómo la red de Bitcoin tarda un promedio de 10 minutos en resolver cada bloque.
Para cualquier encabezado de bloque dado, solo hay 2^32 valores posibles para el nonce. Incluso si tenemos en cuenta que la marca de tiempo se puede cambiar hasta 1 hora (por ejemplo), eso es 3600 x 2^32 combinaciones posibles, que es aproximadamente 1.5e13
En blockchain.info dice que la tasa de hash actual de la red es 7,991,378,504 GH/s, lo que significa que, cada segundo, se calculan más hashes en varios órdenes de magnitud que la cantidad de hashes posibles que pueden resultar del encabezado del bloque actual. .
Entonces, ¿cómo es que los bloques no se resuelven en solo unos segundos y toman alrededor de 10 minutos?
Entiendo que los mineros quieren incluir tantas transacciones como puedan en un bloque para cobrar las tarifas, por lo que se podría argumentar que es mejor esperar hasta que haya muchas transacciones en un bloque antes de resolverlo. Pero incluso eso no tiene sentido, porque no hay absolutamente nada que perder al resolver cada bloque lo más rápido posible de todos modos.
La minería básicamente funciona así:
Los mineros recopilan transacciones y luego intentan crear un bloque válido aplicando fuerza bruta a los nonces. La dificultad de crear un bloque está relacionada con el valor hash máximo que puede tener un bloque válido.
Por ejemplo, el encabezado actual de la cadena de bloques (al publicar esto) tiene un hash de bloque de 000000000000000000077d9c18fdbd5cf45b2652fe6db9089558eb8fc9fc3b397. Como puede ver, tiene muchos ceros a la izquierda, porque la mayoría de los hashes por encima de este valor son rechazados. Con los valores de 2^32 nonce y otros campos de encabezado, no puede probar suficientes bloques como para alcanzar cualquier hash de bloque lo suficientemente pequeño. Los mineros cambiarán algunos bytes en las transacciones (normalmente en la base de monedas) para crear aún más candidatos de bloque nuevos.
Además, diferentes mineros probarán diferentes bloques, ya que deberían tener diferentes receptores de las transacciones de la base de monedas.
eduardo eisenberg
greg hewgill
leonidaz0r
leonidaz0r