La prueba de trabajo ( PoW ) es una forma de prueba criptográfica en la que una parte (el probador ) demuestra a los demás (los verificadores ) que se ha gastado una cierta cantidad de un esfuerzo computacional específico. [1] Los verificadores pueden confirmar posteriormente este gasto con un mínimo esfuerzo de su parte. El concepto fue implementado por primera vez en Hashcash por Moni Naor y Cynthia Dwork en 1993 como una forma de disuadir los ataques de denegación de servicio y otros abusos de servicio como el spam en una red al requerir algo de trabajo de un solicitante de servicio, generalmente significando tiempo de procesamiento por parte de una computadora. El término "prueba de trabajo" fue acuñado y formalizado por primera vez en un artículo de 1999 por Markus Jakobsson y Ari Juels. [2] [3] El concepto fue adaptado a los tokens digitales por Hal Finney en 2004 a través de la idea de "prueba de trabajo reutilizable" utilizando el algoritmo hash seguro de 160 bits 1 (SHA-1). [4] [5]
La prueba de trabajo fue popularizada posteriormente por Bitcoin como base para el consenso en una red descentralizada sin permisos, en la que los mineros compiten para añadir bloques y extraer nueva moneda, y cada minero experimenta una probabilidad de éxito proporcional al esfuerzo computacional empleado. PoW y PoS ( prueba de participación ) siguen siendo los dos mecanismos de disuasión Sybil más conocidos . En el contexto de las criptomonedas, son los mecanismos más comunes. [6]
Una característica clave de los esquemas de prueba de trabajo es su asimetría: el trabajo –el cálculo– debe ser moderadamente difícil (pero factible) para el lado del probador o solicitante, pero fácil de verificar para el verificador o proveedor de servicios. Esta idea también se conoce como función de costo de CPU, rompecabezas del cliente , rompecabezas computacional o función de fijación de precios de CPU. Otra característica común son las estructuras de incentivos integradas que recompensan la asignación de capacidad computacional a la red con valor en forma de criptomoneda. [7] [8]
El objetivo de los algoritmos de prueba de trabajo no es demostrar que se realizó un determinado trabajo o que se "resolvió" un problema computacional, sino disuadir la manipulación de datos estableciendo grandes requisitos de energía y control de hardware para poder hacerlo. [7] Los sistemas de prueba de trabajo han sido criticados por los ambientalistas por su consumo de energía. [9]
El concepto de Prueba de Trabajo (PoW) tiene sus raíces en las primeras investigaciones sobre la lucha contra el spam y la prevención de ataques de denegación de servicio. Una de las primeras implementaciones de PoW fue Hashcash , creada por el criptógrafo británico Adam Back en 1997. [10] Fue diseñada como un mecanismo antispam que requería que los remitentes de correo electrónico realizaran una pequeña tarea computacional, demostrando efectivamente que gastaban recursos (en forma de tiempo de CPU) antes de enviar un correo electrónico. Esta tarea era trivial para los usuarios legítimos, pero impondría un costo significativo a los spammers que intentaran enviar mensajes masivos.
El sistema de Hashcash se basaba en el concepto de encontrar un valor hash que cumpliera determinados criterios, una tarea que requería un esfuerzo computacional y, por lo tanto, servía como "prueba de trabajo". La idea era que, al hacer que enviar grandes volúmenes de correo electrónico fuera computacionalmente costoso, se reduciría el spam .
Un sistema popular, utilizado en Hashcash, utiliza inversiones de hash parciales para demostrar que se realizó el cálculo, como una señal de buena voluntad para enviar un correo electrónico . Por ejemplo, el siguiente encabezado representa aproximadamente 2 52 cálculos de hash para enviar un mensaje [email protected]
el 19 de enero de 2038:
X-Hashcash: 1:52:380119:[email protected]:::9B760005E92F0DAE
Se verifica con un solo cálculo comprobando que el hash SHA-1 del sello (omite el nombre del encabezado, X-Hashcash:
incluidos los dos puntos y cualquier cantidad de espacios en blanco que lo sigan hasta el dígito '1') comienza con 52 ceros binarios, es decir, 13 ceros hexadecimales: [1]
0000000000000756af69e2ffbdb930261873cd71
Es un tema de debate si los sistemas PoW pueden realmente resolver un problema de denegación de servicio particular, como el problema del spam; [11] [12] el sistema debe hacer que el envío de correos electrónicos spam sea demasiado improductivo para el spammer, pero tampoco debe impedir que los usuarios legítimos envíen sus mensajes. En otras palabras, un usuario genuino no debería encontrar ninguna dificultad al enviar un correo electrónico, pero un spammer tendría que gastar una cantidad considerable de potencia de procesamiento para enviar muchos correos electrónicos a la vez. Los sistemas de prueba de trabajo están siendo utilizados por otros sistemas criptográficos más complejos, como bitcoin , que utiliza un sistema similar a Hashcash. [11]
Hay dos clases de protocolos de prueba de trabajo.
Los protocolos de solución conocida tienden a tener una varianza ligeramente menor que los protocolos probabilísticos ilimitados porque la varianza de una distribución rectangular es menor que la varianza de una distribución de Poisson (con la misma media). [ se necesita más explicación ] Una técnica genérica para reducir la varianza es utilizar múltiples subdesafíos independientes, ya que el promedio de múltiples muestras tendrá una varianza menor.
También hay funciones de costo fijo como el rompecabezas de bloqueo de tiempo.
Además, las funciones subyacentes utilizadas por estos esquemas pueden ser:
Por último, algunos sistemas PoW ofrecen cálculos abreviados que permiten a los participantes que conocen un secreto, normalmente una clave privada, generar PoW económicos. La razón es que los titulares de listas de correo pueden generar sellos para cada destinatario sin incurrir en un alto costo. La conveniencia de esta característica depende del escenario de uso.
A continuación se muestra una lista de funciones de prueba de trabajo conocidas:
En la conferencia IACR Crypto 2022, los investigadores presentaron un artículo que describe Ofelimos, un protocolo de cadena de bloques con un mecanismo de consenso basado en "prueba de trabajo útil" (PoUW). En lugar de que los mineros consuman energía para resolver acertijos complejos, pero esencialmente inútiles, para validar transacciones, Ofelimos logra el consenso al mismo tiempo que proporciona un solucionador de problemas de optimización descentralizada . El protocolo se basa en la búsqueda local doblemente paralela (DPLS), un algoritmo de búsqueda local que se utiliza como componente PoUW. El artículo ofrece un ejemplo que implementa una variante de WalkSAT , un algoritmo de búsqueda local para resolver problemas booleanos. [26]
En 2009, la red Bitcoin se puso en línea. Bitcoin es una moneda digital de prueba de trabajo que, como el RPoW de Finney, también se basa en el Hashcash PoW. Pero en Bitcoin, la protección contra el doble gasto la proporciona un protocolo P2P descentralizado para rastrear las transferencias de monedas, en lugar de la función de computación confiable de hardware utilizada por RPoW. Bitcoin tiene una mayor confiabilidad porque está protegido por computación. Los bitcoins son "minados" utilizando la función de prueba de trabajo Hashcash por mineros individuales y verificados por los nodos descentralizados en la red P2P de Bitcoin. La dificultad se ajusta periódicamente para mantener el tiempo de bloque alrededor de un tiempo objetivo. [ cita requerida ]
Desde la creación de Bitcoin, la prueba de trabajo ha sido el diseño predominante de las criptomonedas peer-to-peer . Los estudios han estimado el consumo total de energía de la minería de criptomonedas. [28] El mecanismo PoW requiere una gran cantidad de recursos informáticos, que consumen una cantidad significativa de electricidad. Las estimaciones de 2018 de la Universidad de Cambridge equiparan el consumo de energía de Bitcoin al de Suiza . [6]
Cada bloque que se añade a la cadena de bloques, empezando por el bloque que contiene una transacción determinada, se denomina confirmación de esa transacción. Lo ideal sería que los comerciantes y servicios que reciben pagos en criptomonedas esperaran a que se distribuyera al menos una confirmación por la red antes de asumir que se realizó el pago. Cuantas más confirmaciones espere el comerciante, más difícil será para un atacante revertir con éxito la transacción en una cadena de bloques, a menos que el atacante controle más de la mitad de la potencia total de la red, en cuyo caso se denomina ataque del 51 % . [29]
Dentro de la comunidad de Bitcoin hay grupos que trabajan juntos en pools de minería . [30] Algunos mineros usan circuitos integrados específicos de la aplicación (ASIC) para PoW. [31] Esta tendencia hacia pools de minería y ASIC especializados ha hecho que la minería de algunas criptomonedas sea económicamente inviable para la mayoría de los jugadores sin acceso a los últimos ASIC, fuentes cercanas de energía barata u otras ventajas especiales. [32]
Algunos PoW afirman ser resistentes a los ASIC, [33] es decir, que limitan la ganancia de eficiencia que un ASIC puede tener sobre el hardware básico, como una GPU, a un orden de magnitud inferior. La resistencia a los ASIC tiene la ventaja de mantener la minería económicamente factible en hardware básico, pero también contribuye al riesgo correspondiente de que un atacante pueda alquilar brevemente el acceso a una gran cantidad de potencia de procesamiento de productos básicos no especializados para lanzar un ataque del 51% contra una criptomoneda. [34]
Los mineros compiten para resolver desafíos criptográficos en la cadena de bloques de Bitcoin , y sus soluciones deben ser acordadas por todos los nodos y alcanzar un consenso. Las soluciones luego se utilizan para validar transacciones, agregar bloques y generar nuevos bitcoins. Los mineros son recompensados por resolver estos acertijos y agregar nuevos bloques con éxito. Sin embargo, el proceso de minería al estilo de Bitcoin es muy intensivo en energía porque la prueba de trabajo tiene la forma de un mecanismo de lotería. El trabajo computacional subyacente no tiene otro uso que brindar seguridad a la red que proporciona acceso abierto y tiene que funcionar en condiciones adversas. Los mineros tienen que usar mucha energía para agregar un nuevo bloque que contenga una transacción a la cadena de bloques. La energía utilizada en esta competencia es lo que fundamentalmente le da a Bitcoin su nivel de seguridad y resistencia a los ataques. Además, los mineros tienen que invertir en hardware de computadora que necesita grandes espacios como costo fijo. [35]
En enero de 2022, el vicepresidente de la Autoridad Europea de Valores y Mercados, Erik Thedéen, pidió a la UE que prohibiera el modelo de prueba de trabajo en favor del modelo de prueba de participación debido a sus menores emisiones de energía. [36]
En noviembre de 2022, el estado de Nueva York promulgó una moratoria de dos años para la minería de criptomonedas que no utilice completamente energía renovable como fuente de energía. Las empresas mineras existentes podrán continuar con la minería sin el uso de energía renovable, pero no se les permitirá ampliar ni renovar permisos con el estado; tampoco se permitirá que nuevas empresas mineras que no utilicen completamente energía renovable comiencen a minar. [37]
echo -n 1:52:380119:[email protected]:::9B760005E92F0DAE | openssl sha1
las dos más conocidas -y en el contexto de las criptomonedas también las más utilizadas-
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace )