Minando un bloque

Clase 7 de 16Curso de Bitcoin para Developers

Resumen

Aproximadamente, cada 10 minutos se genera un nuevo bloque en la Blockchain de Bitcoin. El proceso de generación o minado de cada bloque tiene sus propias características.

Transacciones y bloques

La minería es el mecanismo fundamental que habilita el consenso descentralizado, a través de cuatro pilares:

  • Validación independiente de transacciones
  • Agregación independiente de transacciones en nuevos bloques
  • Verificación de bloques
  • Selección independiente de la cadena con más computación acumulada

Dificultad de minado de un bloque

Validar un bloque mediante el algoritmo de proof-of-work requiere poder de cómputo para la obtención de un hash con determinadas características. El mismo se realiza encriptando el encabezado de un bloque que se construye con la siguiente información:

  • Versión
  • Hash del bloque previo
  • La raíz de Merkle
  • Timestamp (marca de tiempo)
  • Target (dificultad de cálculo del Nonce)
  • Nonce (calculado con el algoritmo de PoW)

La información de todo el encabezado se encripta a través de una función de encriptado “SHA256” en dos oportunidades con un número aleatorio llamado nonce. El resultado es un valor único y representativo del bloque que depende del target de dificultad.

Encontrar el nonce no es tarea fácil para los mineros, debe ser un número tal que produzca un hash con N cantidad de ceros a la izquierda para lograr validar un bloque.

Por ejemplo: 0x0000000000123456798. La cantidad de ceros, o sea, la dificultad es determinada por la cantidad de cómputo intentando localizar este número. A más cómputo tenga la red, más ceros requiere el hash y más difícil se vuelve la tarea.

Recompensas y comisiones para los mineros

Los mineros reciben una comisión por minar el bloque y dicha comisión lleva el nombre de “Coinbase Transaction”. La misma es la primera de todo bloque e incluye toda la información relevante para que un minero reclame su recompensa.

Existen dos tipos de recompensas:

  • Al añadir un nuevo bloque a la cadena principal.
  • La suma de las comisiones de todas las transacciones de un bloque. Restando la suma de las tarifas (fees) de las transacciones añadidas en el bloque: Tarifas totales = Suma(salidas) - Suma(entradas)

Entradas y salidas
El concepto de entradas y salidas, o inputs y outputs, es el mecanismo que permite agrupar fracciones de bitcoins para realizar un solo pago. Es una de las partes más importantes de las transacciones y es lo que permite que Bitcoin sea tan eficiente para el intercambio de valor entre dos partes.

Políticas extras

El protocolo de Bitcoin implementa políticas que no son aplicadas directamente en el consenso, pero lo hacen más eficaz. Son un conjunto de reglas de validación que se aplican adicionalmente al consenso sobre transacciones no confirmadas que se almacenan en el Mempool. Permiten verificar transacciones antes de ser agregadas a un nuevo bloque sin afectar a las transacciones ya confirmadas.

Conclusión

El mecanismo de transacciones y minado de bloques de la Blockchain de Bitcoin explica por qué este se convierte en un excelente sistema de pagos. Es una obra de ingeniería de software admirable.


Contribución creada por: Luis Enrique Herrera y Kevin Fiorentino (Platzi Contributor).