Esta es una introducción al concepto de minería de bitcoin: el proceso de verificación de transacciones en la red de bitcoin. Quería publicar la primera serie de publicaciones sobre el entorno minero actual de Bitcoin, pero parece que sería bastante difícil hacerlo sin antes hacer una descripción general de lo que es la minería. Intentaré mantener esto lo más corto posible, pero definitivamente es el aspecto más complejo del sistema bitcoin.
Esta es la segunda parte de una serie de 4 partes que analiza el estado actual de la minería de bitcoin:
1. ¿Por qué necesitamos la minería? (El discurso del ascensor)
La cadena de bloques es un registro de cada transacción de bitcoin desde que se creó el primer bloque (“El bloque Génesis”). Una vez cada 10 minutos, un minero encontrará un bloque, y por esto es recompensado con bitcoins. Además de distribuir monedas nuevas de manera justa, esto aumenta la estabilidad de la red al aumentar la dificultad de que un minero malicioso pueda afectar la red.
2. ¿Qué es este hashing del que todo el mundo habla?
Hashing es un algoritmo que toma una entrada arbitraria y devuelve un valor reproducible de longitud fija. Además, el valor resultante se cambiará por completo incluso con el cambio más pequeño en las entradas. Por ejemplo usando sha-256:
SHA-256 de “miner” siempre genera:
"Zd8GLQuuXESwbgGTAFJmA3OMR8JCE8DFqWY9uMerbI4="
SHA-256 de “menor” es:
"grOHEppyxlv+B94u++x4hjO3c1DplOGSqxD2W3hS8hw="
3. ¿Por qué a los mineros les importa el hash?
Los mineros realizan un hash en todas las transacciones disponibles desde que se creó el último bloque. Para ser aceptado, el hash debe comenzar con un cierto número de ceros que está determinado por el nivel de dificultad. Para seguir probando nuevos hashes para cumplir con el nivel de dificultad, los mineros agregarán números aleatorios al final de las transacciones para intentar encontrar un hash que cumpla con el requisito de dificultad. Cuando se encuentra un hash aceptable, su información se envía a través de cada nodo de la red y los nuevos mineros continúan la cadena trabajando en el siguiente bloque.
4. ¿Por qué usamos blockchain en lugar de confiar en cada transacción de inmediato?
La cadena principal está resaltada en azul. Cada bloque en la cadena principal se puede rastrear hasta Génesis en verde
Los sistemas de bloqueo actuales evitan los ataques de doble gasto (una persona que envía los mismos bitcoins a varias personas) de tres formas:
- El hash solo coincidirá con un bloque de transacciones si siguen siendo idénticas a como se encontraron originalmente.
- El tiempo de 10 minutos entre bloques permite pausas para que el último conjunto de transacciones se transmita a través de la red. Esto reduce la capacidad de un gastador malicioso de enviar la misma transacción a varias personas simultáneamente.
- Cada bloque nuevo tiene exactamente una ruta en la cadena de bloques al bloque de génesis. Por lo tanto, cada transacción ocurre de manera serial. Es imposible tener dos bloques diferentes que no se conocen entre sí, gastando la misma moneda, y estar en la cadena de bloques principal.
5. ¿Cómo sabemos que habrá 10 minutos entre cada bloque?
La dificultad para encontrar un bloque (cuántos ceros debe haber al comienzo del hash) se ajusta cada 2016 bloques. Dependiendo de cuánto tiempo se tardó en encontrar el conjunto anterior, la dificultad aumentará o disminuirá para ajustarse a la velocidad de la red . Esto significa que cuanto más rápido se procesa la red, más difícil se vuelve encontrar bloques.