prueba con formula
Última actualización: junio 10, 2021

La prueba de trabajo o proof of work, es un elemento de seguridad indispensable hoy en día. Y no lo es únicamente ante los posibles ataques a una red, sino también ante un posible fraude dentro de un sistema de las criptomonedas. Gracias a estos algoritmos, que inicialmente se desarrollaron para evitar el spam masivo, se puede combatir el doble gasto. Debido a ello, este sistema se ha implementado en diversas criptomonedas, incluida Bitcoin, que lo ha popularizado.

Si no estás familiarizado con este protocolo, pero te gustaría conocer más acerca de él, te invitamos a que te adentres en la siguiente guía. Vamos a tratar de resolver aquellas dudas que suelen ser las más comunes y que son, a su vez, las esenciales al tratar el tema de la prueba de trabajo.




Lo más importante

  • La prueba de trabajo o proof of work es anterior a la aparición de las criptomonedas. Principalmente, fue implementada para mitigar el spam. Sin embargo, Bitcoin la adoptó para poder evitar el doble gasto. En otras palabras, nos referimos al pago electrónico mediante fondos ya gastados con anterioridad.
  • Su principal característica es la asimetría que encontramos entre la dificultad requerida para solucionar el problema o ecuación, y la verificación del resultado por parte de la red.
  • Existe una alternativa llamada prueba de participación o proof of stake. Esta prueba soluciona algunos de los principales problemas del modelo prueba de trabajo. No requiere tanto consumo eléctrico y, a su vez, es más igualitario entre los miembros de la red que quieren obtener incentivos económicos.

Lo que debes saber sobre la prueba de trabajo

Las criptomonedas están a la orden del día. Sin embargo, no todo el mundo conoce el funcionamiento del algoritmo conocido como prueba de trabajo que se emplea en este medio de intercambio. De esta manera, vamos a tratar las principales cuestiones relacionadas con él, profundizando en su funcionamiento y utilidad.

bitcoin

En 2008 se empezó a utilizar el sistema prueba de trabajo en Bitcoin. (Fuente: Räisä: DCCt1CQT8Os/ unsplash)

¿Qué es y cómo funciona la prueba de trabajo?

La prueba de trabajo o proof of work es un protocolo diseñado para evitar abusos de servidor, como el spam o los ataques de denegación de servicio. Para lograrlo, se requiere que el cliente lleve a cabo alguna actividad que implique algún coste. Una vez que esta actividad está verificada, se permite al cliente acceder a los recursos de la web. Encontramos que las "pruebas de trabajo" más comunes son las siguientes (1):

  1. Coste monetario para poder enviar correos o acceder a los servicios de la web.
  2. Realizar una serie de operaciones de memoria.
  3. Realizar operaciones de cálculo matemático.
  4. Publicar un enlace por cada mensaje enviado.

Dentro de los sistemas blockchain, encargados de almacenar información, también se utiliza este protocolo. De esta manera, se garantiza la confirmación de las transacciones que se realizan en la red (2).

¿Qué características presenta una prueba de trabajo?

Las características principales de este protocolo son las siguientes:

  • El desequilibrio de la dificultad de resolución es la principal característica de la "prueba de trabajo". Este se produce entre la dificultad que supone para el cliente resolverla y la facilidad a la hora de su verificación por parte del servidor. Si no fuera así y la prueba fuese muy sencilla de realizar, implicaría una mayor vulnerabilidad ante posibles ataques. Por otro lado, los patrones de la prueba son fácilmente verificables, para evitar encontrarse con una acumulación de peticiones de acceso.
  • La singularidad de cada prueba es otra de sus características. Vemos que este tipo de pruebas o acertijos a resolver son únicos para cada mensaje que se quiere enviar, acceso a una página o transacción que se pretende realizar. Esto se produce gracias a una cadena entre el cliente, el destinatario, un código de registro o nonce y un código de tiempo concreto. Se garantiza así que esa prueba es única para ese caso concreto y no corresponde a una solución antigua (3).
  • Dependen de la potencia de procesamiento de cada dispositivo hardware. De esta manera, se requiere una gran cantidad de energía para que se pueda llevar a cabo el protocolo. Debido a esto, se permite a aquellos que cuentan con dispositivos más potentes resolver las ecuaciones y problemas antes que el resto. Por lo tanto, estos acceden a las recompensas de incentivos en criptomonedas más fácilmente. Hoy en día, hay quien ha planteado un sistema que dependa del acceso a la memoria RAM. Esta sería una opción más igualitaria, dado que la potencia de estas no varía tanto entre una y otra (3).

