Proof of Work: minería y ajuste de dificultad
Implemente un minero de PoW y comprenda la búsqueda del nonce y la dificultad objetivo.
Proof of Work: minería y ajuste de dificultad es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué es la prueba de trabajo?
La prueba de trabajo (PoW) exige que un productor de bloques realice una tarea con un coste computacional elevado para añadir un bloque. Esto disuade del spam y encarece la reescritura de la cadena. Verificar la prueba es barato (un hash), pero realizar el trabajo requiere calcular muchos hashes.
El desafío de la minería
PoW de Bitcoin: encuentre un nonce tal que SHA256d(block_header) < target. El target es un número de 256 bits. Un target más pequeño exige más ceros iniciales en el resultado del hash, por lo que los nonces válidos son menos frecuentes y más difíciles de encontrar.
Demostración de PoW en Python
import hashlib def mine(data, difficulty): target = "0"*difficulty nonce = 0 while True: h = hashlib.sha256(f"{data}{nonce}".encode()).hexdigest() if h.startswith(target): return nonce, h nonce += 1 nonce, h = mine("block data", 4) print(nonce, h) # hash starts with "0000"
Target de dificultad
El encabezado de bloque de Bitcoin tiene un campo "bits" que codifica el target actual. Target = coefficient * 256^(exponent-3). Ejemplo: bits=0x1703a30c → target = 0x03a30c * 2^(8*(0x17-3)) = un número de 256 bits que requiere aproximadamente 72 bits iniciales iguales a cero.
Ajuste de la dificultad
Bitcoin ajusta la dificultad cada 2016 bloques (aproximadamente 2 semanas). Ajuste del target: new_target = old_target * (actual_time / 2016 * 10 minutes). Si los bloques se generaron más rápido que el promedio de 10 minutos, el target disminuye (mayor dificultad). Si se generaron más despacio, el target aumenta (menor dificultad). Así se mantiene un tiempo de bloque de aproximadamente 10 minutos.
Hash rate y seguridad
El hash rate de la red (H/s) mide la potencia total de minería. Un hash rate más alto implica una probabilidad menor por unidad de tiempo de encontrar un nonce válido por casualidad. Para reescribir k bloques, un atacante necesita más del 50 % del hash rate de la red durante un tiempo proporcional a k*10 minutos.
Ataque del 51 %
Con más del 50 % del hash rate, un atacante puede: (1) minar una bifurcación secreta, (2) incluir o excluir transacciones, (3) realizar un doble gasto publicando una cadena más larga después de que se confirme un pago. No puede: robar las monedas de otros usuarios, crear monedas de la nada ni revertir transacciones muy profundas en la cadena.
Minería con ASIC y centralización
La minería SHA256d de Bitcoin está dominada por los ASIC (Application-Specific Integrated Circuits), chips optimizados para una única función hash. Los ASIC son 10^6 veces más eficientes que las CPU. Esto concentra la minería en grandes centros de datos y aumenta la preocupación por la centralización.
PoW con uso intensivo de memoria
Ethereum utilizaba Ethash (ahora obsoleto), un PoW con uso intensivo de memoria que requería un conjunto de datos DAG grande. El uso intensivo de memoria dificulta el desarrollo de ASIC (el ancho de banda de memoria es difícil de optimizar a bajo coste). Monero utiliza RandomX (optimizado para CPU y resistente a ASIC). Zcash utiliza Equihash (con uso intensivo de memoria).
Minería egoísta
La estrategia de minería egoísta consiste en ocultar un bloque encontrado, minar un segundo bloque y publicar ambos simultáneamente. Si se ejecuta en el momento adecuado, los mineros honestos desperdician el trabajo realizado en el bloque huérfano. En promedio, resulta rentable con aproximadamente un 33 % del hash rate, no con un 51 %.
Alternativa: prueba de participación
La prueba de participación (PoS, utilizada por Ethereum después de The Merge) sustituye el trabajo de hashing por criptomonedas bloqueadas como participación. Los validadores se eligen para proponer bloques de forma proporcional a su participación. PoS utiliza un 99,95 % menos de energía que PoW. La contrapartida son unos supuestos de confianza y una economía de los ataques diferentes.
Comprobación rápida
¿Qué intenta mantener el ajuste de dificultad de Bitcoin?
Resumen
PoW exige encontrar un nonce tal que SHA256d(header) < target. La dificultad se ajusta cada 2016 bloques. Un hash rate del 51 % permite ataques de doble gasto. Los ASIC dominan la minería de Bitcoin; las funciones con uso intensivo de memoria ofrecen resistencia a los ASIC. Siguiente tema: Bitcoin Script y firmas UTXO.
Preguntas frecuentes
¿La lección «Proof of Work: minería y ajuste de dificultad» es gratis?
Sí — el texto completo de «Proof of Work: minería y ajuste de dificultad» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Proof of Work: minería y ajuste de dificultad»?
Implemente un minero de PoW y comprenda la búsqueda del nonce y la dificultad objetivo. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Proof of Work: minería y ajuste de dificultad»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Cadenas de hash y vinculación de bloques
- Árboles de Merkle: integridad de transacciones a escala
- Proof of Work: minería y ajuste de dificultad
- Bitcoin Script y verificación de firmas UTXO