Una de las funciones hash más seguras del mundo es Scrypt. Creada con el fin de desarrollar un sistema de respaldo de datos en línea, la alta seguridad de Scrypt la ha llevado a ser parte de proyectos de criptomonedas como Litecoin, que la implementan como la función hash para sus tareas de minería.
Uno de los algoritmos o funciones hash más conocidas en el mundo de las criptomonedas es Scrypt. El uso de este algoritmo en el desarrollo de criptomonedas está relacionado con buscar opciones más seguras al hash SHA-256 utilizado por Bitcoin. Como resultado, varios proyectos de criptomonedas como Litecoin utilizaron esta nueva función hash con excelentes resultados.
Pero la historia de Scrypt es muy amplia y emocionante. Por esa razón, en este nuevo artículo nos dedicaremos conocer todo lo relacionado con este famoso algoritmo.
Origen de la función hash Scrypt
La historia detrás de la función hash Scyrpt se remontan a la creación del software de respaldo de datos, Tarsnap. Este software fue desarrollado por Colin Percival, un conocido desarrollador en el mundo del software libre. Mientras Percival, desarrollaba Tarsnap se encontró con la necesidad de contar con una función hash segura y eficiente para su sistema de respaldo en línea. Las necesidades de Tarsnap en ese momento se centraban en:
- Contar con un algoritmo hash eficiente para evitar drenar mucha potencia de los computadores que ejecutan el software.
- Ofrecer un nivel de seguridad superior a muchos algoritmos conocidos como bcrypt, incluyendo a los ataques de fuerza bruta.
- Ser software libre, multiplataforma y portable.
Percival se dio cuenta que ninguno de los algoritmos conocidos hasta ese momento podían ofrecerle lo que buscaba. Por esa razón, Percival comenzó el desarrollo de Scrypt un trabajo que culminó y presentó en el año 2009. Su whitepaper fue liberado por Percival, quien también liberó el código del mismo. Con esto cualquier persona que deseara usar o mejorar la función hash Scrypt podría hacerlo.
De hecho, el trabajo de Percival derivó luego en la aceptación de esta nueva función a nivel mundial. Fue precisamente esto lo que llevó a que en 2016, la IETF creara el estándar RFC 7914. Así la función hash Scrypt sería reconocida como una función hash estándar a nivel mundial.
¿Cómo trabaja la función hash Scrypt?
Ahora bien seguramente te preguntarás ¿Cómo trabaja esta función hash? Pues bien, para empezar a entender esto debemos tener en cuenta qué es un hash. En un artículo anterior hablamos que un hash, es una cadena alfanumérica única e irrepetible. Una cadena que obtenemos como resultado de una compleja función algorítmica y matemática. Si deseas saber más sobre qué es un hash y sus propiedades te invitamos a leer este articulo donde lo explicamos todo.
Ahora ya sabemos que Scrypt genera cadenas alfanuméricas únicas e irrepetibles. Esto de acuerdo a los datos que le pasemos. La pregunta del millón en este punto es ¿Qué hace tan diferente y especial a Scrypt de otras funciones ya conocidas? Pues bien, la respuesta a esto es la forma en como Scrypt realiza este trabajo.
Scrypt funciona gracias a un método conocido derivación mayor de claves mediante funciones secuenciales duras de memoria. Ciertamente es un nombre complejo, pero básicamente Scrypt realiza un hash utilizando una clave, una serie de puntos claves marcados en el algoritmo hash y agregando mucho ruido.
El ruido en Scrypt es en realidad, una serie de números aleatorios que son generados por el algoritmo y almacenados en memoria. El fin de estos números es camuflar los datos claves del algoritmo, para hacer más complejo el trabajo de romper dichos hash. En definitiva, una medida de protección que evita que personas maliciosas puedan hacerse con los datos protegidos por Scrypt.
Con este funcionamiento Scrypt garantiza dos cosas:
- Primero, hacer un hash de las contraseñas para que un atacante que obtenga acceso a un archivo de contraseñas no posea de inmediato las contraseñas que contiene.
- En segundo lugar, para generar claves criptográficas que se utilizarán para cifrar o autenticar datos.
Características de la función hash Scrypt
Lo explicado anteriormente le permite a la función Scrypt hacerse de unas características bastante únicas. Entre ellas podemos mencionar:
- Es un algoritmo eficiente. La función Scrypt tiene una carga de trabajo mínima en comparación a la complejidad del trabajo que realiza. El uso de una clave, un set de puntos de puntos o saltos, paralelización del proceso, generación de números aleatorios así como capacidad par ajustar los valores de la función permiten a Scrypt un alto grado de eficiencia sin sacrificar la seguridad.
- Ofrece altos niveles de seguridad. Scrypt es un algoritmo con un alto nivel de seguridad, de hecho, el nivel de seguridad es ajustable. El algoritmo está diseñado para que el programador pueda aumentar o disminuir diversas variables que impactan en este sentido. Pero adicional a esto, el algoritmo ofrece una alta resistencia a los ataques de fuerza bruta, lo que lo hace perfecto para sistemas distribuidos donde la seguridad sea esencial.
- Resistencia a los ASIC y FPGA. Una de las razones por las que criptomonedas como Litecoin se fijaron en Scrypt era debido a su capacidad para dificultar implementaciones ASIC o FPGA. Esto significa que Scrypt hace más difícil desarrollar mineros de este tipo. No solo más difícil, sino también menos eficientes en término de potencia de cálculo en relación a la potencia eléctrica consumida. Como resultados, los proyectos de criptomonedas usando Scrypt buscaban proteger la descentralización de sus redes. Sin embargo en 2013, se presentó el primer ASIC para scrypt y desde entonces este tipo de hardware comenzó a apuntalarse en la minería de criptomonedas basadas en este hash.
Criptomonedas que implementan Scrypt para sus protocolos de consenso
Desde la aparición del algoritmo Scrypt, muchos criptomonedas le han usado para implementarlos dentro de sus protocolos de consenso PoW. Entre este grupo de criptomonedas podemos mencionar:
- Litecoin – LTC
- Dogecoin – DOGE
- Syscoin – SYS
- Monacoin – MONA
Puedes obtener una lista más completa y actualizada en este sitio web.
Mineros hardware para Scrypt
Como mencionamos antes, Scrypt es un diferente a SHA-256 por ejemplo. Es el algoritmo perfecto para crear criptomonedas con una alto grado de resistencia a la minería ASIC o FPGA. Sin embargo, si algo tienen los diseñadores de hardware minero es inventiva, y en la actualidad existen mineros hardware capaz de trabajar con Scrypt. Pero esto lo logran con una alta penalización, con respecto a la potencia otorgada y el consumo de energía necesario.
Los mineros ASIC y FPGA se caracterizan por una alta eficiencia. Ofrecen altos niveles de hash rate con un consumo de energía mínimo. Por ejemplo, es usual ver mineros de SHA-256 con un consumo de solo 1000 vatios y ofrecer potencia de varios TH/s (trillones de hashses por segundos). Pero en Scrypt, esto cambia radicalmente. De hecho, un minero Scrypt que consuma unos 1000 vatios difícilmente podrá ofrecernos más 500 MH/s (millones de hashses por segundo). Hasta ese punto Scrypt es todo un reto para los mineros hardware.
Ahora bien conozcamos alguno de los mineros que existen para este difícil pero seguro algoritmo:
Antminer L3++
La conocida empresa Antminer ha creado el minero ASIC, Antminer L3++. Este minero es capaz de realizar minería Scrypt hasta un máximo de 580 MH/s y un consumo de unos 800 vatios de energía.
Innosilicon A6+ LTC Master
La empresa Innosilicon es otra de las grandes empresas que crean hardware minero ASIC. En este caso, su minero Innosilicon A6+ LTC Master, está diseñado para trabajar con Scrypt. La potencia total de este minero llega a los 2,2 GH/s, siendo uno de los más potentes. Sin embargo, su consumo de energía se dispara hasta los 2100 vatios.
Como podemos ver, Scrypt es un gran algoritmo hash que ha ayudado a muchas criptomonedas a crear una potente opción frente a Bitcoin y derivadas que usan algoritmos como SHA-256. Su alta seguridad, facilidad de implementación y potencial para evolucionar, le transforman en unas de las funciones hash más cotizadas en el mundo cripto.