¿Dónde se implementa el protocolo proof of work?

Vemos que este protocolo puede utilizarse a la hora de gestionar el acceso de los clientes a una página web, o a la hora de prevenir el correo malicioso o masivo. Sin embargo, es muy conocido por haber sido utilizado por diversas criptomonedas. La mayoría de aplicaciones de blockchain cuentan con este protocolo para garantizar las transacciones que se producen en la red. Una blockchain se encarga de registrar un movimiento o transacción en línea, de manera que no se pueda modificar.

Una vez producido un bloque o registro de actividad, se requiere la solución de este tipo de pruebas de cálculo para poder confirmarlo (2). Seguramente, la criptomoneda más famosa que utiliza este sistema de verificación es Bitcoin. Del mismo modo, fue esta criptomoneda la que empezó a utilizar la prueba de trabajo dentro de este ámbito.

A su vez, vemos que la tecnología blockchain es de gran utilidad en más de un ámbito. Como se puede observar en el anterior gráfico, se emplea este sistema en diversos campos empresariales. Asimismo, es de gran ayuda a la hora de verificar transacciones y garantizar su seguridad, pero también lo es en aspectos relacionados con el registro de la autoría de algún producto. Del mismo modo, se utiliza como base de datos empresarial y funciona a mayor velocidad que cualquier otro sistema, evitando cometer errores.

Dentro de los protocolos diseñados para evitar el spam, el primero en ser desarrollado, y el más común, es el hashcash.

¿Cómo aplica Bitcoin la prueba de trabajo?

Bitcoin utiliza la prueba de trabajo hashcash, que se caracteriza por variar la dificultad de las pruebas en función de la potencia de la red. Puesto que hay diversas criptomonedas basadas en el sistema de Bitcoin y encontramos que la aplicación de esta prueba de trabajo es muy extendida. La prueba de trabajo, en estos casos, garantiza que una transacción se ha realizado, ofreciendo el registro de la misma a todas las partes. De esta manera, no es necesario confiar en un tercer actor que gestione la transacción.

Esta se realiza automáticamente y queda fijada gracias a dicha prueba. De esta manera, se evitan problemas de doble gasto. Estos se producen cuando se gastan los mismos fondos varias veces. Gracias al registro de la transacción, que se fija en una blockchain pública mediante una prueba de trabajo, se contabiliza el gasto realizado con el dinero virtual. Así se evita que se pueda utilizar ese mismo dinero en más de una operación (4).

La fijación de un “bloque” a la cadena, gracias a ser validado mediante una prueba de trabajo, conlleva una recompensa económica para quien ha realizado esa prueba con éxito (5). Es por ello que aquellos que cuentan con un hardware más potente tienen más posibilidades de resolver estas ecuaciones más rápidamente, obteniendo así las recompensas.

Las transacciones se representan online en forma de bloque. Este se fija en la cadena, de manera irreversible y pública. (Fuente: David Molina: 43250795/ 123rf)

¿Qué etapas se siguen en una prueba de trabajo?

A continuación, vemos qué etapas hay al realizarse una prueba de trabajo:

  1. El participante se conecta a la red y recibe una tarea computacional. De ser resuelta satisfactoriamente, se le otorgará una recompensa económica.
  2. Se lleva a cabo la resolución del problema, para el cual se requiere una gran potencia de hardware y un alto gasto energético.
  3. El sistema lleva a cabo la verificación de la respuesta, comprobando si se ha completado con éxito. Esta verificación se realiza con un coste menor por parte del servidor. Una vez realizada, se permite al usuario acceder a los recursos de la web. En el caso de las criptomonedas, se fija una transacción a la blockchain, para que esta quede registrada.
  4. El usuario que ha llevado a cabo la prueba con éxito recibe un incentivo económico por haberla resuelto. Se beneficia así a aquellos que cuentan con sistemas de hardware más avanzados.

¿Qué ventajas y desventajas presenta una prueba de trabajo?

A continuación, presentamos algunas ventajas y desventajas del uso de este tipo de protocolos de protección. En su conjunto, vemos que la evolución de la prueba de trabajo ha derivado en sistemas completos, ofreciendo diferentes utilidades.

De todos modos, consideramos que es oportuno contemplar también algunas de sus deficiencias, para comprender mejor este fenómeno que estamos tratando.

Ventajas
  • Mitigación de ataques de denegación de servicio
  • Protección contra spam masivo
  • Defensa contra el doble gasto en criptomonedas
  • Muy sencillo de verificar algorítmicamente
Desventajas
  • El sistema puede consumir una gran cantidad de energía eléctrica si no se usan energías renovables en el proceso
  • El número de transacciones que puede procesar al mismo tiempo es muy limitado
  • Inutilidad de los cálculos, que tras consumir muchos recursos, no se pueden aplicar a ningún campo práctico
  • La cantidad de potencia de procesamiento varía mucho entre usuarios particulares

¿Qué alternativas hay al protocolo prueba de trabajo o proof of work?

Tras la aplicación del protocolo proof of work dentro del ámbito de las criptomonedas, se desarrolló otro mecanismo de consenso, necesario para confirmar las transacciones que se dan en la blockchain. Este toma el nombre de proof of stake. Se diferencia de la prueba de trabajo en su método para verificar si una operación agregada a una blockchain es válida o no.

Una prueba de trabajo recompensa a quien logra resolver una ecuación compleja o un rompecabezas antes que el resto. Se genera, por lo tanto, una ventaja competitiva para aquellos que cuentan con un hardware más potente. Sin embargo, una prueba de participación o proof of stake selecciona al azar a los validadores de una transacción. En caso de hacerlo correctamente, reciben una recompensa en forma de comisiones. De esta manera, se evita la desigualdad generada por la mayor potencia de hardware, que permite a aquellos con mejores dispositivos obtener las recompensas.

Al mismo tiempo, se requiere una cantidad de electricidad y de potencia energética mucho menor que en el sistema proof of work (6). En este caso, el sistema únicamente seleccionará a aquellos usuarios que tengan una cantidad de criptomonedas determinada, que serán congeladas por el mismo, hasta que se realice con éxito la validación. De esta manera, se pretende disuadir a los usuarios de posibles fraudes o trampas.

teclado con boton

La proof of stake bloquea los fondos del usuario que realiza la validación de una transacción, hasta que esta se realiza satisfactoriamente. De esta manera aplica una especie de fianza, evitando posibles fraudes. (Fuente: Momius:152017319/123.rf)

Ejemplos de prueba de trabajo

A modo de ejemplo, podemos empezar hablando de los captcha que aparecen al acceder a una página web. En este caso, la web pide al usuario que complete algún tipo de rompecabezas que aparece en pantalla. Al completar esta pequeña tarea, la página se asegura de que el visitante no creará millones de registros.

En el caso que se pretenda realizar una transacción o un envío de información, entre el sujeto A y el sujeto B, vemos que el sistema se lleva a cabo de manera similar. Se generará un bloque de información que será enviado a la cadena, a la espera de ser validado por algún miembro de la red. Para ello, se realizará una prueba de trabajo que, de ser completada con éxito, permitirá que ese bloque se añada a la cadena. A su vez, el usuario que haya llevado a cabo la prueba antes que el resto de manera satisfactoria obtendrá una recompensa económica (7).

Resumen

