{"id":9648,"date":"2023-05-28T03:51:50","date_gmt":"2023-05-28T03:51:50","guid":{"rendered":"https:\/\/www.bitnovo.com\/blog\/?p=9648"},"modified":"2022-05-16T18:41:32","modified_gmt":"2022-05-16T18:41:32","slug":"tout-sur-lalgorithme-ethash","status":"publish","type":"post","link":"https:\/\/www.bitnovo.com\/blog\/fr\/tout-sur-lalgorithme-ethash","title":{"rendered":"Tout sur l\u2019algorithme Ethash"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #ffffff;color:#ffffff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #ffffff;color:#ffffff\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.bitnovo.com\/blog\/fr\/tout-sur-lalgorithme-ethash\/#origine_de_ethash\" >Origine de Ethash<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.bitnovo.com\/blog\/fr\/tout-sur-lalgorithme-ethash\/#comment_fonctionne_ethash\" >Comment fonctionne Ethash?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.bitnovo.com\/blog\/fr\/tout-sur-lalgorithme-ethash\/#avantages_et_inconvenients\" >Avantages et inconv\u00e9nients<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>Dans toute conversation sur Ethereum, vous avez peut-\u00eatre entendu parler d\u2019Ethash. C\u2019est l\u2019<b>algorithme<\/b>\u00a0qui rend\u00a0<b>Ethereum possible<\/b>. Cet algorithme fait appel \u00e0 des techniques informatiques tr\u00e8s avanc\u00e9es qui augmentent le niveau de s\u00e9curit\u00e9 du r\u00e9seau.<\/p>\n<p>Une autre fa\u00e7on d\u2019appeler cet algorithme est le nom\u00a0<b>Ethash-Dagger-Hashimoto<\/b>. C\u2019est le nom qu\u2019elle a adopt\u00e9 lors de sa cr\u00e9ation, mais elle a beaucoup chang\u00e9 et \u00e9volu\u00e9 depuis. Dans cet article, nous allons voir ce qu\u2019il offre et comment il fonctionne.<\/p>\n<p>Bien que son nom\u00a0<b>complet<\/b>\u00a0soit Ethash-Dagger-Hashimoto, il faut noter que Dagger-Hashimoto fait r\u00e9f\u00e9rence \u00e0 l\u2019algorithme de minage qui a servi de base \u00e0 la\u00a0<b>cr\u00e9ation<\/b>\u00a0de l\u2019<b>Ethash<\/b>\u00a0actuel. Cet algorithme visait \u00e0 cr\u00e9er un m\u00e9canisme s\u00fbr bas\u00e9 sur sa r\u00e9sistance au minage\u00a0<b>ASIC<\/b>\u00a0et l\u2019efficacit\u00e9 qu\u2019il procure en \u00e9tant hautement v\u00e9rifiable par les clients l\u00e9gers.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"origine_de_ethash\"><\/span><b>Origine de Ethash<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Les cr\u00e9ateurs de cet algorithme sont\u00a0<b>Vitalik Buterin<\/b>\u00a0et\u00a0<b>Thaddeus Dryja<\/b>. Tous deux ont d\u00e9velopp\u00e9 ce syst\u00e8me entre\u00a0<b>2013 et 2014<\/b>. Cet algorithme est bas\u00e9 sur deux algorithmes diff\u00e9rents, d\u2019o\u00f9 son nom compos\u00e9. Le premier, Dragger, est un algorithme d\u00e9velopp\u00e9 par le cr\u00e9ateur d\u2019Ethereum lui-m\u00eame, Buterin. Cet algorithme utilise des graphes acycliques dirig\u00e9s (DAG) dans le but de cr\u00e9er une structure de donn\u00e9es massive.<\/p>\n<p>Au d\u00e9but de son d\u00e9veloppement, la structure de l\u2019algorithme occupait un espace d\u2019environ\u00a0<b>1 Go de stockage<\/b>, cependant, au fil des ann\u00e9es, son\u00a0<b>stockage<\/b>\u00a0a \u00e9t\u00e9 \u00e9tendu \u00e0\u00a0<b>4 Go ou 5 Go<\/b>. La structure de cet algorithme permet le fonctionnement du processus de minage de Hashimoto, l\u2019algorithme que nous allons aborder ensuite.<\/p>\n<p>Hashimoto est le deuxi\u00e8me algorithme de base d\u2019Ethash d\u00e9velopp\u00e9 par Thaddeus Dryja dans le but de pouvoir ajouter la\u00a0<b>r\u00e9silience ASIC<\/b>\u00a0au syst\u00e8me dans lequel il est impl\u00e9ment\u00e9, et aussi de r\u00e9aliser du hash mining. Tout cela est possible parce que l\u2019algorithme lui-m\u00eame augmente la consommation de\u00a0<b>m\u00e9moire RAM<\/b>\u00a0et limite donc les ASIC.<\/p>\n<p>De l\u2019union de ces deux algorithmes na\u00eet un autre algorithme unique qui offre la possibilit\u00e9 de concevoir un nouveau syst\u00e8me minier si complexe que les mineurs ASIC ne peuvent le\u00a0<b>mettre en \u0153uvre efficacement<\/b>. En fait, sa structure est si avanc\u00e9e que de nombreux d\u00e9veloppeurs tentent de l\u2019impl\u00e9menter comme une option\u00a0<b>alternative \u00e0 Scrypt<\/b>. Cependant, Dragger-Hashimoto n\u2019a pas toujours \u00e9t\u00e9 ce qu\u2019il est aujourd\u2019hui. Comme tout le reste, il pr\u00e9sentait plusieurs d\u00e9fauts qui en ont fait l\u2019<b>algorithme qu\u2019il est aujourd\u2019hui<\/b>. Nous allons maintenant voir comment cela fonctionne.<\/p>\n<div id=\"image_914657149\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img fetchpriority=\"high\" decoding=\"async\" class=\"attachment-large size-large\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Qu%C3%A9-es-Ethash1.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Qu\u00e9-es-Ethash1.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Qu\u00e9-es-Ethash1-300x205.jpg 300w\" alt=\"Qu\u00e9-es-Ethash\" width=\"768\" height=\"526\" \/><\/div>\n<\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"comment_fonctionne_ethash\"><\/span><b>Comment fonctionne Ethash?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Le fonctionnement d\u2019Ethash est compl\u00e8tement diff\u00e9rent du fonctionnement de base de l\u2019algorithme sur lequel il est bas\u00e9, Dragger-Hashimoto. Toutefois, certaines caract\u00e9ristiques fondamentales restent en place.<\/p>\n<p>Au d\u00e9but de l\u2019algorithme, il cr\u00e9e une\u00a0<b>graine<\/b>\u00a0calcul\u00e9e \u00e0 travers les en-t\u00eates de blocs jusqu\u2019au d\u00e9but du minage.<\/p>\n<p>La graine pr\u00e9c\u00e9dente est ensuite utilis\u00e9e pour calculer et cr\u00e9er un cache\u00a0<b>pseudo-al\u00e9atoire d\u2019une taille exacte de 16 Mo<\/b>. Une fois cr\u00e9\u00e9, il est utilis\u00e9 pour cr\u00e9er un ensemble de donn\u00e9es qui occupe plus de\u00a0<b>4 Go<\/b>. Ces donn\u00e9es constituent ce que nous appelons le\u00a0<b>\u00ab\u00a0DAG\u00a0\u00bb<\/b>.<\/p>\n<p>Le DAG est mis \u00e0 jour tous les\u00a0<b>30 000 blocs<\/b>, variant pour chaque<b>\u00a0saison<\/b>\u00a0mini\u00e8re. Le processus d\u2019extraction commence par la\u00a0<b>cr\u00e9ation<\/b>\u00a0du\u00a0<b>DAG<\/b>. Pendant le minage, des valeurs al\u00e9atoires sont prises dans le DAG et elles sont\u00a0<b>combin\u00e9es<\/b>\u00a0avec les donn\u00e9es fournies par le r\u00e9seau et le reste des transactions pour \u00eatre\u00a0<b>v\u00e9rifi\u00e9es<\/b>. Pour la phase finale, la\u00a0<b>v\u00e9rification\u00a0<\/b>est effectu\u00e9e par un\u00a0<b>processus<\/b>\u00a0qui g\u00e9n\u00e8re certaines parties de l\u2019ensemble de donn\u00e9es pr\u00e9c\u00e9dent en utilisant la\u00a0<b>m\u00e9moire cache<\/b>\u00a0pour acc\u00e9l\u00e9rer le processus.<\/p>\n<p>Ethash est pass\u00e9 par\u00a0<b>23 versions de son algorithme<\/b>\u00a0pour arriver \u00e0 la fa\u00e7on dont il fonctionne aujourd\u2019hui. Cependant, certains aspects n\u2019ont pas chang\u00e9, comme l\u2019utilisation des fonctions Keccak-256 et\u00a0<b>Keccak-512<\/b>. Il s\u2019agit de l\u2019algorithme \u00e0 partir duquel a \u00e9t\u00e9 d\u00e9riv\u00e9 ce que nous connaissons aujourd\u2019hui comme la norme SHA-3.<\/p>\n<p>Il peut sembler que lorsque nous voyons un nombre aussi \u00e9lev\u00e9 de mises \u00e0 jour, nous pensons que les d\u00e9veloppeurs ne sont pas satisfaits ou que le projet est incomplet. Cependant, chaque mise \u00e0 jour correspond \u00e0 une\u00a0<b>solution<\/b>\u00a0aux probl\u00e8mes que l\u2019algorithme peut pr\u00e9senter. Des mises \u00e0 jour ont \u00e9t\u00e9 effectu\u00e9es pour\u00a0<b>am\u00e9liorer, s\u00e9curiser et corriger<\/b>\u00a0l\u2019algorithme, mais surtout, pour augmenter la difficult\u00e9 d\u2019<b>impl\u00e9mentation<\/b>\u00a0dans les\u00a0<b>ASIC<\/b>s. De cette fa\u00e7on, un algorithme de plus en plus\u00a0<b>convivial pour les GPU a \u00e9t\u00e9 cr\u00e9\u00e9<\/b>.<\/p>\n<div id=\"image_417276990\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img decoding=\"async\" class=\"attachment-large size-large\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Qu%C3%A9-es-Ethash2.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Qu\u00e9-es-Ethash2.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Qu\u00e9-es-Ethash2-300x205.jpg 300w\" alt=\"Qu\u00e9-es-Ethash\" width=\"768\" height=\"526\" \/><\/div>\n<\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"avantages_et_inconvenients\"><\/span><strong><b>Avantages et inconv\u00e9nients<\/b><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Comme tout syst\u00e8me informatique, Ethash pr\u00e9sente des avantages et des inconv\u00e9nients qui le diff\u00e9rencient des autres algorithmes. Les plus importants d\u2019entre eux sont \u00e9num\u00e9r\u00e9s ci-dessous:<\/p>\n<p><b>Avantages:<\/b><\/p>\n<ul>\n<li aria-level=\"1\"><b>Facile \u00e0 mettre en \u0153uvre<\/b>. Ethash est un algorithme simple, s\u00fbr et surtout pratique.<\/li>\n<li aria-level=\"1\"><b>Vitesse<\/b>. En utilisant la structure DAG en m\u00e9moire ainsi que la fonction Keccak et l\u2019utilisation du cache, Ethash devient l\u2019un des algorithmes les plus efficaces en termes de production de blocs. Par cons\u00e9quent, le r\u00e9seau\u00a0<b>Ethereum<\/b>\u00a0utilise un temps de production des blocs qui s\u2019adapte aux exigences du r\u00e9seau.<\/li>\n<li aria-level=\"1\"><b>La v\u00e9rifiabilit\u00e9<\/b>. L\u2019un des avantages par rapport aux autres algorithmes est qu\u2019avec seulement 16 Mo de RAM, nous pouvons cr\u00e9er un client l\u00e9ger capable de v\u00e9rifier les transactions rapidement et facilement. Un tel client pourrait effectuer le processus de v\u00e9rification en 30 secondes seulement.<\/li>\n<\/ul>\n<p><b>Inconv\u00e9nients:<\/b><\/p>\n<ul>\n<li aria-level=\"1\"><b>R\u00e9sistance de l\u2019ASIC.\u00a0<\/b>L\u2019un des avantages de l\u2019Ethash a \u00e9t\u00e9 bris\u00e9 en 2018 en raison du mineur cr\u00e9\u00e9 par Bitmain qui minait avec l\u2019Ethash.<\/li>\n<li aria-level=\"1\"><b>Consommation excessive de m\u00e9moire.<\/b>\u00a0Il est donc difficile de l\u2019exploiter sur des ordinateurs de faible capacit\u00e9. Sa consommation excessive provient du fait que son fonctionnement est fortement d\u00e9pendant des op\u00e9rations de RAM qui consomment une grande quantit\u00e9 de bande passante. Bien qu\u2019il s\u2019agisse d\u2019une mesure de protection contre les ASIC, elle est \u00e9galement n\u00e9cessaire pour maintenir le bon fonctionnement du syst\u00e8me. Gr\u00e2ce au cache, il est possible d\u2019effectuer une exploitation mini\u00e8re plus efficace en utilisant l\u2019espace pour les calculs.<\/li>\n<\/ul>\n<p>La\u00a0<b>difficult\u00e9<\/b>\u00a0de cet algorithme est tellement\u00a0<b>\u00e9volutive\u00a0<\/b>qu\u2019elle entra\u00eene une grande difficult\u00e9 de minage pour les mineurs du r\u00e9seau Ethereum, mettant ainsi en p\u00e9ril la s\u00e9curit\u00e9 de sa\u00a0blockchain.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Dans toute conversation sur Ethereum, vous avez peut-\u00eatre entendu parler d\u2019Ethash. C\u2019est l\u2019algorithme\u00a0qui rend\u00a0Ethereum possible. Cet algorithme fait appel \u00e0 des techniques informatiques tr\u00e8s avanc\u00e9es qui augmentent le niveau de s\u00e9curit\u00e9 du r\u00e9seau. Une autre fa\u00e7on d\u2019appeler cet algorithme est le nom\u00a0Ethash-Dagger-Hashimoto. C\u2019est le nom qu\u2019elle a adopt\u00e9 lors de sa cr\u00e9ation, mais elle a [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6950,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[198],"tags":[],"class_list":["post-9648","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blockchain-fr"],"_links":{"self":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/9648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/comments?post=9648"}],"version-history":[{"count":0,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/9648\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media\/6950"}],"wp:attachment":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media?parent=9648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/categories?post=9648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/tags?post=9648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}