Un algoritmo de prueba de trabajo, sistema de prueba de trabajo o simplemente sistema PoW (del inglés Proof-Of-Work system) es un sistema que con el fin de desincentivar y dificultar comportamientos indeseados como ataques DDoS o spam. Requiere que el cliente del servicio realice algún tipo de trabajo que tenga cierto coste y que es verificado fácilmente en la parte del servidor. Normalmente el trabajo consiste en realizar un cómputo en el ordenador del cliente.
La característica clave de la estrategia es su asimetría: El trabajo debe ser moderadamente difícil (pero factible) por el lado del cliente, pero fácil de verificar por el lado del servidor.
Luego del lanzamiento de Bitcoin en 2009 y del surgimiento de las criptomonedas el término se hizo mucho más conocido por su uso para dotar de seguridad a sistemas monetarios peer-to-peer.
Existen dos clases de protocolos para los sistemas PoW:
Más aún, las funciones utilizadas por los distintos protocolos pueden ser de 2 tipos:
Finalmente, algunos sistemas POW ofrecen cómputos de atajo que permiten a participantes que conocen algún secreto, típicamente una llave privada, acceder al servicio generando trabajo mínimo. La idea es que, por ejemplo, un dueño de una lista de correos pueda enviar mensajes a todos los inscritos sin incurrir en un alto costo. Si esta característica es o no deseable depende del escenario en que se use el sistema POW.
A lo largo de la historia algoritmos de prueba de trabajo han sido propuestos y/o implementados en una variedad de sistemas entre los cuales podemos mencionar:
Hashcash es un método que agrega un string al encabezado de un correo electrónico que prueba que el emisor dedicó un poco de tiempo para calcular dicho string. La idea es que como el emisor le dedicó tiempo a calcular el string y enviar el correo, es improbable que este sea spam. Por otro lado el receptor puede, con un costo computacional casi nulo, verificar que el string es válido.
Precursores de Bitcoin y basados en Hashcash, un sistema RPOW difiere de un sistema POW normal en que después de que un servidor recibe una prueba de trabajo ("moneda POW") de un cliente, este puede cambiar esta moneda ya gastada por otra que no lo esté, que puede ser utilizada para acceder a otro servidor que también requiera la entrega de una prueba de trabajo. De esta manera el servidor se ahorra el costo de hacer el trabajo requerido, usando en cambio el trabajo que este ha recibido por sus servicios. El otro servidor a su vez también puede cambiar la prueba de trabajo recibida por otra que pueda usar.
Un gran número de criptomonedas, entre ellas Bitcoin, utiliza sistemas de prueba de trabajo como mecanismo para controlar, limitar y validar la creación de unidades monetarias, así como para verificar la validez de las transacciones y evitar el doble gasto de fondos. En este caso, el sistema de prueba de trabajo permite la transferencia de valor descentralizada entre los participantes de la red sin depender de ninguna institución centralizada. Entre las criptomonedas alternativas que implementan algoritmos de prueba de trabajo puros o híbridos se pueden mencionar a Ethereum, Bitcoin Cash, Nano y Litecoin.
Con la experiencia de uso de los algoritmo de prueba de trabajo, especialmente en Bitcoin, se ha argumentado que el algoritmo elegido sería mejor si cumpliera ciertas restricciones:
Escribe un comentario o lo que quieras sobre Sistema de prueba de trabajo (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)