Como hemos podido ver a lo largo de esta guía, la prueba de trabajo ha servido de gran utilidad. Esto es así tanto en el ámbito de la seguridad en línea, evitando problemas de spam o de denegación de servicio de una red, como en el mundo de las criptomonedas. Gracias a su adaptabilidad, se ha conseguido garantizar transacciones de dinero digital de manera segura. Debido a ello, se ha podido atajar el problema del doble gasto, derivado de la naturaleza virtual de estas monedas.

Este protocolo, sin embargo, conlleva algunas deficiencias evidentes, como el alto consumo energético requerido o la desigualdad al ofrecer los incentivos económicos por resolverla. Pese a ello, vemos que es un sistema de gran utilidad y aceptación.

Esperamos que esta guía te haya servido de utilidad, clarificando tus principales dudas acerca de este protocolo de seguridad. No dudes en dejarnos tus impresiones en los comentarios, así como en compartir este artículo en las redes sociales.

(Fuente de la imagen destacada: Kutyaev: 146690407/ 123rf)

Referencias (7)

1. Liu D, Camp LJ. Proof of Work can Work [Internet]. https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.73.3136&rep=rep1&type=pdf. Indiana University; 2006 [2021].
Fuente

2. Suárez J. Implementación eficiente en GPGPUs de la prueba de trabajo RandomX de la criptomoneda Monero [Internet]. https://addi.ehu.es/bitstream/handle/10810/48832/TFG___Julen.pdf?sequence=2&isAllowed=y. Universidad del País Vasco; 2020 [2020].
Fuente

3. Laurie B, Clayton R. "Proof of Work" Proof not to Work [Internet]. http://www.infosecon.net/workshop/downloads/2004/pdf/clayton.pdf Workshop on Economics and Information Security; 2004 [2021].
Fuente

4. Nakamoto S. Bitcoin: Un Sistema de Efectivo Electrónico Usuario-a-Usuario [Internet]. https://d1wqtxts1xzle7.cloudfront.net/56526726/Paper_SATOSHI_NAKAMOTO_BITCOIN.pdf?1525903934=&response-content-disposition=inline%3B+filename%3DBitcoin_Un_Sistema_de_Efectivo_Electroni.pdf&Expires=1621021151&Signature=RPffenDlk7w6XGYtIAiylmM-WfggIQ3EvyznoHoVfLLx6T4wP~j3bD5-Jf9WWCicAOCPCz1lkZ0W3kEGdk6KjQB0wSAlPjtP5uzT4oPawSv7eM4NRE-71FjLEeAUHSEmRBziiUHx5REnwYtvVJFcrWDCp2iMu7AoU2-mS~RjjSdMxnJ5IOQ3KNAIr9397sfBXYw1HcGGEmYLSbq5VQM7o0gNh-vtNZizpJDLD0c4aewzz8jo1fZzByHTd-PO6tlsHP11TS3w2cpEsahqy9Kg1qORLFarhSxgIac4NZ~~vr7pGQgWF5RVlA2Q7a5cIOf~vLC8i1uhq4nnC7DHAIiHbw__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA. Bitcoin.org; 2008 [2021].
Fuente

5. Dolader C, Bel J, Muñoz JL. La Blockchain: Fundamentos, aplicaciones y relación con otras tecnologías disruptivas [Internet]. https://www.mincotur.gob.es/Publicaciones/Publicacionesperiodicas/EconomiaIndustrial/RevistaEconomiaIndustrial/405/DOLADER,%20BEL%20Y%20MU%C3%91OZ.pdf. Universitat Politécnica de Catalunya; 2017 [2021].
Fuente

6. Beis C. Infraestructura blockchain para la transmisión segura de datos genómicos [Internet]. http://castor.det.uvigo.es:8080/xmlui/bitstream/handle/123456789/502/BeisPenedoCarlos.pdf?sequence=1. Universidade de Vigo; 2020 [2021].
Fuente

