¿Qué es la dificultad de la criptomoneda?
La dificultad es un parámetro que usan bitcoin y otras criptomonedas para mantener estable el tiempo promedio entre bloques a medida que cambia el poder de hash de la red.
Dificultad de criptomoneda explicada
Bitcoin y otras criptomonedas que usan blockchains de prueba de trabajo se mantienen a través de un proceso llamado minería. En este sistema, los mineros, computadoras que ejecutan el cliente de software de la criptomoneda, compiten para encontrar un nuevo bloque, agregando el lote más reciente de datos de transacciones a la cadena. Reciben tarifas y (en algunos casos) una recompensa de nuevos tokens a cambio.
El tiempo que lleva encontrar un nuevo bloque está sujeto a dos factores: probabilidad aleatoria y dificultad. Comience con una oportunidad aleatoria. Los mineros toman un lote de datos de transacción y lo ejecutan a través de un algoritmo hash, una función unidireccional que, dado un conjunto particular de datos, siempre producirá la misma salida, pero cuya salida no se puede revertir para mostrar los datos originales. No hay forma de predecir qué será un hash. Se encuentra un nuevo bloque cuando el hash cumple un cierto requisito. Dado que cada conjunto de datos tiene solo una salida para una función hash dada, los mineros deben agregar un nonce - un "número usado una vez" - a los datos para obtener un nuevo hash. Si el resultado aún no cumple con el requisito, el minero lo intenta nuevamente con un nuevo nonce.
El requisito que debe cumplir un hash corresponde a la dificultad: un hash válido debe estar por debajo de un cierto valor objetivo establecido automáticamente (y ajustado periódicamente) por el protocolo de la criptomoneda. Cuanto más bajo es el valor objetivo, más repeticiones de la función hash debe realizar un minero para obtener un resultado aceptable; en otras palabras, mayor es la dificultad. Un minero puede, en teoría, tener suerte y obtener un hash válido para un bloque dado en el primer intento: sin embargo, con el tiempo, una mayor dificultad significa que los mineros deben conectar más nonces por bloque en promedio.
¿Para qué sirve la dificultad?
¿Por qué establecer mayor dificultad, si el único resultado práctico es que los mineros deben repetir más la misma función? El documento técnico de bitcoin explica:
"Para compensar el aumento de la velocidad del hardware y el interés variable en ejecutar nodos a lo largo del tiempo, la dificultad de la prueba de trabajo se determina mediante un promedio móvil que apunta a un número promedio de bloques por hora. Si se generan demasiado rápido, la dificultad aumenta. "
Bitcoin está diseñado para agregar un nuevo bloque a la cadena de bloques cada 10 minutos en promedio. (Otras criptomonedas apuntan a bloques más frecuentes; litecoin, por ejemplo, apunta a 2.5 minutos). El problema es que la cantidad de poder de cómputo que los mineros de la red controlan colectivamente puede variar enormemente. Cuando Satoshi Nakamoto extrajo el primer bloque, solo había una máquina en la red, probablemente una simple computadora portátil o de escritorio. Hoy en día hay una serie de granjas ASIC del tamaño de un almacén en expansión (los ASIC son máquinas diseñadas específicamente para realizar funciones hash lo más rápido posible).
Para garantizar que la red produzca un nuevo bloque a una velocidad promedio constante, el software está configurado para ajustar automáticamente el hash objetivo hacia arriba o hacia abajo, lo que resulta en una dificultad menor o mayor, respectivamente. Cuando Nakamoto extrajo el bloque de génesis, la dificultad de bitcoin fue 1.
Para verificar la dificultad de bitcoin en tiempo real, puede consultar este cuadro.
A finales de julio de 2019, la dificultad es de 9.013 billones. El siguiente cuadro muestra el cambio de dificultad de bitcoin en el tiempo: