¿Cómo funciona la minería?

Las criptomonedas son uno de los temas más candentes que se discuten en Internet hoy en día. Pero antes de entender cómo funciona la minería, podemos hacernos las siguientes dos preguntas, estas son:

  1. ¿Por qué es necesaria la minería?
    La minería de criptomonedas no se trata solo de ganar dinero. Los mineros tienen una función importante en la red blockchain. Resuelven problemas matemáticos y aprueban las transacciones de otros usuarios a través de Internet. Los mineros salvan las strings de bloques del fraude de bloques y los ataques de piratas informáticos y garantizan la descentralización de la red.

    Pero la función principal de la minería es diferente. La función principal es llegar a un acuerdo sobre la base sobre la cual una transacción se puede considerar válida para que ningún usuario pueda gastar monedas que ya se gastaron en otra transacción. Es por eso que recibir bitcoins es solo un efecto secundario de hacer un trabajo útil.

  2. ¿Cuál es el propósito de los criptomineros?
    Cada vez que se realiza una transacción de criptomonedas, un minero de criptomonedas es responsable de garantizar la autenticidad de la información y actualizar la string de bloques con la transacción válida. El proceso de minería implica competir con otros criptomineros para resolver problemas matemáticos complicados con funciones hash criptográficas que están asociadas con un bloque que contiene los datos de la transacción.

    El primer minero de criptomonedas que resuelve el rompecabezas es recompensado al poder autorizar la transacción y, a cambio del servicio brindado, los mineros de criptomonedas obtienen pequeñas cantidades de criptomonedas propias.

Ahora que conocemos el propósito de la minería de criptomonedas y los mineros, podemos avanzar y comprender cómo funciona. Para eso, podemos echar un vistazo a la estructura de un bloque en la string de bloques:


Tabla – Estructura de bloques

Bloquear 8896
Nº de transacciones 1800
valor de transacción $1349873
marca de tiempo 2017-11-11 01:35:55
retransmitido por Vía BTC
Dificultad 1765987453897.67
Tamaño 1063,67 KB
Mientras tanto 880
hash de bloque 0000abcdcee78ab745b9f …

Un bloque en realidad contiene muchos más campos además de los mencionados anteriormente. Pero por ahora nos centraremos en el campo Block Hash y Nonce.

  1. Block Hash:
    bueno, los datos en la string de bloques se pueden «almacenar» almacenando los hash de los datos, de modo que al menos pueda verificar que esos son los datos cuyo hash se almacenó si tiene los datos para hacerlo usted mismo y compararlos. en la string de bloques. Un árbol Merkle es una forma de hacer esto. Consulte el siguiente diagrama para comprender por qué se utiliza un árbol de Merkle.

    Figura – árbol Merkle

    Entonces, para construir un árbol de Merkle, crea una estructura de datos de árbol con cada uno de los Nodes de hoja que contiene el hash de una sección de los datos que se almacenarán. Desde allí, toma el hash de la concatenación de los Nodes secundarios y propaga el valor hasta el padre, continuando este proceso hasta el árbol hasta que se genera un hash final. Incluso un pequeño cambio en las hojas se propagará hacia arriba y cambiará el hash resultante.

    Un hash es un número hexadecimal de 256 bits que se genera mediante una función hash, por ejemplo, Bitcoin utiliza el algoritmo SHA256 para generar un hash.

    Sabemos que el propósito de un minero es calcular el hash del bloque por el cual será premiado. Parece bastante fácil. Para nivelar el campo, cada minero está restringido a un determinado hash objetivo. Un hash objetivo implica que por cada bloque que extrae el minero, si el hash calculado es mayor que el hash objetivo, entonces se descarta.

  2. Nonce:
    aquí es donde entra en juego el concepto de Nonce. Nonce significa «Número usado solo una vez». Como sabemos, el minero tiene que calcular el hash que debe estar por debajo del hash objetivo que se le asignó. Pero no puede cambiar el número de bloque, los datos, el hash anterior para adivinar un nuevo hash debido al efecto de avalancha. El único campo que puede variar es el Nonce.

    Un nonce es un número de 32 bits. Entonces puede haber un máximo de aproximadamente 4 mil millones de valores Nonce posibles como 2^(32) = 4, 294, 967, 296.

    El nonce se selecciona aleatoriamente para cada iteración. Entonces, para cada iteración, se selecciona un número entero aleatorio entre 0 y 4, 294, 967, 296.

    Considere la siguiente tabla:

    Bloquear 8896
    Nº de transacciones 1800
    valor de transacción $13849673
    marca de tiempo 2017-11-11 01:35:55
    retransmitido por Vía BTC
    Dificultad 1456324543655.677
    Tamaño 1066.34 kB
    Mientras tanto 880
    hash de bloque 000abddbcdef673bedb4 …

    Figura: todos los hashes posibles

    En la figura anterior, los círculos representan un valor hash obtenido para un valor de nonce particular. Los círculos negros implican que un hash calculado no es válido. El círculo verde representa un hash válido. El OBJETIVO asignado a un minero implica que el minero puede extraer un bloque solo si el hash calculado consta de 4 ceros iniciales aquí (solo como ejemplo. El hash objetivo puede variar con múltiples ceros iniciales). Todos los hashes mayores que eso serán descartados.

    Comenzamos con un valor de nonce de 88 que, como podemos ver, produce un hash mayor que el hash de destino. El valor de nonce se cambia a 777 y se vuelve a calcular el hash. Repetimos el proceso hasta que encontremos un nonce que produzca un hash cuyo valor sea menor que el hash objetivo. De acuerdo con la figura anterior, esto sucede en el valor Nonce 7778. Ahora el minero puede autenticar el bloque y agregarlo a Blockchain.

Publicación traducida automáticamente

Artículo escrito por varungirdhar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *