¿Qué es Prueba de trabajo / Proof of Work (PoW)?

El protocolo de Prueba de Trabajo o bien Proof of Work, es el más conocido y viejo protocolo de acuerdo consistente en que las unas partes de una red efectúen de forma exitosa un trabajo computacionalmente costoso para acceder a los recursos de dicha red. 

El protocolo de Prueba de Trabajo, nos sirve para eludir determinados comportamientos indeseados en una red. Su nombre procede del inglés Proof of Work (PoW). Este protocolo funciona bajo el término de requerir un trabajo al usuario, que entonces es verificado por la red. Generalmente el trabajo pedido, consiste en efectuar complejas operaciones de cómputo.

Estas operaciones que entonces son verificadas por la red. Cuando son aprobadas, se da acceso al cliente del servicio a fin de que use los recursos de exactamente la misma. Con esto se busca impedir que clientes del servicio maliciosos puedan consumir todos y cada uno de los recursos de forma incontrolada. Una situación que puede terminar por rechazar el servicio prestado al resto de clientes del servicio de la red.

Un ejemplo muy simple de comprender es el renombrado captcha que se pone cuando se quiere hacer un registro en una web. La página web pone este reto que el visitante tiene que solucionar. Si lo soluciona va a tener acceso al servicio. Esto evita que un atacante pueda crear millones de registros y de esta manera colapsar la web. Sin embargo, el reto en una comunicación entre ordenadores no puede ser tan complejo. Ha de ser solventable, si bien con una dificultad relativa.

La primordial característica de esta estrategia es su asimetría. El trabajo por la parte del cliente del servicio es moderadamente bastante difícil de efectuar, mas la verificación por la parte de la red es fácil. Esto desea decir, que la prueba de trabajo lleva bastante tiempo en generarse y es computacionalmente costosa. Mas contrastarla es fácil, puesto que la prueba diseña patrones que facilitan la verificación.

Fue exactamente esta característica, la que llamó la atención de Satoshi Nakamoto en el momento de diseñar el Bitcoin. Es por esta razón que incorporó el sistema HashCash (un sistema PoW) en su reconocida criptomoneda.

Algoritmos PoW – Un tanto de historia

En el año de mil novecientos noventa y dos, la penetración de Internet ya era bastante esencial. Con su llegada, el empleo de los e-mails empezó a masificarse. Mas esta positiva situación traía consigo nuevos inconvenientes. Los sistemas de mail padecían de forma recurrente ataques de spam. Estos ataques por lo general deshabilitaban a los servidores y dejaban sin servicios a bastantes personas. Era preciso lograr una solución a este inconveniente.

En el año mil novecientos noventa y tres, los académicos Cynthia Dwork y Moni Naor, reconocieron el inconveniente y trataron de resolverlo. De allá se produjo el ensayo “Fijación de costes a través de el procesamiento o bien la lucha contra el correo no deseado”. En el que presentaron formas para eludir que los spammers mandarán mensajes masivos.

La idea presentada era la de incluir un costo computacional para poder emplear los servicios de correo. Para esto, Dwork y Naor diseñaron una serie de pruebas que requerían de trabajo con costo de computación. Entre ellas; el cálculo de ciertas raíces cuadradas o bien el empleo intensivo de funciones hash. Una vez efectuado este trabajo, el usuario debía añadir la información al correo para ser verificada. Si era adecuada el correo se mandaba, si no, el correo era rechazado. Este fácil sistema que disuadía a los spammers de continuar efectuando sus ataques. Mas aún pasaría cierto tiempo hasta el momento en que el sistema pudiese ser incorporado totalmente.

La creación de HashCash

Más tarde en el año mil novecientos noventa y siete, salió a la luz el protocolo HashCash creado por el criptonarquista Adam Back. Del mismo modo que en el ensayo precedente, el término “Prueba de trabajo” (Proof of Work) jamás se usó en el anuncio de HashCash. Mas Back si empleó un término fundamental en la tecnología blockchain, el de “Protección de Doble Gasto”, del que David Chaum ya había adelantado en sus trabajos precedentes.

