Conoce a Equihash, el algoritmo que hace posible la minería de criptomonedas como Zcash. Un algoritmo que funciona utilizando un complejo problema matemático y probabilístico conocido como «El Problema del Cumpleaños».
El protocolo o algoritmo de minería Equihash, es uno de los muchos protocolos o algoritmos de minería que existen en el mundo de la blockchain y criptomonedas. Sin embargo, Equihash guarda un lugar muy especial dentro del mundo cripto. Esto es debido a su creación específica para diseñar un algoritmo que ofreciera una enorme resistencia a los ASIC. Sin que ello resultara extremadamente complejo o inseguro.
Fue así como un grupo de desarrolladores y académicos se pudieron con la tarea de crear Equihash. Un trabajo que abrió la posibilidad de crear criptomonedas con resistencia ASIC aplicable a criptomonedas con buena escalabilidad. Por ello, desde Bit2Me Academy te invitamos a que conozcas este algoritmo y todo lo que tiene por ofrecer. Acompáñanos a conocerlo.
Origen del algoritmo Equihash
El desarrollo de Equihash comenzó gracias al trabajo de Alex Biryukov y Dmitry Khovratovich. El objetivo de estos dos desarrolladores era el de crear un algoritmo de minería que ofreciera resistencia a la minería ASIC y el creciente peligro de centralización que este significa.
Este es un problema largamente discutido en la comunidad Bitcoin. Especialmente porque el hashrate de dicha blockchain (que usa SHA-256) es en la actualidad explotado en su totalidad usando ASIC. Esta situación puede llevar a grandes riesgos, como que una empresa o un grupo de poderosos mineros puedan confabularse para afectar negativamente el funcionamiento de la red.
Y si bien en Bitcoin, son conscientes del peligro pero existen incentivos de que eso no ocurra, de momento esa situación sigue vigente. Todos los mineros de Bitcoin quieren algo en común, que Bitcoin sea la criptomoneda más poderosa. No solo en términos de hashrate, sino de precio, estimulando así la seguridad de la blockchain ante los atacantes.
Si bien esto es factible en redes tan grandes como Bitcoin, en redes más pequeñas la historia es distintas. Biryukov y Khovratovich observaron esto y decidieron crear Equihash. Para ello, diseñaron una infraestructura algorítmica compleja creada en resolver un difícil problema matemático denominado “Problema del Cumpleaños”. Con estos elementos, en 2016 presentaron el resultado de su trabajo e investigaciones, el algoritmo completo y funcional de Equihash.
Esta presentación se llevó a cabo en el Universidad de Luxemburgo, y fue dirigido por un grupo llamado CryptoLUX, del que formaron parte, en el Simposio de seguridad de redes y sistemas distribuidos 2016 en San Diego.
Objetivo de Equihash
El objetivo detrás de la creación de Equihash es sencillo de entender: evitar que los ASIC lleven a la centralización de la minería. Un problema especialmente serio en blockchain pequeñas, donde un solo minero ASIC podría significar más de la mitad del poder de minería de la red. En esa situación el minero con ese ASIC podría tomar el control total de la red e incluso reescribir el historial de la misma si lo desea.
Con ese problema en mente, Biryukov y Khovratovich diseñaron Equihash para luchar contra el mismo. De hecho, en el whitepaper de Equihash hacen mención clara en su abstracto a este aspecto. Haciendo ver claramente la necesidad de estos sistemas.
La prueba de trabajo es un concepto central en las criptomonedas modernas y las herramientas de protección de denegación de servicio, pero el requisito de verificación rápida hasta el momento la convirtió en una presa fácil para GPU, ASIC y botnets. Los intentos de confiar en cálculos intensivos en memoria para remediar la disparidad entre arquitecturas han dado como resultado esquemas lentos o rotos.
Su trabajo les llevó a crear un algoritmo altamente sofisticado con alto consumo de memoria, alta penalización en ambientes de baja memoria RAM como la de los ASIC, bajo consumo de poder de cómputo y presentación de pruebas criptográficas cortas que no significaran un problema grave de almacenamiento y transmisión de datos. De hecho, en su whitepaper dejaron la siguiente afirmación:
Nuestra solución es práctica y está lista para implementarse: una implementación de referencia de nuestra prueba de trabajo requiere 700 MB de RAM, se ejecuta en 15 segundos en una CPU de 2.1 GHz, pero aumenta los cálculos en un factor de 1000 si la memoria se reduce a la mitad y solo presenta una prueba de solo 120 bytes de longitud.
¿Cómo funciona Equihash?
Ahora bien, seguramente te preguntarás ¿Cómo hicieron para crear un algoritmo resistente a ASIC como Equihash? Pues bien, para llevar a cabo esta tarea Biryukov y Khovratovich tomaron como base un pequeño, pero complejo, problema matemático llamado “El Problema del Cumpleaños”. Este problema es un problema probabilístico que nos dice lo siguiente:
El problema del cumpleaños establece que, de un conjunto de 23 personas, hay una probabilidad del 50,7% de que al menos dos personas de ellas cumplan años el mismo día. Para 57 o más personas la probabilidad es mayor del 99,666%. En sentido estricto esto no es una paradoja ya que no es una contradicción lógica. Sin embargo, es una verdad matemática que contradice la intuición común.
Mucha gente piensa que la probabilidad es mucho más baja, y que hacen falta muchas más personas para que se alcance la probabilidad del 50,666%. Si una habitación tuviera 367 personas, por el Principio del palomar sabemos que habría al menos dos personas cumpliendo años en la misma fecha, ya que un año normal tiene 365 días, y uno bisiesto tiene 366.
Un problema muy bien conocido en informática y que ha sido ampliamente estudiado para la construcción de sistemas de recursividad y backtracking (dos técnicas de programación) que buscan resolver problemas de este tipo de la forma más eficiente posible.
El algoritmo de resolución
El sencillo enunciado anterior es la base de construcción que Biryukov y Khovratovich usaron para crear Equihash. Básicamente lo que hicieron fue crear un algoritmo en base al trabajo de resolución de problemas de cumpleaños creado por David Wagner de la Universidad de California en Berkeley. Wagner, reconocido especialista en criptografía, creó este algoritmo para que cualquier reducción de memoria aumente la complejidad del tiempo en la resolución de este problema.
Es decir, el algoritmo de Wagner es capaz de resolver el problema de cumpleaños para universos extremadamente grandes de personas. Pero para lograrlo hace uso intensivo de memoria RAM. Si la memoria RAM se reduce, el algoritmo igualmente puede resolver el problema, pero la complejidad y dificultad de resolución aumenta.
Esto permitía crear un sistema de minería que fuera especialmente complejo de resolver en sistemas ASIC donde la memoria RAM no es amplia.
Adicionalmente el algoritmo de Wagner se modificó para que este no produjera múltiples soluciones para el problema. Esta propiedad hace que la minería sea demasiado fácil para los mineros con mucha RAM, ya que todas estas soluciones pueden ser aceptadas por la red. Para lograr esto, Equihash se actualizó con la implementación de la técnica denominada “enlace de algoritmo”. El enlace de algoritmo cambia el problema para que no tenga más de dos soluciones producidas en promedio, con el objetivo que sean casi únicas.
De esta forma, el algoritmo de Equihash garantiza la mayor dificultad posible para la minería de criptomonedas que lo apliquen.
El fin de la resistencia ASIC de Equihash
Todo lo anterior deja en claro una cosa: minar en Equihash es muy eficiente cuando se usa un ordenador potente y con relativa gran cantidad de memoria RAM. De hecho, una de las recomendaciones básicas es la de contar con equipos de al menos 2 GB de RAM. Equihash se puede minar de forma eficiente en un CPU. Pero si usamos una GPU, podemos obtener mejores resultados, y más, si la GPU tiene la suficiente memoria para contener todo el DAG generado por Equihash para la minería.
Sin embargo, Bitmain logró crear finalmente un ASIC de minería para Equihash rompiendo así la resistencia ASIC del algoritmo. Esto sucedió en 2018 cuando el fabricante presentó su primer minero ASIC para Equihash. De hecho en la actualidad, existe una enorme diversidad de mineros ASIC para Equihash, entre los que se pueden destacar fabricantes como Bitmain e InnoSilicon.
Características del algoritmo
Pese a fallar en la búsqueda de una resistencia real y perdurable al ASIC, eso no echa por tierra la calidad técnica de Equihash. De hecho, entre sus propiedades más interesante podemos mencionar:
- Es un algoritmo que busca evitar la centralización de la minería. Incluso aunque existen mineros ASIC, minar Equihash es complejo, y eso lo podemos ver en la relativa poca eficiencia de los mineros ASIC para Equihash.
- Ofrece una prueba criptográfica compleja de construir pero pequeña en resolución. Esto permite que la red no se sobresature con el tránsito de pruebas criptográficas de gran tamaño ayudando en la escalabilidad total de la red.
- La prueba requiere de grandes cantidades de memorias que incluso con optimizaciones siempre tienen un costo fuerte sobre la minería tanto en CPU, GPU como ASIC.
- Es flexible y permite futuras mejoras algorítmicas y cambios de arquitectura.
Esto permite que Equihash pueda evolucionar en el tiempo y mejorar sus prestaciones de acuerdo a las necesidades de los proyectos que la usen.
Criptomonedas que usan el algoritmo Equihash
Existen en la actualidad varias monedas que usan el algoritmo Equihash para brindar una minería segura. Entre esas monedas la más conocidas son ZCash (ZEC), Bitcoin Gold (BTG), Komodo, Horizen o Beam. De ellas la más pequeña es Beam con una capitalización de unos 11 millones de dólares. Y la mayor es ZCash con una capitalización de unos 420 millones de dólares.
De todos estos proyectos ninguno hasta el momento ha sido afectado por un ataque del tipo 51%, y no han sido vulneradas de ninguna otra forma significativa, dejando claro la calidad del algoritmo de Equihash.