Las diferencias entre HashCash y la implementación en Bitcoin
Si bien el trabajo de los algoritmos es el mismo, hay ciertos parámetros que cambian entre la implementación de HashCash de Adam Back y la de Bitcoin creada por Satoshi Nakamoto. El primer cambio que vemos es que HashCash hace uso de la función hash SHA1, mientras que Bitcoin usa SHA-2, más específicamente SHA-256. Este primer cambio permite que la implementación de Nakamoto sea más compleja y al mismo tiempo más segura.
Otro cambio fundamental es la extensión de las pruebas. HashCash solo puede realizar pruebas de trabajo con una extensión de 160 bits, mientras que Bitcoin llega hasta los 256 bits. Esto permite que Bitcoin, tenga un rango mayor de hashes y respuestas, garantizando características como la unicidad de sus transacciones y bloques. Además de evitar problemas de colisiones o de ataques por fuerza bruta.
Seguidamente otro factor que los diferencias es la dificultad del trabajo. En HashCash este valor puede duplicarse o reducirse a la mitad, mientras que Bitcoin usa el concepto de dificultad de minería, para introducir un valor de dificultad dinámico. Esto incrementa la seguridad del algoritmo.
Otro punto que diferencia a estas implementaciones es los pases. En HashCash, un hash se forma en una sola iteración del algoritmo. Pero en Bitcoin, dicha iteración sube a dos de ellas. Esto hace que el algoritmo implementado en Bitcoin sea más seguro.
HashCash y su relación con Bitcoin
Ahora bien, ya sabemos que es HashCash y las posibilidades que él mismo nos permite. Pero seguramente te preguntarás ¿Qué relación guarda este software con la creación y funcionamiento de Bitcoin? Pues bien, la verdad es que tienen mucha relación. Satoshi Nakamoto creó Bitcoin usando el concepto de Prueba de Trabajo desarrollado por HashCash, de hecho, el algoritmo es parte del desarrollo de Bitcoin Core.
De esta forma todos los mineros que forman parte de la red de Bitcoin usan sus recursos para resolver pruebas de trabajo que son generadas siguiendo el algoritmo de HashCash. Por su lado, los nodos de la red Bitcoin usan dicho algoritmo para verificar que el trabajo de minería de los mineros ha sido realizado de forma satisfactoria. De esta manera, HashCash encaja en la construcción de Bitcoin y la tecnología de las criptomonedas.
Claramente esta relación no solo se limita a Bitcoin, sino también al resto de criptomonedas que usan la Prueba de Trabajo. Todas y cada una de ellas usan el mismo algoritmo de Bitcoin o algún derivado ajustado a su desarrollo. Pero el objetivo es el mismo, hacer que el trabajo de los mineros sea algo muy complejo de realizar, contrario al hecho de verificar dicho trabajo, que puede realizarse haciendo uso de muy pocos recursos.
Casos de uso de este algoritmo
Ahora, la creación de HashCash nos permite crear un mecanismo de control de acceso a recursos computacionales preciados y escasos. En un principio como dijimos fue pensado para frenar los ataques de spam en los servicios de correo. Pero su utilidad va mucho más allá de eso.
Por ejemplo, podemos usar HashCash para crear un sistema de protección de acceso a recursos online de un servidor. Así un servidor puede usar HashCash para requerir a sus usuarios una prueba de trabajo sencilla cuya realización les dará acceso a los recursos de ese servidor. Una protección que puede ayudar a mitigar ataques de denegación de servicios (DoS o DDoS).
Relacionado: Minería
¿Cómo funciona HashCash?
..