Con HashCash, Back pretendía poner freno a los envíos de spam masivo. La idea era imponer un costo no monetario al envío de cada correo. Un costo que estaría asociado al cálculo de inconvenientes utilizando el ordenador. El principio es sencillo: se calculaba el inconveniente, se anexaba a la información del correo y se mandaba. El servidor recibía el correo, comprueba la información y lo admitía o bien rechazaba si pasaba la prueba.

Pero el costo computacional asimismo tenía un costo real. El gasto en electricidad ocasionado por el cálculo intensivo era de un céntimo de dólar por cada correo mandado. Quien mandará unos pocos correos al día no apreciaría nada, mas un spammer si. Mandar millones de correo aumentaría de gran forma la factura de electricidad de esa persona. De esa forma, se desincentiva a los spammer de efectuar su actividad maliciosa.

El acuñamiento del término Prueba de Trabajo

Fue por último en mil novecientos noventa y nueve, cuando Markus Jakobsson y Ari Juels escribieron un documento titulado “Prueba de trabajo y Protocolos de pudin de pan”. Y de esta forma se acuñó el término “Prueba de Trabajo”. Jakobsson y Juels aseveran que un sistema de prueba de trabajo es:

Este es un protocolo en como un comprobante prueba a un verificador que ha gastado un cierto nivel de esmero computacional en un intervalo de tiempo concreto. Si bien no se definieron como semejantes ni se trataron formalmente, las pruebas de trabajo se han propuesto como un mecanismo para múltiples objetivos de seguridad, incluyendo la medición del acceso al servidor, la construcción de cápsulas de tiempo digitales y la protección contra el envío de correo no deseado y otros ataques de denegación de servicio.

Markus Jakobsson y Ari Juels
Proof of Work and Bread Pudding Protocols (mil novecientos noventa y nueve) – Pág 2

Adicionalmente en este trabajo se ahonda en la capacidad de las Pruebas de Trabajo de añadir capas de seguridad. Las que sirven para asegurar servicios críticos donde la seguridad es fundamental.

La Prueba de Trabajo llega a Bitcoin

Satoshi Nakamoto publicó el documento técnico de Bitcoin el treinta y uno de octubre de dos mil ocho. En exactamente el mismo, Nakamoto tenía claro que la prueba de trabajo era un factor clave del protocolo de Bitcoin. En el resumen del whitepaper de Bitcoin podemos leer lo siguiente:

Proponemos una solución al inconveniente del doble gasto usando una red de igual a igual. La red marca la hora de las transacciones al reunirlas en una cadena de prueba de trabajo basada en hash, formando un registro que no se puede mudar sin rehacer la prueba de trabajo.
Satoshi Nakamoto

Bitcoin: A P2P Electronic Cash System (dos mil ocho) – Abstract

De esta forma, Nakamoto usó el trabajo de Adam Back, puesto que Bitcoin emplea el protocolo HashCash. Con esto acabó revolucionando al planeta, presentando una tecnología totalmente renovadora, la blockchain. Esta tecnología que le dejó crear su conocida criptomoneda, y que ha evolucionado hasta nuestros días.

Usando el protocolo de Proof of Work, con cada nuevo bloque creado se va a deber solucionar un acertijo matemático que solo puede ser resuelto a través de prueba y fallo. Estos acertijos son resueltos por los mineros, haciendo millones de intentos. Solucionar el acertijo va a dar como resultado la creación del bloque, la confirmación de las transacciones implicadas en ese bloque y la generación de nuevos bitcoins que va a recibir el minero como recompensa al lado de las comisiones tácitas en todas y cada una de las transacciones.

El problema consiste en localizar los factores que den un determinado resultado. Lo singular de ese resultado es que es un hash, con lo que es imposible conseguir los factores iniciales desde el hash, solamente pueden ser generados a través de prueba y fallo.

¿De qué forma marcha el protocolo PoW?