7. Perdomo JI. El blockchain y sus posibles aplicaciones para la educación. [Internet]. https://www.researchgate.net/profile/Jorge-Perdomo-4/publication/343541340_El_blockchain_y_sus_posibles_aplicaciones_para_la_educacion/links/5f302e29a6fdcccc43b9e375/El-blockchain-y-sus-posibles-aplicaciones-para-la-educacion.pdf. Corporación Universitaria del Huila; 2020 [2021].
Fuente

¿Por qué puedes confiar en mí?

Artículo científico
Liu D, Camp LJ. Proof of Work can Work [Internet]. https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.73.3136&rep=rep1&type=pdf. Indiana University; 2006 [2021].
Ir a la fuente
Trabajo de fin de grado
Suárez J. Implementación eficiente en GPGPUs de la prueba de trabajo RandomX de la criptomoneda Monero [Internet]. https://addi.ehu.es/bitstream/handle/10810/48832/TFG___Julen.pdf?sequence=2&isAllowed=y. Universidad del País Vasco; 2020 [2020].
Ir a la fuente
Artículo científico
Laurie B, Clayton R. "Proof of Work" Proof not to Work [Internet]. http://www.infosecon.net/workshop/downloads/2004/pdf/clayton.pdf Workshop on Economics and Information Security; 2004 [2021].
Ir a la fuente
Artículo científico
Nakamoto S. Bitcoin: Un Sistema de Efectivo Electrónico Usuario-a-Usuario [Internet]. https://d1wqtxts1xzle7.cloudfront.net/56526726/Paper_SATOSHI_NAKAMOTO_BITCOIN.pdf?1525903934=&response-content-disposition=inline%3B+filename%3DBitcoin_Un_Sistema_de_Efectivo_Electroni.pdf&Expires=1621021151&Signature=RPffenDlk7w6XGYtIAiylmM-WfggIQ3EvyznoHoVfLLx6T4wP~j3bD5-Jf9WWCicAOCPCz1lkZ0W3kEGdk6KjQB0wSAlPjtP5uzT4oPawSv7eM4NRE-71FjLEeAUHSEmRBziiUHx5REnwYtvVJFcrWDCp2iMu7AoU2-mS~RjjSdMxnJ5IOQ3KNAIr9397sfBXYw1HcGGEmYLSbq5VQM7o0gNh-vtNZizpJDLD0c4aewzz8jo1fZzByHTd-PO6tlsHP11TS3w2cpEsahqy9Kg1qORLFarhSxgIac4NZ~~vr7pGQgWF5RVlA2Q7a5cIOf~vLC8i1uhq4nnC7DHAIiHbw__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA. Bitcoin.org; 2008 [2021].
Ir a la fuente
Artículo científico
Dolader C, Bel J, Muñoz JL. La Blockchain: Fundamentos, aplicaciones y relación con otras tecnologías disruptivas [Internet]. https://www.mincotur.gob.es/Publicaciones/Publicacionesperiodicas/EconomiaIndustrial/RevistaEconomiaIndustrial/405/DOLADER,%20BEL%20Y%20MU%C3%91OZ.pdf. Universitat Politécnica de Catalunya; 2017 [2021].
Ir a la fuente
Trabajo de fin de grado
Beis C. Infraestructura blockchain para la transmisión segura de datos genómicos [Internet]. http://castor.det.uvigo.es:8080/xmlui/bitstream/handle/123456789/502/BeisPenedoCarlos.pdf?sequence=1. Universidade de Vigo; 2020 [2021].
Ir a la fuente
Artículo científico
Perdomo JI. El blockchain y sus posibles aplicaciones para la educación. [Internet]. https://www.researchgate.net/profile/Jorge-Perdomo-4/publication/343541340_El_blockchain_y_sus_posibles_aplicaciones_para_la_educacion/links/5f302e29a6fdcccc43b9e375/El-blockchain-y-sus-posibles-aplicaciones-para-la-educacion.pdf. Corporación Universitaria del Huila; 2020 [2021].
Ir a la fuente
Evaluaciones