Les algorithmes de minage sont les fonctions qui rendent possible la tâche de minage de crypto-monnaie. Il existe différents algorithmes, chacun avec ses propres caractéristiques adaptées aux crypto-monnaies qui les utilisent.
LLes algorithmes de minage sont les algorithmes chargés de rendre possible la extraction de crypto-monnaie. Habituellement, ces algorithmes sont fonctions de hachage cryptographiques très complexe et peut ajuster le difficulté minière. Un procédé qui sert à rendre plus ou moins difficile l'assemblage des énigmes qui doivent être résolues par les mineurs. Il s'agit d'amener les mineurs à effectuer un travail de calcul complexe qui, une fois résolu, leur permet d'accéder à une récompense pour ce travail.
Dans cet article, nous montrerons certains des algorithmes de minage les plus utilisés dans le monde des crypto-monnaies, en montrant certaines de leurs caractéristiques et potentialités.
Algorithme de minage : quels sont les plus utilisés ?
SHA-256, l'algorithme Bitcoin
SHA-256 est un algorithme cryptographique qui a commencé son histoire en tant que système de hachage de données. Fondamentalement, ce que fait SHA-256 est de prendre une quantité donnée d'informations et de la résumer en un seul bloc alphanumérique de 64 caractères qui est généré de manière déterministe. Cela signifie que si vous entrez les mêmes données une infinité de fois, vous obtiendrez la même sortie à chaque fois.
Ceci est vital pour protéger l'intégrité des données, car le moindre changement modifie complètement la sortie du hachage SHA-256. C'est pour cette raison qu'il est largement utilisé sur Internet pour protéger les documents et autres informations précieuses que vous souhaitez conserver intacts. Il convient de noter que SHA-256 n'est pas un algorithme de chiffrement, mais plutôt un algorithme d'intégrité des données et la seule façon de le vérifier est d'entrer les mêmes informations en obtenant le même résultat. De même, le processus inverse est pratiquement impossible à réaliser.
SHA-256 a été conçu par la National Security Agency (NSA) des États-Unis et publié par le National Institute of Standards and Technology (NIST) en 2001 en tant que norme d'intégrité des données. Le système peut être mis en œuvre pour être généré au moyen de CPU, de GPU, de FPGA et d'ASIC. Ainsi, le minage de Bitcoin, qui utilise SHA-256, peut se faire sur tous ces supports sans problème. Bien sûr, la puissance est différente dans chaque cas, la moindre étant celle que l'on peut obtenir dans les CPU, en passant par les FPGA, les GPU et enfin les ASIC, qui sont ceux qui dominent actuellement le minage SHA-256.
Les projets de crypto-monnaie utilisant SHA-256 comme algorithme de minage incluent Bitcoin, Bitcoin Cash, Bitcoin SV, Namecoin (utilisant le minage fusionné), RSK (minage fusionné) et Stacks (minage fusionné). Il existe de nombreux autres projets qui utilisent SHA-256, mais la plupart d'entre eux sont des projets sans aucune innovation et donc de peu de valeur au sein de la communauté.
Ethash, "l'algorithme Ethereum"
Ethash était l'algorithme de minage Proof of Work d'Ethereum. La preuve de travail sur Ethereum a été complètement désactivée avec The Merge, et maintenant Ethereum est sécurisé à l'aide d'une preuve de participation à la place.
Il s'agissait de la fonction de hachage conçue pour Ethereum et l'une de ses principales caractéristiques était son besoin élevé en mémoire grâce à l'utilisation d'un DAG étendu pour le minage. En principe, Ethash a été conçu pour empêcher l'extraction d'ASIC. Cependant, le coût de la mémoire était si élevé que l'extraction d'Ethash était toujours possible avec les GPU, où les GPU bénéficient de la grande quantité de mémoire dont ils disposent, ce qui facilite la création du DAG pour l'extraction.
Ethash s'appuyait sur une fonction appelée Keccak ou SHA-3, en plus d'utiliser des versions des hachages Dagger-Hashimoto, de sorte que l'algorithme était initialement connu sous le nom de Dagger-Hashimoto et a ensuite changé son nom en Ethash.
Scrypt, la fonction cryptographique la plus complète
Scrypt est une fonction de hachage/chiffrement conçue par le célèbre développeur FreeBSD Colin Percival. La fonctionnalité a été conçue pour faire partie d'un produit commercial qu'il avait créé appelé goudron, dont le but est de créer des sauvegardes de données à distance pour les utilisateurs et les entreprises. Tarsnap est un produit connu pour sa très haute sécurité et sa rapidité, ce dans quoi Scrypt joue un rôle fondamental.
Scrypt est une fonction de hachage extrêmement optimisée conçue pour traiter de grandes quantités de données, offrir des garanties cryptographiques d'intégrité et également faciliter la récupération des données si nécessaire. Sa capacité à effectuer un cryptage et un décryptage sécurisés ajoute des fonctionnalités supplémentaires que les autres fonctions de hachage n'ont pas, c'est pourquoi Scrypt est considéré comme l'une des fonctions les plus complètes et les plus sécurisées qui existent, en plus d'être une implémentation de logiciel libre, grâce à sa licence BSD 2. Scrypt est un algorithme qui peut être exploité à l'aide d'implémentations pour les CPU, les GPU, les FPGA et les ASIC, ces derniers étant les plus puissants.
Parmi les principales crypto-monnaies qui utilisent Scrypt comme fonction de minage figurent Litecoin et Dogecoin.
X11, l'algorithme Dash
L'algorithme de minage X11 n'est pas réellement un algorithme de hachage, mais l'union de 11 d'entre eux qui sont appliqués en série afin que le hachage final soit obtenu à la fin. L'idée derrière sa création est d'assurer la sécurité complète des hachages résultants et d'ajouter une certaine complexité qui empêchera la création d'ASIC centralisant le minage.
Il vaut la peine de dire que la première idée est considérée par de nombreux spécialistes de la cryptographie, comme une absurdité complète. En effet, de nombreux algorithmes utilisés dans X11 n'ont même pas de vérification formelle de leur fonctionnement. Cela fragilise la sécurité du système en pariant sur un schéma de "sécurité par obscurité", puisque cette obscurité est l'absence de tests cryptographiques spécifiques qui garantissent que ces fonctions sont réellement sécurisées.
Alors que la deuxième idée d'offrir une résistance ASIC était vraie, il n'a pas fallu longtemps aux développeurs d'ASIC pour surmonter ce défi et commencer à proposer des ASIC pour X11. En réponse, les développeurs ont commencé à créer des variantes de l'algorithme X11 qui empêchaient l'extraction ASIC jusqu'à ce qu'une future mise à jour du micrologiciel remette les machines en marche. De ces efforts improductifs, des dérivés tels que X13 (appliquant 13 fonctions de hachage différentes), X15 et même X17 sont nés.
L'algorithme X11 a été conçu par Evan Duffield, le créateur de Dash, étant la première crypto-monnaie à utiliser X11 et la seule devise de toute valeur à l'utiliser.
Equihash, un algorithme basé sur un problème mathématique complexe
Equihash a été créé grâce au travail d'Alex Biryukov et Dmitry Khovratovich, qui ont cherché à créer un algorithme de hachage qui offrirait une résistance au minage ASIC. Pour y parvenir, Biryukov et Khovratovich ont utilisé un curieux problème mathématique sur lequel ils ont conçu leur fonction de hachage : le "Birthday Problem" et les résultats de leurs travaux ont été présentés en 2016 à l'Université du Luxembourg. Ce projet était dirigé par un groupe appelé CryptoLUX, dont ils faisaient partie dans le Symposium sur la sécurité des réseaux et des systèmes distribués 2016 à San Diego.
Le "problème d'anniversaire" nous dit que :
Sur un groupe de 23 personnes, il y a 50,7 % de chances qu'au moins deux d'entre elles aient leur anniversaire le même jour. Pour 57 personnes ou plus, la probabilité est supérieure à 99,666 %. Ce n'est pas à proprement parler un paradoxe puisque ce n'est pas une contradiction logique.
Cependant, c'est une vérité mathématique qui contredit l'intuition commune. Beaucoup de gens pensent que la probabilité est beaucoup plus faible et qu'il faut beaucoup plus de personnes pour atteindre la probabilité de 50,666 %. Si une pièce comptait 367 personnes, selon le principe du pigeonnier, nous savons qu'il y aurait au moins deux personnes ayant leur anniversaire à la même date, car une année normale compte 365 jours et une année bissextile en compte 366.
Sur cette base, la fonction Equihash conduit les ordinateurs à effectuer des opérations gourmandes en mémoire qui rendent difficile le calcul parallèle. En effet, il est extrêmement coûteux de créer des ASIC avec de grandes quantités de mémoire à haute vitesse et à large bande passante.
En conséquence, Equihash est l'un des algorithmes résistants aux ASIC les plus problématiques. En fait, même aujourd'hui, cet algorithme représente tout un défi pour les ASIC (qui ont finalement réussi à surmonter la résistance), car ils ne sont pas capables d'atteindre des niveaux élevés de solutions au problème, ce qui rend ces appareils assez peu économes en énergie, bien que beaucoup plus rapides que leurs homologues CPU, FPGA et GPU.
La principale devise qui utilise cet algorithme est le Zcash, bien qu'il soit également utilisé par Bitcoin Gold et Komodo.
Cryptonight, le premier algorithme pour pièces anonymes
CryptoNight est un algorithme unique pour une raison bien connue dans la communauté : il est destiné à faciliter la création de pièces anonymes. En fait, la personne (ou le groupe de personnes) qui a construit l'algorithme est un mystère complet, au même titre que Satoshi Nakamoto. Différents utilisateurs affirment que le créateur de CryptoNote (l'algorithme de consensus de base pour CryptoNight) est Satoshi Nakamoto lui-même agissant sous un nouveau pseudonyme : Nicolas van Saberhagen. Pour ajouter plus de mysticisme, CryptoNote a été présenté le 12/12/12, une énigme complète que personne n'a été capable de résoudre aujourd'hui.
Dans tous les cas, CryptoNight a été développé en tant que fonction de hachage pour CryptoNote et la première pièce à l'implémenter était Bytecoin. L'algorithme est conçu dès le départ pour fournir un très haut niveau de confidentialité, d'anonymat et de résistance aux ASIC et aux GPU. Pour offrir un haut niveau de sécurité et d'anonymat, l'une de ses principales caractéristiques est sa haute résistance à l'extraction d'ASIC et de GPU, ce qui rend extrêmement difficile le développement de ces appareils.
Cependant, avec l'abandon de Bytecoin, Monero, la deuxième pièce à mettre en œuvre la fonction pour son minage, a pris les rênes du développement grâce à un groupe de développement plus large et plus spécialisé, ainsi qu'à une communauté plus active. Ainsi, Monero est devenu le principal développeur de CryptoNight et l'a constamment mis à jour pour empêcher les ASIC de lui faire des ravages. Malgré l'effort, CryptoNight a perdu la bataille et comprenant ce point, les développeurs de Monero ont annoncé qu'ils travaillaient sur son successeur, déclarant que CryptoNight serait bientôt abandonné.
Actuellement, CryptoNight est un algorithme peu utilisé et abandonné. En fait, la plupart des projets qui l'utilisent sont abandonnés.
RandomX, l'évolution de CryptoNight
La communauté Monero, voyant qu'elle avait perdu la bataille dans CryptoNight, a compris la nécessité de développer un nouvel algorithme à partir de zéro afin d'ouvrir un nouveau front pour les pièces privées.
Le résultat de tous ces efforts est RandomX. Il s'agit d'un algorithme pour les pièces de confidentialité si complexe qu'il est théoriquement impossible à mettre en œuvre dans un ASIC. En fait, il est extrêmement complexe à mettre en œuvre efficacement pour les GPU et les FPGA.
RandomX doit son fonctionnement à une implémentation qui fonctionne sur la base d'une machine virtuelle d'introspection computationnelle. Fondamentalement, RandomX crée une machine virtuelle avec certaines caractéristiques cryptographiques générées de manière aléatoire. Sur cette machine virtuelle, sa fonction cryptographique pour le minage de Monero est lancée. Tout cela rend RandomX exigeant. Il nécessite une capacité de mémoire RAM, des instructions CPU et cache, ainsi que le calcul cryptographique nécessaire à son fonctionnement, qui est basé sur AES-256, et utilise également les fonctions Blake2b et Argon2d.
L'implémentation a été si réussie que près de 3 ans après la création de l'algorithme, il n'existe toujours pas d'implémentation efficace pour les GPU et les FPGA. Et en effet, l'implémentation de l'ASCI est encore théoriquement impossible. Tout cela finit par rendre l'utilisation de ces outils irréalisable, amenant tout le monde à miner avec le CPU, le but de RandomX.
CuckooCycle, Cuckaroo et Beam, extraction de GPU et de pièces privées
CuckooCycle est un algorithme de minage PoW utilisé par le projet Aeternity. L'algorithme est destiné à être utilisé sur les GPU, où il est efficace et résistant au minage ASIC. CuckooCycle est gourmand en mémoire et nécessite au moins 4 Go de RAM GPU pour démarrer le processus de minage. Pour le moment, aucun ASIC ne fonctionne sur cet algorithme et la seule devise pertinente qui l'utilise est L'opportunité.
De son côté, Cuckaroo est un algorithme de minage utilisé par les pièces de confidentialité comme sourire y MimbleWimble. L'algorithme est destiné à être utilisé sur les GPU et à résister au minage ASIC. Cependant, l'algorithme a subi plusieurs mises à jour, car bon nombre de ses anciennes itérations ne sont plus considérées comme résistantes aux ASIC. Cela a conduit à la création de variantes telles que Cuckarood29, Cuckatoo31 ou Cuckatoo32, qui cherchent à résoudre ce problème.
Enfin, Beam est l'algorithme de minage utilisé par la crypto-monnaie privée Faisceau. Cet algorithme est un dérivé d'Equihash et est conçu pour être utilisé sur les GPU. En termes de Beam mining, les cartes Nvidia affichent les meilleurs résultats, bien que la différence avec les GPU AMD soit minime et que l'efficacité énergétique de ces derniers soit bien supérieure.