¿Qué es una prueba de trabajo?

Una prueba de trabajo (en inglés Proof of work o PoW) es un mecanismo de control aplicado a un sistema que, con el propósito de afianzarlo, así como de eludir ataques y conductas fraudulentas, requiere la realización de alguna clase de trabajo por parte de los usuarios que conlleve una significativa inversión de tiempo y, por lo general, también, un coste elevado, ya sea en equipamiento, por consumo eléctrico o en ambas facetas.

Este método asimismo exige que, mientras el desarrollo de dicha tarea —que habitualmente consiste en la búsqueda de cierta pieza de información clave— supone un grado de dificultad considerable o muy alto, el resultado final que produzca ha de ser fácilmente comprobable por el sistema.

¿Por qué una prueba de trabajo para Bitcoin?

El Bitcoin no sólo fue la primera de las criptomonedas que hizo su aparición en el mercado internacional, sino también el primer medio de pago en aplicar un sistema de proof of work.

La implantación de la prueba de trabajo en el protocolo de Bitcoin obedecía a dos motivos principales. Por un lado  proteger la moneda electrónica de fraudes y manipulación de datos, blindarla contra toda clase de ataques informáticos. Por el otro, certificar la validez de las transacciones de un modo público, descentralizado, mediante consenso entre los mismos usuarios, de tal forma que no se dependiese de ciertas instituciones (bancos, entidades financieras).

 

Proof of work o prueba de trabajo en Bitcoin.
Fuente: bitcoinwiki

 

Proceso de validación: la Blockchain o Cadena de bloques

Cada vez que alguien solicita realizar una transacción con bitcoins, dicha transacción se emite a una red p2p que viene constituida por una serie de ordenadores interconectados entre sí y que reciben el nombre de nodos.

Esta red de nodos —abierta a cualquier usuario—se erige como un primer filtro para validar las transacciones que se están llevando a cabo en un determinado momento. Cada transferencia es registrada con sus datos particulares (emisor, receptor, cantidad a transferir, etcétera) bajo una marca de tiempo y, junto con muchas otras, llevadas a cabo en el mismo periodo, pasa a formar parte de un bloque, al que el protocolo Bitcoin le asigna una firma digital única o hash.

Tras esta primera «anotación», es cuando viene el trabajo de verdad. Pues una transacción sólo se considera completa, cuando el bloque que la contiene es agregado a la blockchain, que es como el gran libro de contabilidad del sistema Bitcoin, el registro último donde los bloques y las transacciones quedan inscritos, ahora sí, de manera permanente e inalterable.

La prueba de trabajo en Bitcoin

Para que un bloque —y las transacciones que éste contiene— se añadan a la blockchain, o lo que es lo mismo, para que sean confirmados uno y otras, antes han de pasar por un proceso: la proof of work de Bitcoin.

Esta prueba de trabajo implica la búsqueda de un valor, a través de algoritmos: de funciones criptográficas hash y, concretamente, la función SHA-256 (256 bits), un valor que se ajuste a todos los datos del bloque que se examina y que, al mismo tiempo, satisfaga cierta condición arbitraria, en el caso de Bitcoin la de iniciarse con un número determinado de ceros.

Lo último tiene una importancia capital, pues cuanto más larga haya de ser esta serie de ceros iniciales, mucho más difícil resultará encontrar el valor que cierre el bloque. Precisamente, sirviéndose de este hecho es que Bitcoin va cambiando el nivel de dificultad de la proof of work, y ajustándola a la potencia total de la red.

La prueba de trabajo de Bitcoin implica la búsqueda de un valor a base de miles o millones de cálculos por segundo. El objetivo es poder dar por fin con el valor correcto o nonce (number used once o número usado una sola vez), el identificador único y la llave exclusiva que cierre definitivamente el bloque, agregándolo para siempre a la cadena blockchain.

Se trata en suma de un proceso que demanda una potencia computacional y un notable gasto energético. El esfuerzo enconómico ha de llevar aparejado un premio en consonancia, una recompensa que sea capaz de atraer a los mineros.

Minería Bitcoin: dificultad, recompensa y consenso entre mineros

Los mineros de Bitcoin son aquellas personas que se dedican a tratar de resolver el problema criptográfico-matemático que lleva consigo cada bloque provisional de transacciones, para lograr ser los responsables de añadir un nuevo bloque a la blockchain y ganar así ganar la recompensa estipulada para ello.

El grado de dificultad de la proof of work va variando cada poco y lo hace en función de la cantidad de mineros que haya en la red y/o la velocidad con la que se generan bloques para la blockchain.

Cuanto más alto es el número de usuarios —nodos— que se dedican a la minería o mayor es la potencia conjunta de la red, más rápidamente se producen los bloques. Pero la prueba de trabajo de Bitcoin está diseñada para que se genere, de promedio, un nuevo bloque cada 10 minutos.

Ello obliga a que, cuando baja la velocidad media de minado, tenga que aumentarse la dificultad para la creación de un nuevo bloque, manteniendo así un equilibrio lo más constante posible.

Un cambio bien calculado

Esta graduación de la complejidad se lleva a cabo cada 2016 bloques, aproximadamente cada vez que han transcurrido dos semanas, y puede regularse haciendo que el número de ceros con que ha de comenzar el nonce de un bloque sea mayor o menor.

Lo que no varía, en cambio, o sólo lo hace de 4 en 4 años —ver aquí el concepto de halving—, es la recompensa para cada minero capaz de desentrañar el enigma criptográfico de un bloque, que a día de hoy, y hasta el año 2021,  se encuentra fijada en 12,5 bitcoins.

Cada bloque que se genere, ha de contener el hash o firma digital del bloque previo, que a su vez contiene el hash del bloque anterior y así, bloque tras bloque, se va conformando una larguísima cadena. Una vez que el esfuerzo computacional de un minero ha resuelto con éxito la prueba de trabajo de un bloque, este bloque no puede ser alterado sin rehacer todo el trabajo, que incluiría modificar todos los bloques después de éste.

Cuando un bloque es propuesto para su aprobación, los mineros de la red tienen dos opciones: buscar un bloque alternativo que les sea más favorable, o aprobar el bloque que se les presenta y pasar a trabajar en el próximo, partiendo de ese mismo hash. Un minero que admite un bloque propuesto, entiende que está siguiendo un proceso de consentimiento natural y que, si tuviera la fortuna de generar en el futuro otro bloque para la blockchain, seguramente sería aceptado por los mismos motivos que él aceptó los anteriores. De ahí que el consenso entre mineros suela ser total o muy alto, siendo cada nuevo bloque cuya victoria se anuncia pronto verificado y aceptado por la mayoría de nodos del sistema, tal como lo especifican las reglas del protocolo Bitcoin.

Mineros de Bitcoin con éxito