La Prueba de Trabajo, marcha de una manera bastante fácil. En verdad, el proceso que se hace, se puede dividir en las próximas grandes etapas:

  1. Etapa #1: El cliente del servicio o bien nodo establece una conexión con la red. En este punto, la red le asigna una labor computacionalmente costosa. Esta labor ha de ser resuelta a los fines de percibir un incentivo económico.
  2. Etapa #2: Empieza la resolución del acertijo. Esto acarrea el empleo de mucha potencia de computación hasta solucionar el misterio entregado. Este proceso es el que recibe el nombre de minería.
  3. Etapa #3: Una vez resuelta la labor computacional, el cliente del servicio comparte esta con la red para su verificación. En este punto, se comprueba de manera rápida que la labor cumpla con los requisitos demandados. Si lo hace, se ofrece acceso a los recursos de la red. De lo contrario, se rechaza el acceso y la solución presentada del inconveniente. Es en este punto, donde se efectúan las verificaciones de protección contra el doble gasto. Una protección que evita, que se presente en más de una ocasión, una labor ya asignada y verificada por la red.
  4. Etapa #4: Con la confirmación que la labor ha sido cumplida, el cliente del servicio accede a los recursos de la red. Merced a esto, recibe una ganancia por el trabajo computacional efectuado.

Son estas 4 etapas, las que dejan y modelan el funcionamiento de la Prueba de Trabajo. La sencillez de este modelo deja trasladar exactamente el mismo a diferente software para aprovechar su potencial. Mas es en las blockchains donde observamos una mayor utilidad, brindando unos niveles de seguridad inusuales pese a la baja dificultad del protocolo. Y al tiempo, dejando que millones de personas puedan participar de forma concurrente en internet.

¿Cuánto sabes, criptonauta?

¿La adopción de Proof of Work entre las criptomonedas responde al alto nivel de seguridad que ofrece?

Características del protocolo PoW

  1. Es un protocolo segurísimo. La Prueba de Trabajo garantiza grandes niveles de seguridad, si la red está formada por miles y miles de mineros. En verdad, cuanto más mineros más segura es la red. Esto lo hace ideal para su empleo en la capacitación de enormes redes distribuidas.
  2. Es fácil y muy simple de incorporar algorítmicamente. Una de las primordiales ventajas de PoW es que es sencillísimo de incorporar. Esta sencillez se traduce en el simple mantenimiento de los software que usan el mismo. Aparte de permitir auditorías de forma considerablemente más fácil con el objetivo de sostener la seguridad de la red.
  3. Fácilmente acomodable a las necesidades de hardware, pudiéndose diseñar resistencia a ciertos equipos (ASIC, GPU, FPGA, CPU). Otra ventaja del protocolo es su adaptabilidad a la tecnología. Se puede hacer más simple o bien bastante difícil, conel fin de amoldarlo a los avances en tecnología. Dejando que la evolución del hardware no deje atrás la complejidad de minado. Que por lo tanto acaba centralizando el poder minero en quienes tienen hardware más nuevo y poderoso.
  4. Excelente capacidad de resistencia a ataques de Denegación de Servicios. La primordial razón de la creación de los protocolos PoW fue; eludir la denegación de servicios. Una labor que cumplen con perfección y que han mejorado mucho los presentes esquemas del protocolo.
  5. El sistema consume un sinnúmero de energía eléctrica. El intensivo trabajo computacional de PoW precisa de grandes cantidades de energía eléctrica. Estimaciones sitúan que el consumo asciende a los veinticuatro Teravatios de energía por año y proseguirá ascendiendo conforme se necesite más potencia para efectuar este intensivo trabajo.

bitcoin
Bitcoin (BTC) $ 62,363.00
ethereum
Ethereum (ETH) $ 3,808.54
binance-coin
Binance Coin (BNB) $ 492.40
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.13
xrp
XRP (XRP) $ 1.09
solana
Solana (SOL) $ 157.76
polkadot
Polkadot (DOT) $ 41.10
dogecoin
Dogecoin (DOGE) $ 0.248487
usd-coin
USD Coin (USDC) $ 1.00