Tout sur l’algorithme Ethash

Tiempo de lectura: 4 minutos

Dans toute conversation sur Ethereum, vous avez peut-être entendu parler d’Ethash. C’est l’algorithme qui rend Ethereum possible. Cet algorithme fait appel à des techniques informatiques très avancées qui augmentent le niveau de sécurité du réseau.

Une autre façon d’appeler cet algorithme est le nom Ethash-Dagger-Hashimoto. C’est le nom qu’elle a adopté lors de sa création, mais elle a beaucoup changé et évolué depuis. Dans cet article, nous allons voir ce qu’il offre et comment il fonctionne.

Bien que son nom complet soit Ethash-Dagger-Hashimoto, il faut noter que Dagger-Hashimoto fait référence à l’algorithme de minage qui a servi de base à la création de l’Ethash actuel. Cet algorithme visait à créer un mécanisme sûr basé sur sa résistance au minage ASIC et l’efficacité qu’il procure en étant hautement vérifiable par les clients légers.

 

Origine de Ethash

Les créateurs de cet algorithme sont Vitalik Buterin et Thaddeus Dryja. Tous deux ont développé ce système entre 2013 et 2014. Cet algorithme est basé sur deux algorithmes différents, d’où son nom composé. Le premier, Dragger, est un algorithme développé par le créateur d’Ethereum lui-même, Buterin. Cet algorithme utilise des graphes acycliques dirigés (DAG) dans le but de créer une structure de données massive.

Au début de son développement, la structure de l’algorithme occupait un espace d’environ 1 Go de stockage, cependant, au fil des années, son stockage a été étendu à 4 Go ou 5 Go. La structure de cet algorithme permet le fonctionnement du processus de minage de Hashimoto, l’algorithme que nous allons aborder ensuite.

Hashimoto est le deuxième algorithme de base d’Ethash développé par Thaddeus Dryja dans le but de pouvoir ajouter la résilience ASIC au système dans lequel il est implémenté, et aussi de réaliser du hash mining. Tout cela est possible parce que l’algorithme lui-même augmente la consommation de mémoire RAM et limite donc les ASIC.

De l’union de ces deux algorithmes naît un autre algorithme unique qui offre la possibilité de concevoir un nouveau système minier si complexe que les mineurs ASIC ne peuvent le mettre en œuvre efficacement. En fait, sa structure est si avancée que de nombreux développeurs tentent de l’implémenter comme une option alternative à Scrypt. Cependant, Dragger-Hashimoto n’a pas toujours été ce qu’il est aujourd’hui. Comme tout le reste, il présentait plusieurs défauts qui en ont fait l’algorithme qu’il est aujourd’hui. Nous allons maintenant voir comment cela fonctionne.

Qué-es-Ethash

Comment fonctionne Ethash?

Le fonctionnement d’Ethash est complètement différent du fonctionnement de base de l’algorithme sur lequel il est basé, Dragger-Hashimoto. Toutefois, certaines caractéristiques fondamentales restent en place.

Au début de l’algorithme, il crée une graine calculée à travers les en-têtes de blocs jusqu’au début du minage.

La graine précédente est ensuite utilisée pour calculer et créer un cache pseudo-aléatoire d’une taille exacte de 16 Mo. Une fois créé, il est utilisé pour créer un ensemble de données qui occupe plus de 4 Go. Ces données constituent ce que nous appelons le « DAG ».

Le DAG est mis à jour tous les 30 000 blocs, variant pour chaque saison minière. Le processus d’extraction commence par la création du DAG. Pendant le minage, des valeurs aléatoires sont prises dans le DAG et elles sont combinées avec les données fournies par le réseau et le reste des transactions pour être vérifiées. Pour la phase finale, la vérification est effectuée par un processus qui génère certaines parties de l’ensemble de données précédent en utilisant la mémoire cache pour accélérer le processus.

Ethash est passé par 23 versions de son algorithme pour arriver à la façon dont il fonctionne aujourd’hui. Cependant, certains aspects n’ont pas changé, comme l’utilisation des fonctions Keccak-256 et Keccak-512. Il s’agit de l’algorithme à partir duquel a été dérivé ce que nous connaissons aujourd’hui comme la norme SHA-3.

Il peut sembler que lorsque nous voyons un nombre aussi élevé de mises à jour, nous pensons que les développeurs ne sont pas satisfaits ou que le projet est incomplet. Cependant, chaque mise à jour correspond à une solution aux problèmes que l’algorithme peut présenter. Des mises à jour ont été effectuées pour améliorer, sécuriser et corriger l’algorithme, mais surtout, pour augmenter la difficulté d’implémentation dans les ASICs. De cette façon, un algorithme de plus en plus convivial pour les GPU a été créé.

Qué-es-Ethash

Avantages et inconvénients

Comme tout système informatique, Ethash présente des avantages et des inconvénients qui le différencient des autres algorithmes. Les plus importants d’entre eux sont énumérés ci-dessous:

Avantages:

  • Facile à mettre en œuvre. Ethash est un algorithme simple, sûr et surtout pratique.
  • Vitesse. En utilisant la structure DAG en mémoire ainsi que la fonction Keccak et l’utilisation du cache, Ethash devient l’un des algorithmes les plus efficaces en termes de production de blocs. Par conséquent, le réseau Ethereum utilise un temps de production des blocs qui s’adapte aux exigences du réseau.
  • La vérifiabilité. L’un des avantages par rapport aux autres algorithmes est qu’avec seulement 16 Mo de RAM, nous pouvons créer un client léger capable de vérifier les transactions rapidement et facilement. Un tel client pourrait effectuer le processus de vérification en 30 secondes seulement.

Inconvénients:

  • Résistance de l’ASIC. L’un des avantages de l’Ethash a été brisé en 2018 en raison du mineur créé par Bitmain qui minait avec l’Ethash.
  • Consommation excessive de mémoire. Il est donc difficile de l’exploiter sur des ordinateurs de faible capacité. Sa consommation excessive provient du fait que son fonctionnement est fortement dépendant des opérations de RAM qui consomment une grande quantité de bande passante. Bien qu’il s’agisse d’une mesure de protection contre les ASIC, elle est également nécessaire pour maintenir le bon fonctionnement du système. Grâce au cache, il est possible d’effectuer une exploitation minière plus efficace en utilisant l’espace pour les calculs.

La difficulté de cet algorithme est tellement évolutive qu’elle entraîne une grande difficulté de minage pour les mineurs du réseau Ethereum, mettant ainsi en péril la sécurité de sa blockchain.


Leave a comment
Your email address will not be published. Required fields are marked *