HashCash fue una solución diseñada para combatir el spam generando una prueba de trabajo que permitía verificar que un determinado correo electrónico no era correo basura.
El nombre de HashCash hace mención a una tecnología de Prueba de Trabajo (PoW) que se usó para minimizar el correo no deseado (spam) y los ataques de denegación de servicio (conocidos como DoS o DDoS). Esta tecnología ganó amplia popularidad gracias a su implementación en el Bitcoin y muchas otras criptomonedas. Su función en las mismas, era formar parte del algoritmo de validación de los bloques. Todo ello mediante el proceso de minería de las criptomonedas.
Conoce el origen del termino SPAM
Proviene de la Segunda Guerra Mundial cuando los familiares enviaban a los soldados comida enlatada. Entre esta comida se encontraba una lata de carne precocinada muy común en Estados Unidos que se llamaba Spam. En 1970, en un sketch de la serie televisiva Monty Python’s Flying Circus (protagonizada por los humoristas británicos Monty Python) se servían unos platos que contenían spam a unos comensales. Fue bastante popular en la época y llegó al campo de la informática. Una vez allí, sirvió para hacer referencia a los correos basura enviados de manera indiscriminada.
Desarrollo de HashCash
El desarrollo de HashCash viene de la mano de Adam Back en el año 1997. Back es un reputado experto en criptografía y hacker informático. Él desarrolló el sistema de prueba de trabajo. Esto como una contramedida contra el spam en correos electrónicos y también en blogs (el spam son mensajes no deseados). Back ideó este tecnología en base a un trabajo llamado; “Valoración a través del procesamiento o combate al correo no deseado”. Un documento presentado en 1992 por los expertos en informática Cynthia Dwork y Moni Naor.
El objetivo de HashCash, es requerir un trabajo de computación para que este sea verificado. Una vez verificado dicho trabajo, se le permite al usuario hacer uso del recurso. El uso en el correo correo electrónico, se basa en añadir un encabezado codificado al correo. Dicha encabezado tiene la información generada por el usuario utilizando el sistema HashCash. Esto es una especie de sello que asegura que el correo ha pasado por la prueba de trabajo. Dicho sello, es un identificador que demuestra que el remitente ha utilizado el procesador durante una pequeña cantidad de tiempo. Pues es la única manera de generar un sello genuino para cada correo electrónico que se desee enviar.
¿Cómo funciona HashCash?
Se basa en la idea de que si, un determinado usuario ha usado su procesador para generar este sello resulta poco probable que sea un spammer. Los receptores con un coste computacional muy reducido casi insignificante lo pueden verificar. De esta forma podemos garantizar de que no se trata de un correo no deseado.
Para descifrar el sello y garantizar que no es correo basura se requiere la fuerza bruta de computación. O lo que es lo mismo, necesitamos el procesador para que busque la respuesta mediante prueba y error. Básicamente, el procesador irá probando combinaciones según unos criterios determinados hasta que encuentra la respuesta correcta. Esto demostraría que no es spam.
Los spammers basan su modelo de negocio en mandar cientos, miles e incluso millones de correos electrónicos de manera rápida. Todo ello con un bajo coste de recursos por mensaje. Por ejemplo; si se pide un trabajo de 5 segundos antes de mandar un correo electrónico, el coste por enviar miles de correos sería inasumibles por el spammer. Por su parte, el receptor puede verificar rápidamente si existe un trabajo de verificación previo a la recepción del correo. Con ello, puede filtrar y clasificar rápidamente los correos legales de los intentos de spam.
Casos de uso de HashCash
La creación de HashCash permitió proponer un mecanismo para controlar los ataques de spam en los servicios de correo. Este sería su principal y mayor uso en la informática. Sin embargo, esta herramienta también sentó las bases para otros sistemas, entre los que podemos destacar:
Protección de conexiones
Uno de los eslabones más débiles de toda infraestructura en red, es la conexión entre el cliente y el servidor. Esta puede ser vulnerada de distintas formas, llevando al cierre de la conexión o el robo de sesión. Ambos casos deniegan el servicio al cliente, pero también presentan otros riesgos de seguridad. Para evitar esto, se puede usar HashCash.
Esto con el fin de crear un token de conexión generado por una función de costo de HashCash interactiva. Con esta defensa, las conexiones cliente-servidor se protegen con un hash asegurando que las mismas no puedan ser «robadas» o «rotas» por actores malintencionados.
Sistemas de archivos informáticos
Otro uso en informática de HashCash está en la utilización dentro de sistemas de archivos. Esto a través de funciones hash para crear una firma única para cada bloque de datos almacenados. Gracias a esta firma, el sistema es capaz de verificar la autenticidad de los mismos. Esto permite crear sistemas de archivos tolerantes a fallos como la degradación. Entre los sistemas de archivos capaces de hacer esto están ZFS, btrfs o SFS.
¿Cuánto sabes, criptonauta?
¿El desarrollo de HashCash abrío las puertas al desarrollo de los sistemas Proof of Work (PoW)?¡CIERTO!
El desarrollo de HashCash fue uno de los primeros casos de usos reales que la Prueba de Trabajo (PoW) demostró ser realmente útil en el mundo de la informática. Pese a que la tecnica se conocía nunca había sido adaptada a una funcionalidad o tarea especifica hasta que Adam Back desarrollo HashCash. De allí en adelante el desarrollo de las PoW fue mejorando hasta la creación del Bitcoin.
HashCash y el Bitcoin
Bitcoin hace uso de la función hashcash como parte de su núcleo de minería. Todos los mineros de bitcoin, ya sea CPU, GPU, FPGA o ASIC, están dedicando su esfuerzo a crear comprobantes de trabajo de HashCash. Al igual que muchos algoritmos criptográficos, HashCash utiliza una función hash como bloque de construcción. Es gracias a la utilización de HashCash, que la minería Bitcoin es posible. Sin este software, la actual estructura de minería y seguridad de Bitcoin no sería posible.