Blockchain/Nivel II · Mecánica/2.3 Los bloques y la cadena/Lección 4
Prueba de trabajo y el objetivo
El boleto de lotería que cuesta energía comprar y un hash para verificar
MaterialesUna interfaz de explorador de bloquesUna calculadora hexadecimal o un entorno de programación capaz de SHA-256La documentación de referencia para desarrolladores de Bitcoin
Curiosidad
- ¿Por qué un objetivo numérico más bajo hace que sea más difícil encontrar un hash válido?
- ¿Cómo puede un valor de cuatro bytes codificar un número lo suficientemente grande como para restringir 2^256 posibilidades?
- ¿Qué sucede con el tiempo de bloque esperado cuando la potencia de hash se duplica pero el objetivo permanece sin cambios?
Explorar
- Un bloque solo se acepta si resuelve un acertijo computacional. Un minero debe encontrar un encabezado de 80 bytes cuyo hash doble SHA-256 sea numéricamente menor o igual a un umbral específico, conocido como el objetivo (target). Esta restricción transforma el proceso de creación del bloque en la búsqueda de un número raro dentro de un enorme espacio de 2^256 hashes posibles. La validez de cualquier bloque candidato depende enteramente de esta única desigualdad matemática.
- El propio objetivo no se almacena en su forma completa de 32 bytes, ya que eso consumiría demasiado espacio en los encabezados. En lugar de eso, se comprime en cuatro bytes llamados ‘nBits’ utilizando un esquema de codificación de mantisa-exponente. El formato es con pérdida, ya que solo se mantiene una mantisa de tres bytes; por lo tanto, el valor del objetivo se redondea ligeramente, lo cual no supone ningún costo en la práctica. Al decodificar estos cuatro bytes se reconstruye el enorme número de 256 bits que define el límite superior para los valores de hash aceptables.
- Para encontrar un hash válido, los mineros iteran a través de las variaciones de los campos del encabezado. La variable principal es el nonce de 32 bits, que ofrece aproximadamente 4.3 mil millones de valores distintos por ciclo de intento. Cuando la velocidad del hardware agota estas combinaciones al instante, los mineros modifican el extra-nonce dentro de la transacción coinbase o ajustan la marca de tiempo para generar nuevas raíces Merkle y configuraciones de encabezado. Cada cambio produce un resultado hash completamente diferente, creando así un “billete de lotería” nuevo.
- El trabajo esperado aumenta en proporción directa a la dificultad, mientras que el objetivo se mueve en dirección opuesta: cuando la red vuelve a establecer un nuevo objetivo tras un aumento en la potencia de hash, este disminuye, lo que requiere más ceros iniciales en la representación binaria para obtener una solución válida. El número esperado de hashes necesarios para encontrar un bloque se aproxima a la dificultad multiplicada por 2^32. Esta escala garantiza que, independientemente de si la minería se realiza en ordenadores portátiles o en granjas industriales, el intervalo promedio entre bloques permanezca estable en aproximadamente diez minutos.
- La verificación es asimétrica con respecto a la creación. Mientras que encontrar un hash válido puede requerir miles de millones de intentos, comprobarlo solo implica realizar un doble SHA-256 del encabezado y una comparación con el objetivo (target). Por lo tanto, la comprobación de la prueba de trabajo (PoW) es instantánea, aunque la validación completa de un bloque sigue significando verificar cada transacción que contiene. El modelo de seguridad se basa en esta disparidad: crear trabajo es costoso, pero confiar en ese trabajo es barato.
- El bloque génesis se minó con una dificultad de 1, la más baja que permiten las reglas; incluso así, un hash válido necesitaba unos 32 bits iniciales en cero, lo que equivale a aproximadamente un éxito cada 4.3 mil millones de intentos. Los bloques recientes requieren muchos más ceros iniciales, ya que el poder de hashing global ha crecido en muchas órdenes de magnitud. Al comparar la representación hexadecimal del hash del bloque 1 con la de un bloque actual, se observa este cambio drástico de un campo abierto a un espacio de búsqueda estrictamente restringido.
Datos clave
- Un hash válido del encabezado de un bloque de Bitcoin debe ser numéricamente menor o igual a su objetivo (target) de dificultad.
- El objetivo se almacena de forma compacta en cuatro bytes como ‘nBits’ utilizando codificación de mantisa-exponente.
- Los mineros varían el nonce de 32 bits, el extra-nonce de la transacción coinbase y la marca de tiempo para generar nuevos candidatos a hash.
- La dificultad se define como el objetivo máximo posible dividido por el objetivo actual.
- Verificar la prueba de trabajo de un bloque requiere un doble SHA-256 del encabezado y una comparación.
- El bloque génesis se minó con una dificultad de 1.
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 componentes o variables distintas involucrados en el cálculo de la prueba de trabajo (PoW) para el encabezado de un bloque de Bitcoin.
6AgruparAgrupa estos 9 elementos en 6 categorías según si son fijos, variables por intento, variables por ciclo, codificados de forma compacta, derivados de transacciones o utilizados para verificación.
3DestilarReduce los 6 grupos a 3 principios fundamentales que rigen cómo escala la dificultad con el poder de hash de la red.
1CristalizarEscribe una oración que explique por qué la prueba de trabajo es difícil de producir pero fácil de verificar.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.