Uno de los algoritmos de minería más elaborados del planeta cripto es Ethash, el algoritmo de minería de Ethereum, y el que vas a conocer en este magnífico artículo. 

El algoritmo de minería Ethash, es el algoritmo que vuelve posible el funcionamiento de la minería en Ethereum. Un algoritmo de elevada calidad y que utiliza ciertas técnicas informáticas muy elaboradas para asegurar la mayor seguridad posible.

Ethash es asimismo conocido como Ethash-Dagger-Hashimoto, si bien efectivamente el algoritmo actual ha alterado tanto, que bien podría dársele otro nombre. Mas ¿Qué es lo que significa todo esto? ¿Qué es Dagger-Hashimoto y de qué forma se relaciona con Ethash? ¿De qué manera marcha Ethash? ¿Cuál es su porvenir?

Pues bien, todas y cada una estas preguntas van a ser contestadas ahora en este nuevo artículo de Bit2Me Academy.

¿Qué es Dagger-Hashimoto? El origen de Ethash

Para comprender de qué manera marcha Ethash, primero hay que conocer qué es Dagger-Hashimoto. Es por esta razón que, vamos a explicar primeramente este punto para avanzar y comprender este atractivo algoritmo.

Cuando charlamos de Dagger-Hashimoto, hacemos referencia a un algoritmo de minería que sirvió de base para la creación de Ethash. Este algoritmo procuraba crear un algoritmo seguro construido sobre 2 pilares:

  1. Ser resistente a la minería ASIC.
  2. Altamente eficaz y que sea sencillamente verificable por clientes del servicio ligeros.

Estos 2 pilares son esenciales en el funcionamiento de Dagger-Hashimoto. Las psiques tras el diseño de este algoritmo son Vitalik Buterin y Thaddeus Dryja, quienes inventaron exactamente el mismo entre los años dos mil trece y dos mil catorce. Como ves, su nombre viene por el hecho de que el algoritmo es realmente la unión de 2 algoritmos diferentes.

En primer sitio, tenemos a Dagger, un algoritmo desarrollado por Vitalik Buterin que emplea grafos acíclicos dirigidos (DAG) para edificar una estructura masiva de datos. En un inicio esta estructura ocupaba un tanto más de 1 Gigabytes de almacenaje, mas hoy en día ronda los cuatro-cinco GB. Sobre esta estructura se ejecutan una serie de cálculos de memoria que añaden un elevado nivel de trabajo. Esta estructura es la que deja el proceso de minería que efectúa el algoritmo Hashimoto.

Hashimoto por su lado, es un un algoritmo desarrollado por Thaddeus Dryja, y tiene como propósito añadir la resistencia ASIC, y efectuar la minería de los hash. Esto lo consigue haciendo que exactamente el mismo tenga un alto consumo de memoria RAM y esto sea un limitante a los ASIC. Esencialmente lo que hace Hashimoto, es tomar el DAG generado, añadir la información de la red sobre la complejidad, las transacciones y producir un hash que identifique al bloque que es minado.

Al unir los dos algoritmos conseguimos un solo algoritmo que nos deja diseñar un sistema de minería suficientemente complejo a fin de que los mineros ASIC tengan inconvenientes para incorporarlo con eficacia. La estructura es tan avanzada y segura, que se procuraba incorporar como una opción alternativa a Scrypt.

Sin embargo, Dragger-Hashimoto tenía ciertos fallos que hicieron que su desarrollo y evolución acabará dando origen a Ethash.

¿De qué forma marcha el algoritmo Ethash?

Partiendo de lo aprendido en Dagger-Hashimoto, el equipo de desarrollo de Ethereum presentó entonces su algoritmo Ethash. El funcionamiento básico de este algoritmo es absolutamente diferente al original Dagger-Hashimoto, mas los principios esenciales se sostienen. De esta forma debemos Ethash marcha de la próxima manera:

  1. Se crea una semilla calculada utilizando las cabeceras de los bloques hasta el punto en que empieza la minería.
  2. Esta semilla entonces es utilizada para calcular y producir un caché pseudoaleatorio de dieciseis MB.
  3. Seguidamente se emplea este caché, para producir un conjunto de datos de más de cuatro GB (el DAG). Este conjunto de datos es semipermanente y se actualiza cada treinta mil bloques. Así, el DAG cambia para cada “época de minería”.
  4. Generado el DAG se comienza la minería. Este proceso toma valores azarosos del DAG y los combina utilizando los datos suministrado por la red y las transacciones a contrastar.
  5. Finalmente la verificación se efectúa con un proceso que regenera partes concretas del conjunto de datos utilizando la memoria caché, acelerando este proceso.

Este funcionamiento es el que se ejecuta actualmente, y corresponde al versión número veintitres del algoritmo. A lo largo de todo el proceso se emplean las funciones Keccak-doscientos cincuenta y seis y Keccak-quinientos doce, un algoritmo del que se derivó el estándar SHA-tres.

