L'algorithme de minage CryptoNight est un algorithme de minage considéré comme particulièrement efficace pour le processeur et résistant aux ASIC. Ceci dans le but de permettre une plus grande décentralisation de l'extraction des crypto-monnaies qui l'appliquent, mais aussi de permettre auxdites crypto-monnaies d'offrir des options avancées de confidentialité et d'anonymat.
Uaucun des algorithmes de minage les plus populaires n'est CryptoNight. Cet algorithme de minage fait partie du protocole de consensus bien connu CryptoNote. CryptoNight utilise le schéma de minage de Preuve de travail (PoW) pour son fonctionnement, et cherche à offrir une forte dépendance à Processeur, résistant au ASIC, FPGA y GPU.
Sa principale caractéristique est qu'il s'agit d'un algorithme de hachage trés rapide. Il permet également une bonne évolutivité et effectue une série de tests cryptographiques extrêmement dépendants de la mémoire cache des processeurs CPU. Mais pas seulement cela, son noyau ou noyau cryptographique fonctionne autour de l'algorithme de cryptage AES, un algorithme très sécurisé et même considéré, dans certaines versions, comme un cryptage de niveau militaire.
Tout cela fait de CryptoNight un algorithme de minage très axé sur la sécurité et qui a été son principal vecteur de succès dans le monde de la cryptographie. En fait, le fait que la crypto-monnaie Monero l'a choisi comme algorithme de hachage pour la preuve de travail du consensus de sa blockchain, il a augmenté la visibilité de CryptoNight et lui a ouvert un espace dans le monde de la crypto.
Maintenant, quelle est l'histoire derrière CryptoNight? Comment fonctionne cet algorithme intéressant? Comme toujours, vous pouvez obtenir les réponses à ces questions et à d'autres ci-dessous.
Origine de l'algorithme CryptoNight
Le développement de CryptoNight remonte à Décembre 12 2012, lorsque le développeur Nicolas van Saberhagen a présenté le protocole de consensus au monde CryptoNote. Nicolas van Saberhagen, est un nom fictif et l'identité du développeur est une énigme complète, au point qu'elle rivalise avec celle de Satoshi Nakamoto. En réalité, de nombreux spécialistes pensent que Nicolas van Saberhagen et Satoshi Nakamoto sont la même personne. D'où le nom Satoshi van Saberhagen est né, en référence à ce fait possible.
Mais loin du domaine de la spéculation, CryptoNote est une réalité. Le lancement de ce protocole à une date aussi marquante (pour être précis, 12/12/12) a retenu l'attention de la communauté crypto. En effet, CryptoNote présentait des fonctionnalités avancées qui promettaient des choses comme transactions confidentielles. Plus des transactions non liées, des signatures en anneau, des transactions plus petites et une sécurité améliorée.
Plus tard en mars 2013, le Spécifications complètes de CryptoNight, l'algorithme de minage qui ferait de CryptoNote une réalité. Derrière ce développement se trouvent les développeurs Seigen, Max Jameson, Tuomo Nieminen, Neocortex et Antonio M. Juarez.
Le projet CryptoNote et son algorithme de minage ont été initialement repris par Bytecoin (BCN) qui l'a appliqué à leur blockchain. Mais ce n'est qu'à la création de Monero (XMR) que ce projet a commencé à être largement connu dans le monde de la crypto.
Comment fonctionne CryptoNight
CryptoNight fonctionne sur la base d'un certain nombre de propriétés qui le rendent très convivial pour l'extraction de GPU. Ces propriétés sont:
- Il utilise le cryptage AES natif. Les processeurs dotés de capacités d'accélération matérielle pour les calculs AES peuvent grandement bénéficier de ce fait et ont un potentiel de minage supérieur.
- Utilisation de fonctions de hachage sécurisées, telles que Keccak et Blake-256.
- Il utilise un ensemble de multiplicateurs 64 bits rapides. Pour cette raison, les architectures de processeur 64 bits pures sont très efficaces. Il est également possible de l'utiliser sur des CPU du type VLIW 128 à 512 bits, où l'algorithme pourrait tirer parti des pools de minage parallèles en augmentant les performances.
- Utilisation intensive des caches CPU. L'algorithme de CryptoNight ajuste son utilisation du cache pour en tirer le meilleur parti. En fait, plus le processeur a de cache, meilleures sont ses performances.
Si nous regardons ces quatre piliers, nous verrons qu'ils sont tous très centrés sur le processeur. En fait, certaines de ces fonctions sont beaucoup plus efficaces sur un CPU que sur toute autre structure de calcul, y compris les ASIC. C'est ce qui permet à CryptoNight de leur résister.
Mais bien sûr, ce ne sont que les piliers et non la façon dont l'algorithme fonctionne, nous l'expliquerons ci-dessous.
Démarrer le système de hachage
Le travail de CryptoNight commence par l'initialisation de votre espace de travail. Pour cela, CryptoNight utilise une série de primitives cryptographiques qui sont:
- Cryptage AES
- Fonction de hachage Keccak, qui est utilisée comme véhicule principal pour la génération de hachage dans l'algorithme.
- Fonction de hachage SHA-3. SHA-3 est une fonction de hachage dérivée de Keccak, et est utilisée en conjonction avec BLAKE-256, Groestl-256, JH-256 et Skein-256 pour renforcer la génération de hachages d'espace de travail cryptographiques CryptoNight.
Création de la clé AES et chiffrement du hachage Keccak
La partie la plus importante du processus est la création de la clé AES. Ceci est possible lors du premier tour de fonctions de hachage. Tout d'abord, CryptoNight prend une entrée de données et l'amène à la fonction Keccak. Pour ce faire, préparez une fonction Keccak-1600 de 1600 bits de large. En comparaison, Bitcoin et sa fonction de hachage SHA-256 utilisent des mots de 256 bits ou 64 caractères. Alors que Keccak-1600 produit des hachages beaucoup plus gros, 1600 bits ou 400 caractères dans leur intégralité, avec une taille de 200 octets.
Il prend ensuite les 31 premiers octets de ce hachage Keccak-1600 et les transforme en clé de cryptage pour un algorithme AES-256, la valeur la plus élevée de la famille AES. Pour cela, ce petit morceau de données est chiffré en dix tours. Le reste du hachage est crypté à l'aide de AES-256 et passe également par une série de 10 cycles de cryptage.
Le reste des informations est ensuite extrait du hachage Keccak et chiffré à l'aide de AES-256. Ce processus génère une énorme quantité de données qui sont ensuite envoyées à l'espace de travail ou au bloc-notes CryptoNight. À la fin de ce processus, l'espace de travail CryptoNight a été préparé et le cycle de génération de hachage commence.
Génération de hachage finale
Désormais, les données collectées par ces actions alimentent le cœur des fonctions de hachage. Comme nous l'avons dit, le principal est Keccak, qui est rejoint par BLAKE-256, Groestl-256, JH-256 et Skein-256.
Ce que fait CryptoNight, c'est de prendre l'ensemble de données créé par les fonctions AES-256 et Keccak à l'étape précédente, et de le transmettre au reste des fonctions de hachage. À la fin, vous obtenez un hachage final, qui est le résultat de la preuve de travail de CryptoNight. Ce hachage a une longueur de 256 bits ou un total de 64 caractères.
Avantages et inconvénients de l'algorithme
Avantages
- Hautement personnalisable. Les données telles que la cible de minage et la difficulté peuvent être ajustées entre les blocs sans qu'elles ne présentent un danger pour la sécurité du réseau.
- Il se concentre sur le processeur. Cela rend l'exploitation minière à l'aide d'ASIC complexe et coûteuse à réaliser.
- Il est extrêmement sécurisé au niveau cryptographique. L'utilisation d'AES-256 et l'union des techniques de chiffrement et des fonctions de hachage d'une manière spécifique garantissent qu'un niveau élevé de sécurité sera toujours obtenu.
- Il est économe en énergie et en termes de calcul.
- Pour le niveau de sécurité fourni, la taille des résultats des tests cryptographiques de CryptoNight est petite. Cela permet de maximiser le nombre de transactions au sein des blocs.
- Compte tenu de la manière dont CryptoNight gère les informations pour extraire les blocs, il est possible de créer des transactions non traçables de manière native.à. En fait, Monero a pu construire ces transactions grâce à CryptoNight.
Inconvénients
- La capacité de résistance ASIC n'est plus possible. En effet, les ASIC ont su s'adapter au mien pour cet algorithme avec une grande efficacité.
- CryptoNight est un algorithme extrêmement complexe et difficile à auditer. Pour cette raison, les développeurs ont une grande courbe de complexité pour vérifier les erreurs possibles dans cet algorithme.
- L'utilisation d'instructions CPU spécifiques comme AES peut conduire à une attaque latérale de l'algorithme. Il existe la possibilité d'exploiter des vulnérabilités au sein du processeur (comme le cas de TSX ou des failles telles que Spectre/Meltdown) qui peuvent casser la sécurité de l'algorithme et ainsi miner la sécurité de la blockchain qui utilise cet algorithme de minage.
Que savez-vous, cryptonuta?
L'abandon du développement de CryptoNight signifie-t-il qu'il ne s'agit plus d'un algorithme sécurisé?VRAI!
L'abandon de CryptoNight au profit de RandomX by Monero (la principale communauté de développement), fera progressivement de CryptoNight un algorithme dangereux. Si une vulnérabilité ou une faille est découverte, elle ne peut pas être corrigée et à la place, certains projets qui utilisent CryptoNight feront sûrement le saut à partir d'autres protocoles plus sécurisés avec une maintenance active.
Évolution de CryptoNight
CryptoNight est l'un des rares algorithmes cryptographiques à avoir subi de grandes quantités de modifications tout au long de son histoire. Depuis la sortie de la version 1, démontrée dans son whitepaper, jusqu'à la création de CryptoNight-R, la dernière version de CryptoNight développée par Monero.
Malgré cela, les changements et les nouvelles versions de CryptoNight visent à empêcher l'extraction ASIC de ruiner les efforts de l'algorithme pour offrir une résistance. Mais chaque nouveau changement dans la structure à cette fin ajoute plus de complexité et plus de points de défaillance. C'était la principale raison pour laquelle son développement a été arrêté (du moins par Monero, son membre le plus important de la communauté).
Donc pour le moment on peut dire que CryptoNight est un algorithme qui a atteint le sommet de son évolution pour empêcher les ASIC d'exploiter ouvertement cet algorithme.
Blockchains qui utilisent l'algorithme
Bytecoin (BTN) est la première blockchain à utiliser CryptoNight. La prochaine blockchain à l'utiliser était Monero, et en fait, c'est là que cet algorithme a été le plus développé. Cependant, Monero a abandonné cet algorithme au profit de AléatoireX, une évolution complète de CryptoNight qui est hautement résistante aux ASIC, et le restera pendant au moins longtemps.
Une autre blockchain utilisée par CryptoNight est Electroneum (ETN), qui est conçue pour que les appareils mobiles puissent servir de nœuds complets et de nœuds miniers.