Table des matières
ToggleDans 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.
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.
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éé.
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:
Inconvénients:
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.