Ahora bien probablemente te vas a preguntar ¿Por qué razón tantas revisiones y cambios? Y la contestación a ello es que dichas actualizaciones responden a resoluciones de inconvenientes, vulnerabilidades, optimizaciones y como no, modificaciones para hacer el trabajo más complejo para los ASIC y más afable para las GPU, que es donde la comunidad Ethereum acostumbra a hacer su mayor vida minera.

Esquema de de qué manera marcha Ethash

Características de algoritmo Ethash

Todo lo precedente garantiza que Ethash tenga unas peculiaridades de trabajo únicas, entre aquéllas que podemos mencionar:

  1. Es enormemente dependiente de operaciones en memoria RAM, consumiendo grandes cantidades de ancho de banda. Esto es una medida de seguridad contra los ASIC y asimismo elemental para el adecuado funcionamiento de Ethash. Las operaciones precisas para edificar el DAG y la caché de funcionamiento de Ethash dependen sobremanera de esta peculiaridades.
  2. El algoritmo es afable con las GPU. Probablemente vas a saber que las tarjetas gráficas o bien GPU actuales tienen una enorme capacidad. En verdad, desplazar gráficos como  los de los juegos actuales precisa de enormes cantidades de memoria y procesamiento paralelo sin parangón. Esto es una fortaleza si ejecutas minería utilizando Ethash, por el hecho de que puedes utilizar la memoria de la GPU para tener todo el DAG en memoria, al lado de la caché, y efectuar todos y cada uno de los cálculos en un espacio de trabajo de alta velocidad. Como resultado, tienes la capacidad de minar considerablemente más veloz.
  3. Ofrece una genial capacidad de verificación para usuario ligeros. Con unos dieciseis MB de memoria RAM, es posible crear un usuario ligero que sea capaz de contrastar las transacciones de forma sencillísima y veloz. Auxiliar a esto, un cliente del servicio ligero puede estar en funcionamiento y efectuar el proceso de comprobación en apenas unos treinta segundos.

Keccak y SHA-tres, ¿Exactamente en qué se distinguen?

Keccak y SHA-tres son 2 funciones de hash muy similares, en verdad, el principio sobre el que marchan es exactamente el mismo, mas aplicado de forma diferente, lo que da, resultados diferentes. No obstante, las dos son casi equivalentes en seguridad, velocidad y poder de cómputo preciso para su cálculo.

Así que si bien las dos funciones producen hashes diferentes, la base de funcionamiento y la seguridad de exactamente las mismas son casi equivalentes.

Pros y Contras del algoritmo

Pros

  1. Es un algoritmo fácil de incorporar, seguro y práctico en el momento de suponer un enorme trabajo de resistencia a los ASIC.
  2. Es veloz, el empleo de una estructura (DAG) en memoria, empleo de caché y empleo de la función Keccak, hacen de este algoritmo un proceso eficaz en la producción de bloques. Merced a esto, Ethereum puede contar con un tiempo de producción graduable a las necesidades de la red, siempre y en toda circunstancia buscando el equilibrio entre seguridad y escalabilidad.

Contras

  1. La resistencia ASIC se rompió en dos mil dieciocho, cuando Bitmain presentó su primer minero para Ethash.  Desde ese momento se han buscado mecanismos para eludir una mayor centralización de la minería en Ethereum. No obstante, el desarrollo de Ethereum dos.0 prevé el abandono de la Prueba de Trabajo (PoW), y con esto Ethash como algoritmo de minería, a favor de una Prueba de Participación (PoS).
  2. El alto consumo de memoria de su DAG hace realmente difícil minar en equipos más modestos.
  3. La forma en como escala la complejidad del algoritmo ha llevado a Ethereum al filo de las conocidas “Eras de Hielo”. Un punto donde el sistema de complejidad de Ethash haría imposible minar para cualquier minero que lo intente. Este es un grave peligro a la seguridad de la blockchain de Ethereum.

¿Cuánto sabes, criptonauta?

¿Ethash es un algoritmo poco escalable y es por esta razón que desean desamparar su empleo en Ethereum?

Blockchains que emplean el algoritmo

La primordial blockchain que emplea el algoritmo de minería Ethash es Ethereum. Sobre este proyecto se ha desarrollado el algoritmo y es donde ha evolucionado hasta el momento.  El proyecto Ethereum Classic, siendo un hard fork de Ethereum asimismo ha mantenido su funcionamiento utilizando este algoritmo.

Recordemos que en Ethereum viven centenares de miles de tokens, como Maker, DAI, o bien stablecoins como Theter. Con lo que todos estos tokens emplean, de forma tácita, exactamente el mismo algoritmo que Ethereum. Otras altcoins que utilizan Ethash son MusiCoin o bien Callisto, por nombrar ciertos proyectos.