Como ya estuvimos explicando en nuestra introducción a Blockchain, una cadena de bloques es una base de datos distribuida que registra bloques de información y los vincula unos con otros, encontrándose la información de un bloque contrastada en el que lo precede.
¿Qué función tienen los mineros?
Todo el registro que conforma la cadena de bloques se encuentra compartido y distribuido a todos los nodos de la red, de forma que todos guardan una copia completa y actualizada de la cadena. Cada bloque generado se une a la cadena de bloques ya existente, enlazado con el anterior gracias a los mencionados apuntadores Hash, creando una sucesión de bloques inmutable al referirse cada uno a su bloque anterior.
Aun así, dos bloques pueden generarse casi a la vez, y haber sido añadidos ambos a la cadena de bloques. En este caso, aunque ambos bloques sean válidos, sólo uno puede formar parte de la cadena principal, de modo que los nodos continuarán la cadena a partir del bloque que se generase primero.
En el sistema de Blockchain, los mineros tienen el rol de la creación de nuevos bloques y la verificación de los bloques añadidos a la cadena. Por un lado, los mineros buscan encontrar el número mediante el cual resuelvan el bloque y encuentren el Hash correspondiente al mismo. Una vez solucionado, se notificará al resto de miembros de la red, que verificarán si el Hash obtenido es el correcto.
De esta forma, se está dando a los mineros una labor de verificación de la cadena de bloques mediante consenso, al requerir que, al menos el 51% de los mineros de la red validen la veracidad del bloque. Esta labor es sencilla puesto que cada bloque inicia con el Hash correspondiente al bloque anterior y es sencillo comparar su coincidencia con los anteriores.
¿Por qué dedicarse a minar?
Para que los mineros sigan sustentando este sistema es necesario que tengan un interés en continuar haciéndolo. Es aquí donde entra en juego las recompensas a los mineros.
En el sistema de Bitcoin se otorga actualmente una recompensa de 12,5 bitcoins por cada nuevo bloque cerrado. Esta cantidad corresponde íntegramente al minero que resuelve el bloque. Además, los usuarios, al emitir un dato y solicitar que sea incorporado a un bloque, pueden añadir una cantidad de bitcoins vinculada a la operación, recibiendo el minero la recompensa por el cierre de bloque, junto con la suma de las comisiones que existan en el bloque completado.
En los primeros años, los mineros hacían uso de equipos de unos 3.000 euros, incluso se utilizaba el ordenador doméstico. Se minaba con tarjetas gráficas de videojuegos, pero, poco a poco, se han ido utilizando circuitos informáticos específicos y máquinas con capacidad de minar datos 24 horas al día, toda la semana, durante todo el año.
¿Cuál es la estructura de un bloque?
Cuando un emisor emite un dato para que sea recogido en un bloque, ya sea una transferencia o cualquier tipo de evento informático, éste se distribuye a lo largo de la red, pendiente de ser incluido en un bloque. El proceso de minería corresponde con la generación de bloques, donde son añadidos estos datos que se encontraban a la espera, una vez ha sido verificada la información de su contenido.
Cuando haya sido añadido a la cadena de bloques, este nuevo bloque contendrá un encabezamiento donde se recoge la información básica de su contenido. En éste, constará la versión del software que ha generado este bloque, así como el momento en que fue completado (“timestamp”). También deberá de constar el Hash correspondiente al bloque que lo precede en la cadena.
Cuando hablamos del Hash, nos estamos refiriendo a la función de Hash criptográfica, o función resumen, que se trata de un algoritmo que toma unos datos de entrada y devuelve una cadena de bits de longitud fija, es decir, recibe la parte de un mensaje como puede ser una transacción entre dos personas y devuelve una serie limitada de números y letras que representan dicha operación. Este algoritmo tiene una interesante particularidad: la dificultad que tiene de transformar de nuevo este código en el mensaje inicial del que se origina, así como la práctica imposibilidad de que dos mensajes distintos den lugar al mismo Hash.
El Hashcash es un sistema de seguridad añadido, como sistema de proof-of-work. Se trata de exigir que el Hash se inicie con 20 ceros a la izquierda, de modo que si el emisor directamente introduce esos números al principio del algoritmo, se demuestra que no está calculando el Hash de forma automatizada. A medida que se requieran más ceros al inicio del algoritmo, mayor será la dificultad de encontrar el Hash bajo las condiciones requeridas, ajustándose la velocidad a la que se generan bloques a la cadena.
Para dar con la función Hash que buscamos, tendremos que descifrar el “nonce”, un número seleccionado arbitrariamente, de un solo uso, y cuyo único propósito es introducir un cambio en el contenido que se va a hashear. De este modo, podremos hacer todos los intentos que queramos y obtendremos siempre un hash distinto. Como hemos señalado, a este número se le pide que empiece por una determinada cantidad de ceros, de modo que el número buscado sea inferior a la cifra que había sido predeterminada. Tanto el nonce como la dificultad se encontrarán reflejados en el encabezado del bloque, y servirán para que el resto de mineros compruebe si el Hash que hemos calculado es correcto o no. Junto a esta incógnita, constará también el árbol de Hashes o “Merkle Root”.
Cómo ha evolucionado el sistema de minado
Actualmente, existe hardware específico de minado de criptomonedas y potentes máquinas que los ejecutan que requieren de importantes inversiones de dinero. Así es como se han ido desarrollando las pools de minado, combinaciones de recursos de varios mineros con el propósito de obtener más potencia y mayores recompensas.
Más del 70% de las granjas de minado se encuentran en China, debido a los bajos costes de tarifa de la luz. Algunas de ellas representan por sí solas importantes cantidades del porcentaje mundial de minado de bloques (AntPool, DiscusFish, BTCC). Un local enorme y cientos de ventiladores funcionando para que no se sobrecalienten los miles de ordenadores apilados uno tras otro sin parar de funcionar.
Pero no todas se encuentran en el gigante asiático. También existe importante actividad en Singapur, por lo barata que es su energía, o en Islandia, gran fuente de bitcoins por el constante frío y las ventajas fiscales al uso de energía verde o la buena velocidad de conexión.
También existen otros tipos de pools de minado, como las minerías de red, formado por colectivos de mineros individuales que aportan su fuerza computacional y obtienen beneficios en función de esta.
Hoy en día, entrar en el sector de la minería requiere costosos gastos de inversión inicial. La rentabilidad de estas inversiones requerirá apostar constantemente por nuevo Hardware, y la velocidad a la que quedan obsoletas estas máquinas se antoja muy breve; por no mencionar el alto consumo eléctrico que suponen y el calor y ruido que provocan el continuo funcionamiento del minado.
Aun así, todo ello parece un coste asumible teniendo en cuenta la seguridad que conlleva esta descentralización de la red basada en el consenso de aprobación de los bloques minados, creando un sistema robusto y seguro en el que progresivamente se prevé que la recompensa recibida por el minado de bloques sea cada vez mayor.
El minado, dentro del sistema de cadena de bloques, sirve para que nuevas criptomonedas sean generadas y aumente el tráfico de la moneda virtual, pero es aún más importante en el aseguramiento de los aspectos que hacen único a este sistema: transparencia, inmutabilidad, seguridad y descentralización.