No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Bitcoin para Developers

Curso de Bitcoin para Developers

Juan Sebastián Marulanda

Juan Sebastián Marulanda

Minando un bloque

7/16
Recursos

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).

Aportes 12

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Minando un bloque.

La minería es el mecanismo fundamental que habilita un consenso descentralizado a través de cuatro pilares fundamentales.

.

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

.
Políticas.

  • Conjunto de reglas de validación que se aplican adicional al consenso sobre transacciones no confirmadas.
  • No afecta las transacciones en bloques.
  • Uso de recursos, heurísticas, reglas.

.
Coinbase Transcation.

  • Transacción especial que contiene la recompensa por el proceso de minado.
  • Solo tiene una salida.

.
Recompensas y Fees.

  • Existen dos tipos de recompensas:
    • Añadir un nuevo bloque a la cadena principal.
    • Sumando las tarifas (fees) de las transacciones añadidas en el bloque.
      • Tarifas totales = Suma (salidas) + Suma (entradas).

.
Estructura Coinbase Transaction Input.

Campo Descripción Tamaño (bytes)
Transaction Hash Todos sus bits son cero, no tiene referencia a un hash de transacción. 32
Output index Todos los bit son unos: 0xFFFFFFFF 4
Coinbase Data Size Longitud de la información, de 2 a 100 bytes. 1-9 bytes
Coinbase Data Información usada para un nonce extra y etiquetas de minería. Variable
Sequence number 0xFFFF 4

.
Estructura Transaction Input.

Campo Descripción Tamaño (bytes)
Transaction Hash Referente a la transacción que contiene la UTXO a usarse. 32
Output index El índice de la UTXO. 4
Unlocking-Script Size Longitud del script, de 2 a 100 bytes. 1-9 bytes
Unlocking-Script Script que satisface con las condiciones del script que bloquea la UTXO. Variable
Sequence number 0xFFFF 4

.
Construyendo el encabezado.

  • Version.
  • Previous block hash.
  • Merkle Tree.
  • Timestamp.
  • Target.
  • Nonce.

.
Minando un bloque.

  • Pasar la cabecera de un bloque a través de una función de hashing hasta encontrar un valor válido.
  • Proof-of-Work:
    • SHA 256.
    • Producir una salida que sea igual o menor que el objetivo.
    • Objetivo alto, menor dificultad.
    • Objetivo bajo, mayor dificultad.
    • ¿Cuántos de los bits iniciales deben ser cero?

En realidad las tarifas totales son la diferencia entre la suma de salidas y la suma de las entradas. El exceso es lo que es recolectado por los mineros:

fees = Sum(Inputs) - Sum(outputs)

Lean Mastering Bitcoin, porque de verdad que este profesor está de… u.u

RESUMEN CLASE 7:
MINANDO UN BLOQUE

I.- MINERIA Y SUS 4 PILARES

  • Validación independiente de transacciones.

  • Agregación independiente de transacciones en nuevos bloques.

  • Verificación de nuevos bloques.

  • Selección independiente de la cadena con más computación acumulada.

II.- POLITICAS

  • Conjunto de reglas de validación que se aplican adicional al consenso sobre transacciones no confirmadas

  • No afecta las transacciones en bloques.

  • Uso de recursos, heurísticas, reglas

III.- COINBASE TRANSACTION

  • Transacción especial que contiene la recompensa por el proceso de minado.

  • Solo tiene un input y un output.

IV.- RECOMPENSAS Y FEES

  • Existen 2 tipos de recompensas:

    • Añadir un nuevo bloque a la cadena principal

    • Sumando las tarifas(fees) de las transacciones añadidas en el bloque

      • Tarifas totales = Suma(salidas) + Suma(entradas)

V.- ESTRUCTURA COINBASE TRANSACTION INPUT

VI.- ESTRUCTURA TRANSACTION INPUT

VI.- CONSTRUYENDO EL ENCABEZADO

  • Version

  • Previous block hash

  • Merkle Tree

  • Timestamp

  • Target

  • Nonce

VIII.- MINANDO UN BLOQUE

  • Pasar la cabecera de un bloque a través de una función de hashing hasta encontrar un valor válido.

  • Proof-of-work:

    • SHA 256.

    • Producir una salida que sea igual o menor que el objetivo.

    • Objetivo alto, menor dificultad.

    • Objetivo bajo, mayor dificultad.

    • ¿Cuántos de los bits iniciales deben ser cero?

En esta página podemos ver como la dificultad de la red de BTC aumenta en función del hasrate de la misma red

https://studio.glassnode.com/metrics?a=BTC&category=Miners&m=mining.DifficultyLatest

Minuto 1:20 “SOLO TIENE UNA SALIDA”, pero el dice solo tiene una entrada

Correccion solo tiene una salida

Minando un Bloque

Aqui el script de prueba de trabajo, no estaba el link en recursos

https://github.com/bitcoinbook/bitcoinbook/blob/develop/code/proof-of-work-example.py