Minería

El proceso de agregar nuevos bloques a la blockchain

Diagrama que muestra un nodo de la red bitcoin minando un nuevo bloque en la blockchain.

La minería es el proceso de intentar agregar un nuevo bloque de transacciones a la blockchain.

Es una competencia en toda la red, donde cualquier nodo puede trabajar para intentar agregar el siguiente bloque a la cadena.

Cuando se mina un nuevo bloque, se transmite por la red, donde cada nodo lo verifica de manera independiente y lo agrega a su blockchain. Después, cada nodo minero reinicia el proceso para intentar construir encima de ese nuevo bloque.

El sistema está diseñado para que se mine un nuevo bloque cada 10 minutos, en promedio.

Método

¿Cómo funciona la minería?

El proceso de minería comienza llenando un bloque candidato con transacciones del memory pool de tu nodo.

Luego, construimos un encabezado de bloque para ese bloque candidato. Básicamente es un resumen corto de todos los datos del bloque, que incluye una referencia a un bloque existente sobre el que queremos construir.

Ícono de herramienta Encabezado del Bloque

Encabezado de Bloque

Decodifique y codifique un encabezado de bloque.

0 bytes
Encabezado de Bloque (Campos)

Versión

Versión: 0
0d
0d

Ahora estamos listos para empezar a minar este bloque. Para ello, pasamos el encabezado del bloque por la función hash SHA-256 dos veces (llamada HASH256, abreviando), y esperamos que el número que arroje esté por debajo del objetivo actual.

Ícono de herramienta HASH256

HASH256

SHA-256 doble. Se usa para hashear cabeceras de bloque, datos de transacción y prácticamente cualquier cosa que necesite hash en Bitcoin.

0 bytes
SHA-256
SHA-256

SHA-256(SHA-256(dados))

0 bytes

Si el hash de tu encabezado de bloque no está por debajo del objetivo, puedes seguir intentando incrementando el campo nonce. Eso te permite mantener el mismo encabezado básico, pero obtener un resultado de hash completamente diferente. Y, con suerte, podrías terminar obteniendo un hash de bloque por debajo del objetivo actual.

Sincronización

¿Cómo actualizan los nodos su blockchain?

Si un minero consigue un hash de bloque por debajo del objetivo para su bloque candidato, transmite ese bloque al resto de la red.

Cada nodo confirma entonces que el encabezado del bloque tiene un hash por debajo del objetivo y añade ese bloque "minado" a su blockchain.

A partir de ahí, cada nodo deja de trabajar en su propio bloque candidato, construye uno nuevo (con transacciones nuevas de su memory pool) y empieza a intentar construir sobre ese nuevo bloque de la cadena.

Como resultado, los mineros trabajan constantemente de forma independiente (pero colaborativa) para extender la blockchain con nuevos bloques de transacciones.

Prueba de Trabajo

¿Qué significa prueba de trabajo?

El proceso de minería se llama con frecuencia prueba de trabajo (proof of work). El término se refiere al hecho de que se necesita trabajo para obtener un hash de bloque por debajo del objetivo. Y si lo consigues, cualquiera puede verificar que el trabajo se hizo, confirmando que el hash del bloque que construiste está efectivamente por debajo del objetivo.

La prueba de trabajo consiste en buscar un valor que, al ser hasheado (por ejemplo, con SHA-256), produzca un hash que comience con un número de bits cero.
Satoshi Nakamoto, Whitepaper de Bitcoin

Mineros

¿Quién puede minar bloques?

Cualquier nodo puede intentar minar un bloque, y cada nodo tiene una posibilidad de éxito. Sin embargo, conseguir hacer cálculos de hash lo más rápido posible mejora tus posibilidades. Como resultado, los mineros con más poder de procesamiento tienen más probabilidades de minar un bloque, lo que favorece a quienes tienen hardware especializado y acceso a energía barata. Pero aun así, nada te impide minar si quieres.

Recompensa del Bloque

¿Cuál es el incentivo para minar?

Si consigues minar un bloque, puedes reclamar una recompensa de bloque. Al construir un bloque candidato, colocas tu propia transacción coinbase en la parte superior, lo que te permite enviarte a ti mismo una cantidad fija de bitcoins que antes no existían (gastarles después de que el bloque llegue a 100 bloques de profundidad). Esta recompensa funciona como incentivo para que los mineros extiendan la cadena conocida más larga.

Intervalo

¿Cuánto tiempo se tarda en minar un bloque?

El sistema está diseñado para que un minero en la red mine un nuevo bloque cada 10 minutos (en promedio). El tiempo lo controla el objetivo, que funciona como una barra de limbo por debajo de la cual tiene que quedar el hash de un bloque. Si los bloques se minan más rápido que 10 minutos en promedio durante dos semanas (por ejemplo, porque entraron más mineros), el objetivo se ajusta hacia abajo, haciendo que sea más difícil minar, y el tiempo medio vuelve a ser de unos 10 minutos.

Ajuste de dificultad

Calcule el nuevo objetivo a partir del objetivo actual y del tiempo real de minería de un período de 2016 bloques.

0x
0 bytes
Tiempo (segundos)
0d
0d

El período de ajuste de dificultad es de 2016 bloques. En promedio, un bloque se mina cada 600 segundos (10 minutos), así que el tiempo esperado es 2016 × 600 = 1.209.600 segundos.

Razón

El tiempo real dividido por el tiempo esperado. Multiplicamos el objetivo actual por esa razón para obtener el nuevo objetivo.

0x
0x
0 bytes

del encabezado del bloque, y es ese objetivo el que realmente se usa en la minería.>Nota: este valor objetivo se trunca levemente para almacenarse en el campo

Propósito

¿Por qué usamos minería?

El sistema de minería permite que computadoras en una red resuelvan conflictos sin necesidad de una computadora central. Es posible crear dos transacciones conflictivas (enviando los mismos bitcoins a lugares diferentes) e introducirlas en nodos distintos al mismo tiempo. Pero gracias a la minería, solo una llega a la blockchain: un nodo mina un bloque de su memory pool y lo transmite; los demás nodos lo añaden y eliminan cualquier transacción conflictiva. Así, la minería funciona como un mecanismo de ordenación de transacciones, y ningún nodo aislado controla qué transacciones entran en la blockchain.

Comandos

Recursos