En bitcoin, los mineros procesan el encabezado dos veces con la función SHA256. Este encabezado consta de los campos enumerados a continuación:
Simplifiquemos y digamos que soy un minero de grupo con un rango de nonce de 1-100. Entonces, si hago mi parte y encuentro que en el minuto 9 el valor de Nonce de 91, resuelve el rompecabezas (prueba de trabajo). Pero cuando envío a la red, merkleRoot y la hora han cambiado, por lo que el nonce que encontré ya no es cierto. Sabemos que el hash cambia drásticamente con el más mínimo cambio de entrada, pero en esta fórmula, no una sino DOS variables cambian constantemente durante mi período de extracción (en este caso, 9 minutos). La transacción ocurrió y la hora cambió. Entonces, ¿cómo se cumple esta fórmula durante todo el tiempo de minería?
SHA256(v + p + m + t + d + n(91)) => 0000000asd8f686asd6das
¿ Dónde m y t cambian constantemente? ¿No sería 91 irrelevante a la hora de encontrar?
Los mineros realistas ejecutan los 2^32 nonces posibles en mucho menos de un segundo.
Si se produjo una transacción después de que comenzó su búsqueda nonce, entonces su bloque no incluirá esa transacción. No hay problema con eso.
Si la hora cambió después de que extrajiste tu bloque, entonces tu bloque no tendrá la hora exacta. Nuevamente, no hay problema con eso.
Y si lo piensas bien, no puede haber ningún problema con eso. ¿Cómo sabría alguien cuándo extrajo el bloque o si la transacción ocurrió antes o después de que extrajo el bloque? Es la minería lo que permite que Bitcoin esté de acuerdo con estas cosas, así que si extrajiste el bloque, eres tú quien puede elegir.
Como minero, eliges tu propio merkleRoot
y time
.
Esta es la misma razón por la que diferentes mineros buscan diferentes nonces: el suyo merkleRoot
contiene su transacción de recompensa, mientras que el merkleRoot
de un minero diferente contiene su transacción de recompensa.
Prostak
david schwartz
Prostak
david schwartz
Prostak
david schwartz