# Reusable Proof Of Work

Reusable Proof-Of-Work ("Prueba de Trabajo Reutilizable"), también conocido por las siglas RPOW, fue un sistema de efectivo digital presentado por Hal Finney en 2004 destinado a ser un prototipo basado en la teoría de los coleccionables de Nick Szabo. RPOW fue un antecedente importante en la historia del dinero digital y un precursor de Bitcoin. Aunque nunca tuvo la intención de ser más que un prototipo, RPOW era muy sofisticado y con posibilidades de ser realmente desplegado.
Está basado en Hashcash pero los tokens de prueba de trabajo no están ligados a una aplicación particular sino que pueden ser gastados libremente como si fuera una moneda. Los clientes pueden crear tokens realizando una prueba de trabajo. El valor de un token está respaldado por los recursos gastados en su creación.
La gran innovación del sistema es que permite el intercambio de tokens sin necesidad de regenerarlos. Un token es generado por un usuario desarrollando una prueba de trabajo. Cuando el usuario decide gastarlo lo envía a otro usuario, el cual lo canjea en un servidor central (servidor RPOW) que lo marca y lo convierte en otro nuevo token. Notar que cuando un usuario recibe un token, tiene que rápidamente mandarlo al servidor central para intercambiarlo por otro nuevo token para evitar que el propietario original pueda realizar doble gasto. Por eso se dice que es un sistema online
El sistema depende de un servidor central que mantiene un base de datos con todos los tokens gastados. Este servidor no puede crear tokens, sólo reedita tokens cuando se presenta un token previamente no gastado.
RPOW fue instalado en un servidor que tenía un coprocesador criptográfico (IBM 4758 PCI) que permitía certificación remota para poder usar técnicas de computación confiable. El coprocesador criptográfico mantenía una copia de una clave privada que nunca salía del coprocesador y podía usar esta clave privada para firmar el hash del código que se ejecutaban en el servidor Los usuarios podía verificar que el código que se ejecutaba en el servidor era exactamente el que había sido público y por tanto no había sido cambiado. Sin embargo, si un atacante podía hacer una copia de la clave privada del coprocesado, podría potencialmente reemplazar el servidor central por un servidor ejecutando una versión maliciosa del código pero que produciría una certificado correcto de firma cuando se le pidiera la certificación remota
Es un medidor económico para detectar en una red ataques DoS y otros abusos de servicio tales como spam. Por ello, para requerir un servicio, se requiere trabajo (sistema de prueba de trabajo). De esta forma se puede conseguir que el requiere el servicio pueda tener un gasto computacional incluso más alto que el que provee el servicio.

## Generalización

A partir del sistema propuesto por Hal Finney se pueden plantear sistemas que utilicen de forma fiable y segura la misma filosofía propuesta. A estos sistemas se les llama sistemas RPOW:
    Se tiene un servidor que recibe una prueba de trabajo ("moneda POW") de un cliente y éste 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 éste 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.