Prueba de trabajo

La prueba de trabajo (PoW) es una forma de prueba criptográfica de conocimiento cero 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. Posteriormente, los verificadores pueden confirmar este gasto con un esfuerzo mínimo de su parte. El concepto fue inventado por Cynthia Dwork y Moni Naor en 1993 como una forma de disuadir los ataques de denegación de servicio y otros abusos del servicio como el correo no deseado en una red al requerir algo de trabajo de un solicitante de servicio, generalmente significando tiempo de procesamiento por 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. Más tarde, Bitcoin popularizó la prueba de trabajo como base para el consenso en cadenas de bloques y criptomonedas sin permiso, en las que los mineros compiten para agregar bloques y acuñar nueva moneda, y cada minero experimenta una probabilidad de éxito proporcional a su esfuerzo computacional invertido. PoW y PoS (prueba de participación) son los dos mecanismos de disuasión de Sybil más conocidos. En el contexto de las criptomonedas, son los mecanismos más comunes.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) por parte 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 la CPU, rompecabezas del cliente, rompecabezas computacional o función de precios de la CPU. Otra característica común son las estructuras de incentivos incorporadas que recompensan la asignación de capacidad computacional a la red con valor en forma de dinero. El propósito de los algoritmos de prueba de trabajo no es probar que se llevó a cabo cierto trabajo o que se "resolvió" un rompecabezas computacional, sino disuadir la manipulación de datos a través de la solución específica de establecer grandes requisitos de energía y control de hardware para la capacidad de hazlo.

Fondo

Un sistema popular, utilizado en Hashcash, utiliza inversiones hash parciales para demostrar que se realizó el cálculo, como un token de buena voluntad para enviar un correo electrónico. Por ejemplo, el siguiente encabezado representa aproximadamente 252 cálculos hash para enviar un mensaje a [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 (omita el nombre del encabezado X-Hashcash: incluidos los dos puntos y cualquier cantidad de espacio en blanco que lo siga hasta el dígito '1') comience con 52 ceros binarios. , es decir 13 ceros hexadecimales: [1] 0000000000000756af69e2ffbdb930261873cd71 Si los sistemas PoW realmente pueden resolver un problema particular de denegación de servicio, como el problema del spam, está sujeto a debate; el sistema debe hacer que el envío de correos electrónicos no deseados sea molestamente improductivo para el emisor de correo no deseado, 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 remitente de correo no deseado tendría que gastar una cantidad considerable de potencia informática 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.

Variantes

Hay dos clases de protocolos de prueba de trabajo. Los protocolos de desafío-respuesta asumen un vínculo interactivo directo entre el solicitante (cliente) y el proveedor (servidor). El proveedor elige un desafío, digamos un artículo en un conjunto con una propiedad, el solicitante encuentra la respuesta relevante en el conjunto, que es devuelta y verificada por el proveedor. Dado que el proveedor elige el desafío en el lugar, su dificultad se puede adaptar a su carga actual. El trabajo del lado del solicitante puede estar limitado si el protocolo de desafío-respuesta tiene una solución conocida (elegida por el proveedor), o se sabe que existe dentro de un espacio de búsqueda limitado. Los protocolos de verificación de solución no asumen tal vínculo: como resultado, el problema debe ser autoimpuesto antes de que el solicitante busque una solución, y el proveedor debe verificar ambos