HashCash es un sistema que usa Proof of Work para evitar los mails spam. Este fue inventado por el reconocido criptógrafo Adam Back en 1997. Aunque HashCash nunca se popularizó, es conocido como una de las primeras aplicaciones del algoritmo Proof of Work y sentó las bases para el desarrollo de Bitcoin. Veamos más sobre esta interesante herramienta y sus implicancias.
Contenidos
Los inicios de Proof of Work (PoW)
Aunque el algoritmo de consenso PoW se hizo conocido gracias a su implementación en Bitcoin, no fue Satoshi Nakamoto quien lo inventó. La primera referencia relacionada con PoW se le atribuye a un paper escrito en el 1992 por Cynthia Dwork y Moni Naor. En este documento, ellos proponen un sistema que le requiera a sus usuarios realizar un “trabajo” relativamente difícil para ganar acceso a la red. Adam Back tomó esta idea y la puso en práctica al desarrollar HashCash, veamos cómo funciona.
¿Cómo funciona HashCash?
Uno de los grandes problemas del internet y los servicios gratuitos que ofrece es el spam. Al no haber ninguna diferencia de costos entre mandar 1 o 1000 mails, es muy fácil hacer envíos masivos no solicitados. Esto se podría solucionar cobrando unos centavos por cada mail, pero eso implica poner una barrera de entrada y que mucha gente posiblemente se quede afuera.
HashCash propone una alternativa para resolver el problema del spam. Esta consiste en pedirle al enviador que realice un trabajo computacional y genera un prueba criptográfica para poder enviar el mail. Este trabajo podría estar diseñado para que a una computadora regular le tome algunos segundos para resolver.
De esta manera, los usuarios comunes tendrían que esperar simplemente unos segundos antes de mandar sus mails. Pero a los spammers que envían miles de mails al mismo tiempo se les haría mucho más difícil seguir esa práctica. Es ese el funcionamiento básico de un algoritmo Proof of Work.
Más allá de evitar el spam, HashCash provee protección frente a un ataque de Denial of Service (DoS). Estos consisten, en este caso, en inundar el servidor con mails para que se congestione y deje de funcionar momentáneamente. Lógicamente, al utilizar PoW, se dificulta mandar muchos mails al mismo tiempo y por eso el riesgo de un ataque de DoS es mínimo.
Ventajas de HashCash
- No requiere de pagos
HashCash utiliza poder computacional en vez de algún bien monetario para prevenir el spam. Esto es una gran ventaja ya que, por un lado, el servicio de mails sigue siendo gratuito y accesible para todos. Por otro lado, nos ahorramos las complicaciones administrativas de tener que aceptar micropagos provenientes de todo el mundo.
- Es fácil de implementar
El sistema utilizado por HashCash no es demasiado complejo y puede ser integrado de forma opcional con otros servicios de mails. Si un servicio de mensajería no reconoce la prueba criptográfica que envía el remitente, la puede ignorar y recibir el mail igualmente. Esta compatibilidad entre HashCash y los sistemas existentes facilita su adopción.
Desventajas de HashCash
- Es difícil calcular la dificultad necesaria
El sistema de Proof of Work se basa en pedirle a los participantes realizar un trabajo computacional para poder, en este caso, mandar mails. Pero, ¿Qué tan difícil debería ser este trabajo computacional? Debería ser suficientemente sencillo para no causar una molestia en los usuarios individuales. Al mismo tiempo, suficientemente difícil como para prevenir el envío de mails spam.
Desde un primer momento, no es fácil determinar la dificultad justa para que HashCash funcione como debería. Esto se vuelve más difícil si tomamos en cuenta que las computadoras se están volviendo más rápidas día a día. Por lo tanto, este equilibrio se debe ajustar constantemente.
Lo ideal sería que este sistema no perjudique a servicios como newsletters o listas de mails legítimas. Una solución sería dejar de requerir un trabajo computacional a direcciones de confianza elegidas por el usuario.
- Perjudica a las computadoras menos potentes
Inevitablemente, al usar HashCash, las zonas donde es difícil acceder a las computadoras más modernas se van a ver más afectadas. Un problema criptográfico que una computadora moderna resuelve en algunos segundos le puede tomar varios minutos a una máquina más antigua. Esto limitaría el uso global de sistemas como el HashCash.
Bitcoin: ¿Cómo usa HashCash?
Como mencionamos anteriormente, HashCash fue una de las primeras implementaciones reales del algoritmo Proof of Work. Por lo tanto, actúa como un precedente clave para el futuro desarrollo de Bitcoin que utiliza el mismo sistema. HashCash utiliza PoW para evitar el spam, Bitcoin utiliza PoW para evitar la confirmación de transacciones maliciosas.
Para poder ganarse el derecho de subir un bloque a la blockchain y recibir una recompensa, los mineros de Bitcoin deben resolver un problema criptográfico. Esto significa disponer de hardware especializado y gastar energía. El alto costo los incentiva a actuar de manera honesta, ya que es la única forma de recibir la recompensa y recuperar la inversión inicial.
La conexión entre HashCash y Bitcoin es estrecha. Satoshi Nakamoto citó en el whitepaper de Bitcoin el trabajo de Adam Back en HashCash, indicando que lo usó como inspiración para el desarrollo del proyecto. También se cree que Adam fue una de las primeras personas contactadas por Satoshi para presentarle su idea a mediados del 2008, cuando todavía el proyecto no tenía nombre. Sin embargo, Adam no se interesó en Bitcoin hasta el 2013, cuando empezó a estar activo en distintos foros. En el 2014 crearía Blockstream, una de las empresas líderes en desarrollo de infraestructura de Bitcoin.