Saltar al contenido

Qué es el Hashcash

Qué es el Hashcash

¿Qué es el Hashcash?

Hashash es una propuesta hecha por Adam Back en 1997 para combatir el spam o spam. Más recientemente, Hashash es conocido por su uso en Bitcoin.

Historia de Hashcash

La función de prueba de Hashash work fue inventada en 1997 por el Dr. Adam Back, y fue propuesta para usos anti-DoS, incluyendo la prevención: Gateway anonymous misuse y mail2news, nym squatting name en nymservers (servidores de alias replicables de backwater), así como la regulación general contra el spam y el abuso general de la red.

Antes de bitcoin, SpamAssasin utilizaba el Hashcash de Microsoft y (con un formato incompatible) el Hashash (con el nombre “correo electrónico con matasellos”) en hotmail, exchange, outlook, etc. y sobre la red anónima i2p, componentes anónimos del remailer mixmaster y otros sistemas.

El hachís también fue utilizado por el predecesor del bitcoin RPW de Hal Finney como una forma de extraer monedas. La propuesta de dinero de Wei Dai y los precursores de bitcoin BitGold de Nick Szabo también se propusieron en el contexto de la minería de hachís.

Opciones de la función Hashcash

En el algoritmo original de 1997, el Hashash usaba SHA1 porque en ese momento, este era el hash realmente recomendado por el NIST, y el anterior hash MD5 de facto había comenzado a mostrar signos de debilidad. Bitcoin especificado / publicado en 2008/2009 utiliza SHA256. De hecho, no hay razón de peso para que SHA1 no funcionara, el Hashash depende sólo de la propiedad de resistencia parcial previa a la imagen (seguridad para el tamaño del hash, 160 bit SHA1) y no de la dureza de colisión del aniversario (seguridad hasta 80 bit), por lo que el hash SHA1 es lo suficientemente grande.

Bitcoin está construido de todos modos con seguridad de 128 bits porque se utiliza el ECDSA de 256 bits, que también ofrece seguridad de 128 bits. Sin embargo, SHA256 es la opción correcta y más conservadora, porque incluso el SHA1 comenzó a mostrar algunas debilidades, aunque sólo en la colisión de cumpleaños, y no en la segunda pre-imagen.

Qué es el Hashcash

Estrategia Hashcash

La estrategia que sigue es establecer un mecanismo de verificación rápida de que el que envió un mensaje tiene suficiente interés para enviarlo que esté dispuesto a “pagar” con tiempo de CPU para poner una marca que demuestre que no lo envía simplemente porque no cuesta nada . De esta manera, aquellos que deseen enviar grandes volúmenes de spam tendrán que gastar altos costos para disuadirlos o al menos limitar sus acciones.

Implementación de Hashcash

Para implementar esta estrategia se utilizan problemas matemáticos complejos, cuya solución es fácilmente verificable. Por ejemplo: Calcular raíces cuadradas de grandes números o encontrar colisiones parciales de hash.

Para utilizar esta técnica en sistemas de correo, se han desarrollado plug-ins que insertan cabeceras X- Hashcash en mensajes similares a los siguientes:

X-H Hashcash: 0: 030626: adam@cypherspace.org: 238923ef39238392a9

Estos valores se calculan a partir de la fecha, la dirección de correo electrónico de los destinatarios (si hay varios, tendrá que introducir varios encabezados X-Hashash) y un número de versión junto con un valor aleatorio. Esto se hace cuando el correo electrónico se envía aprovechando el hecho de que el correo electrónico no es interactivo en tiempo real. El costo de generar el código es usualmente escalado de tal manera que toma unos segundos en una computadora ordinaria. De esta manera, se penaliza más a los que tienen una máquina lenta.

Qué es el Hashcash

Problemas de Hashcash

Comprobar el encabezado de cada correo electrónico implica cambiar los servidores de correo electrónico. Además, si alguien con un sniffer captura cabeceras de X-HashCash, nada le impedirá enviar un mensaje a cada uno de los destinatarios, aprovechando la duración de las salvaguardas ya generadas.

Almacenar hashes para muchos destinatarios es un coste. Las listas de correo, sin embargo, se sobrecargarían, enviando mensajes a cada destinatario. Por lo tanto, los usuarios deben comprobar el hashcash con la dirección de la lista y no con la de cada miembro.