La minería es la parte más incomprendida de Bitcoin. No consiste en «resolver problemas matemáticos complejos» ni en «crear monedas de la nada». Es una lotería en la que cada boleto cuesta electricidad, y que sirve para decidir quién escribe la siguiente página del libro de cuentas sin que nadie pueda hacer trampas.
El bloque candidato
Un minero empieza por preparar un bloque candidato: elige transacciones de la mempool (primero las que más pagan por byte), añade su transacción coinbase para cobrarse la recompensa y calcula la cabecera del bloque. Esa cabecera tiene solo 80 bytes y seis campos: la versión, el hash del bloque anterior, un resumen de todas las transacciones (la raíz de Merkle), la hora, el objetivo de dificultad y el nonce.
La lotería
Para que el bloque sea válido, el hash doble SHA-256 de esa cabecera tiene que ser menor que un número objetivo. Como el resultado de un hash es imprevisible, la única estrategia es probar: cambiar el nonce, calcular el hash, comprobar y repetir. Cada intento es un boleto. Hoy la red entera prueba del orden de mil trillones por segundo y, aun así, tarda unos diez minutos en dar con un boleto premiado.
Eso es la prueba de trabajo: encontrar el hash cuesta muchísimo; comprobarlo, un instante. Pruébalo tú mismo en el diorama: tu navegador calculará hashes SHA-256 reales hasta encontrar uno que empiece por varios ceros.
Diorama: la lotería de la prueba de trabajo
2. Boletos de lotería
Calcula el hash de la cabecera, cambia el nonce y vuelve a calcular. Cada intento es un boleto; casi todos fallan porque su hash queda por encima del objetivo.
3. ¡Premio!
Tarde o temprano un hash cae por debajo del objetivo. El bloque es válido, se difunde y se encadena al anterior. Comprobarlo cuesta un solo cálculo.
4. Más mineros, más dificultad
Si entran más mineros, los premios llegarían antes. Cada 2.016 bloques la red baja el objetivo para mantener un bloque cada diez minutos.
Pruébalo: mina un bloque de juguete
Tu navegador calculará hashes SHA-256 dobles reales hasta encontrar uno que empiece por los ceros que elijas. Cada cero más multiplica por 16 el trabajo esperado. La red real exige unos 19 o 20 ceros hexadecimales.
- Intentos (nonce)
- 0
- Velocidad de tu navegador
- 0 hashes/s
- Último hash
- —
Por qué hace falta
Sin prueba de trabajo, cualquiera podría crear miles de identidades falsas y votar por la versión del libro que le conviniera. Con ella, el «voto» se mide en energía gastada, que no se puede falsificar. Para reescribir la historia, un atacante tendría que gastar más energía que todos los mineros honestos juntos.
La dificultad se ajusta sola
Si entran más mineros, los boletos premiados aparecen antes. Para mantener el ritmo de un bloque cada diez minutos, cada 2.016 bloques (unas dos semanas) todos los nodos recalculan la dificultad: si los últimos 2.016 bloques han tardado menos de dos semanas, el objetivo se hace más exigente; si han tardado más, se relaja. El ajuste tiene un límite de cuatro veces en cada sentido para evitar cambios bruscos.
El resultado es notable: el hashrate de la red se ha multiplicado por billones desde 2009 y los bloques siguen saliendo, de media, cada diez minutos. Puedes ver cómo la dificultad persigue al hashrate en las métricas del panel.