comienzo
comienzo

La prueba de trabajo (Comprobante de trabajo (en inglés) es un mecanismo utilizado en Bitcoin, dentro del principio del Consenso de Nakamoto, para que el sistema de pago sea resistente a los ataques de Sybil. Este tipo de ataque se caracteriza por la creación de múltiples identidades falsas con el fin de corromper la red peer-to-peer.
El Consenso de Nakamoto es el principio que permite a los usuarios de Bitcoin ponerse de acuerdo sobre una única versión de la cadena de bloques para llegar a un acuerdo sobre la pregunta: «¿quién es el propietario de qué? ». Se denomina «consenso de prueba de trabajo» porque especifica que los nodos acuerdan qué cadena de bloques tiene la mayor cantidad de trabajo acumulado. Esta prueba de trabajo la realizan ordenadores llamados «mineros», en referencia al proceso de extracción del oro. Minería de Bitcoin (Minería) es, por lo tanto, la acción de presentar una prueba de trabajo.
Este artículo sobre la prueba de trabajo es una continuación lógica del artículo de la semana pasada sobre cómo funciona Bitcoin en general. También te aconsejo que lo leas haciendo clic en el enlace de abajo.
➤ Obtenga más información sobre cómo funciona Bitcoin.
La prueba de trabajo es simplemente la búsqueda de un valor que, una vez pasado a una función matemática aleatoria, dé un resultado inferior al número objetivo.
Concretamente, los mineros agrupan las transacciones pendientes en un bloque, respetando el límite máximo de peso e incrementan los valores modificables.
El término técnico para estos valores modificables es «nonces», la abreviatura en inglés de «número que solo se usa una vez». Se trata de un número elegido arbitrariamente que se utiliza una sola vez, y que se sustituye por otro número en la siguiente manipulación.

Pasarán el encabezado de este bloque candidato a una función aleatoria e irreversible. El objetivo es encontrar una huella (resultado de la función) que sea más pequeña que el objetivo. Si su bloque no cumple la condición, pueden cambiar los valores editables (Nunces) e intenta volver a pasar su nuevo encabezado a la función. Entonces tendrán un resultado completamente diferente al primero. El minero continúa este proceso de modificar los nonces y comparar el resultado obtenido con el objetivo hasta encontrar un bloque válido.
La función matemática aleatoria (función hash) utilizada para la minería de bitcoins es una función doble SHA256 (SSegure HCeniza UNalgoritmo), también llamado HASH256d o HASH256.

Como la función SHA256 no se puede revertir, los mineros solo pueden probar todas las posibilidades una por una. Es un cálculo de prueba y error. El primer minero que encuentre un bloque que cumpla esta condición gana el derecho a registrarlo en la cadena de bloques de todos los usuarios y obtiene la recompensa monetaria asociada. Esta remuneración para menores se compone de dos partes diferenciadas:
La validación de un bloque también implica una confirmación inicial del pago de todas las transacciones incluidas en él.
De este modo, los usuarios de la red Bitcoin, representados por sus nodos, pueden acordar una versión del registro de la cuenta añadiendo bloques válidos creados por los mineros a su base de datos. Cada nodo recuerda un estado de la cadena de bloques y registra los nuevos bloques creados después de haberlos verificado individualmente. La cadena de bloques auténtica es la que tiene La mayor cantidad de trabajo acumulado. Este principio de acuerdo entre todos los usuarios es lo que denominamos: «consenso de Nakamoto mediante prueba de trabajo».
La información de que los nodos considerarían válida la cadena más larga es un error común. Aunque este principio de consenso se mantuvo vigente hasta 2010, podía aprovecharse para destruir Bitcoin y luego modificarse. A partir de esa fecha y de la actualización 0.3.3 de Bitcoin, los nodos se ponen de acuerdo sobre qué cadena tiene más trabajo acumulado, y cuál puede ser una cadena diferente de la cadena más larga.
El algoritmo de consenso incluye ajustar el valor objetivo para mantener una velocidad de creación de bloques estable en 10 minutos. Cuando los bloques se encuentran demasiado rápido para el objetivo, la dificultad de extracción aumenta y viceversa. Este gran intervalo entre bloques permite que todos los nodos se sincronicen correctamente con el mismo estado de la cadena de bloques.
Concretamente, cada 2016 bloques (aproximadamente cada dos semanas), los nodos calcularán un nuevo objetivo para la prueba de trabajo con el fin de ajustar la dificultad de la minería.
Como recordatorio, los mineros deben encontrar un bloque que, una vez pasado por una función aleatoria, dé como resultado un número inferior al objetivo. Si durante el último período de 2016 los bloques se encontraron en promedio a una velocidad superior a 10 minutos cada uno, esto significa que hubo un aumento en la potencia informática desplegada en la red. Por lo tanto, los nodos aumentarán la dificultad de minar al ajustar el objetivo a la baja para aumentar el tiempo necesario para encontrar un bloque válido. El objetivo es que este valor se acerque a los 10 minutos de media. Por el contrario, si durante el último período de 2016 los bloques se validaron en promedio más de 10 minutos cada uno, esto significa que hubo una disminución en la potencia de cálculo utilizada por los mineros. A continuación, los nodos reducirán la dificultad ajustando el objetivo hacia arriba.

Para calcular el nuevo objetivo, cada 2016 bloques, los nodos realizarán el siguiente cálculo:
Nuevo objetivo = objetivo antiguo * (tiempo total de los últimos bloques de 2016 en segundos/1.209.600 segundos)
Este número objetivo es, por lo tanto, una herramienta de ajuste. Al modificarlo, cambiamos en términos de probabilidad el tiempo necesario para encontrar una huella que cumpla la condición. Gracias a esto, la producción de bloques en Bitcoin tiende naturalmente a una frecuencia estable con intervalos de 10 minutos, independientemente del número de ordenadores que minen.
Este intervalo de 10 minutos fue elegido arbitrariamente por Satoshi Nakamoto al crear Bitcoin. El tiempo objetivo entre cada bloque representa un compromiso entre la seguridad de la red y la eficiencia del sistema de pago. Un tiempo más corto permite que los usuarios confirmen más rápidamente, mientras que un tiempo más largo permite evitar las separaciones en cadena. Estas «divisiones», en inglés, provocan un derroche de potencia informática en los bloques huérfanos y, por lo tanto, reducen la seguridad general del sistema. Un tiempo objetivo de 10 minutos es un buen compromiso entre eficiencia y seguridad. Esta es la razón por la que este intervalo no es una «debilidad» de Bitcoin, sino una característica esencial.
Proof of Work protege la red Bitcoin de los ataques de Sybil. De hecho, este mecanismo permite evitar que un actor malintencionado tome el control de la red de pagos al multiplicar las identidades. En lugar de establecerse en un sistema de votación computarizado, Bitcoin se establece en un sistema de votación mediante la potencia de cálculo. Dado que este cálculo requiere un gasto energético, disponemos entonces de una red tangible, universal y externa a la que elegir quién tiene derecho a inscribir un bloque en el registro distribuido.
Un atacante que quiera cambiar el estado de propiedad de los bitcoins necesariamente tendrá que transmitir su propia versión del canal. Para que se acepte este estado malicioso, debe respetar el protocolo de Bitcoin y, en particular, el encadenamiento de bloques entre ellos. También necesitará tener más cantidad de trabajo acumulado que la cadena honesta. Esto significa que el atacante debe rehacer todo el trabajo de cálculo realizado después del bloque que se modificó de forma fraudulenta. Si no tiene más potencia de cálculo que la de todos los demás mineros honestos, nunca podrá conseguir que los nodos honestos acepten su versión de la cadena y fracasará en su intento de atacar.
Mediante el uso de la prueba de trabajo, se alienta naturalmente a los menores a permanecer honestos. De hecho, un ataque requeriría desplegar una potencia informática fenomenal y mantenerla a lo largo del tiempo. Esto significa que un ataque consumiría mucha electricidad y, por lo tanto, sería particularmente caro, sin tener un resultado garantizado. Entonces es mucho más interesante usar tus máquinas para minar honestamente y recibir las recompensas que se otorgan por encontrar un bloque válido.
Más allá de esta labor de protección contra los ataques de Sybil, Proof-of-Work también desempeña un papel esencial en la resistencia a la censura del sistema de pago. De hecho, con el Consenso de Nakamoto, es posible asignar de vez en cuando el derecho a introducir un bloque en el registro seleccionando a un menor al azar, en proporción a la potencia informática empleada. Cada 10 minutos, este mecanismo dará a un nuevo minero el derecho a empujar su bloque con todas las transacciones que contenga. Gracias a esto, los usuarios de Bitcoin se benefician de la incsurabilidad a la hora de confirmar sus transacciones. Si un menor censura a un usuario y se niega a incluir sus transacciones en su bloque por un motivo ajeno a las reglas del protocolo, no pasa nada. Otros menores que no censuren a ese mismo usuario lo incluirán. Se confirmará tan pronto como proporcionen un bloque que cumpla con las condiciones probatorias de trabajo.
Además, el usuario censurado puede aumentar sus tarifas de transacción para alentar a otros mineros a incluirlo en un bloque. Esto generará presión financiera para censurar a los menores y, naturalmente, favorecerá a los mineros leales a través de un proceso de mercado natural.
El consenso de prueba de trabajo de Nakamoto es el principio que se utiliza para establecer un acuerdo sobre una versión única del libro mayor distribuido entre los distintos nodos de la red. Se basa en el mecanismo de prueba de funcionamiento, que no es más que un sistema para resistir los ataques de Sybil.
La prueba de trabajo es la búsqueda de un valor que, cuando se pasa a una función aleatoria, arroja un resultado inferior a un objetivo específico. Este trabajo de investigación lo llevan a cabo actores, utilizando ordenadores especializados, a los que se denomina «menores».
Los nodos ajustan el objetivo de prueba de trabajo cada 2016 bloques. Esto se denomina «ajuste de dificultad». Reducimos el número objetivo para aumentar la dificultad de minado, o lo aumentamos para reducirla, en función de la evolución de la potencia informática empleada por los mineros durante el período anterior.
Tenga cuidado de no confundir la prueba de participación (PoS) con la prueba de trabajo (PoW). Estos dos mecanismos son muy diferentes. A diferencia de Proof of Work, el proceso de decisión mayoritaria de Proof of Stake no se basa en ningún elemento tangible externo a la red, lo que plantea muchos problemas a los sistemas de pago que la utilizan. Esta comparación entre PoW y PoS será objeto de un detallado artículo siguiente.
➤ Obtenga más información sobre las diferencias entre Bitcoin y otras criptomonedas.

