EL LIBRO DE SATOSHI
La prueba de trabajo puede pensarse, por tanto, como una carrera entre
mineros bitcoin para descubrir el hash SHA-256 del bloque que intentan crear
y que tendrá una cierta característica. Como vimos anteriormente, la
producción del hash es simplemente un número muy grande expresado en
hexadecimal. El objetivo del minero, el problema que debe ser resuelto, es
generar una producción de hash inferior a un valor determinado. El primer
minero que calcule un valor con esta característica gana, y su versión del
bloque, una vez validado por los otros mineros, será agregado a la cadena de
bloques discutida anteriormente en este capítulo.
Para simplificar, imagine que el hash de salida es, en realidad, un número
entre 0 y 1.000.000, y que el primer minero en obtener un hash de salida
inferior a 10.000 gana. Los 10.000 actúan como el umbral, y cada bloque
dentro de Bitcoin contiene un número cuyo único propósito es obtener ese
umbral.
El número dentro del bloque Bitcoin que se prueba contra el valor límite
se conoce como "nonce". Cada minero incrementa su nonce en una cierta
cantidad hasta que el hash de salida para su bloque está por debajo del umbral
establecido. Como dijimos anteriormente, cada bloque del minero tiene
información diferente y por lo tanto un hash de salida diferente para el mismo
"nonce". Este proceso se ilustra en la Figura 4.
El protocolo Bitcoin, operado por el software que se ejecuta en el
ordenador de cada minero, ajusta el nivel de dificultad del problema para que
tarde unos 10 minutos en ser resuelto por el primer minero. El propósito es
tener la cadena de bloques actualizada regularmente con un nuevo bloque que
contenga las últimas transacciones enviadas durante los 10 minutos anteriores.
Este valor es un tanto arbitrario y, como se verá en capítulos posteriores,
Satoshi dedicó algunas de sus discusiones a este tema.
La discusión anterior comparó el nonce con un umbral. Debido a que los
números del hash, llamados prueba de trabajo, están en un sistema de
numeración hexadecimal, o base 16, esto se traduce en que el primer número X
de bytes es el dígito 0, donde X se ajusta periódicamente para mantener el nivel
de dificultad de la prueba de trabajo bastante constante.
31