Le hash : élément clé dans les jetons

Le processus de hashing consiste à générer une sortie de taille fixe à partir d'une entrée variable. Cela se fait par le biais de formules mathématiques appelées fonctions hash, mises en œuvre sous forme d'algorithmes.

Dans le domaine des cryptomonnaies, les fonctions hash cryptographiques sont fondamentales. Grâce à elles, les blockchain et d'autres systèmes décentralisés atteignent des niveaux élevés d'intégrité et de sécurité des données.

Les fonctions hash conventionnelles ainsi que les fonctions hash cryptographiques sont déterministes. Cela signifie que, si l'entrée ne change pas, l'algorithme produira toujours la même sortie ( également appelée digest ou hash).

En général, les algorithmes hash dans les cryptomonnaies sont conçus comme des fonctions à sens unique, ce qui implique qu'ils ne peuvent pas être facilement inversés sans une énorme quantité de temps et de ressources informatiques. Autrement dit, il est facile d'obtenir la sortie à partir de l'entrée, mais très complexe de faire le contraire. Plus il est difficile de trouver l'entrée, plus l'algorithme est considéré comme sécurisé.

Fonctionnement d'une fonction hash

Chaque fonction hash produit des résultats de taille spécifique, qui est constante pour chaque algorithme. Par exemple, SHA-256 génère toujours des sorties de 256 bits, tandis que SHA-1 produit des résumés de 160 bits.

Pour l'illustrer, appliquons l'algorithme SHA-256 ( utilisé dans Bitcoin ) aux mots "Gate" et "Gate":

SHA-256

Entrée

Sortie (256 bits)

Gate

8a83f205f3c314f629e3a0128f5f404cfd44b9a95da6d9f1a7b9f50d1f1b3b34

Gate

7f7e4cf2eb50a0ea9d71edc37d6a1e74cf5e9348f7f9a0321b95e0a8e4097b3e

Observons qu'un changement minimal (la majuscule initiale) entraîne un hash complètement différent. Cependant, en utilisant SHA-256, les sorties auront toujours 256 bits (64 caractères), peu importe la taille d'entrée. De plus, peu importe combien de fois nous traitons ces mots, les résultats resteront constants.

En contraste, si nous appliquons l'algorithme SHA-1 aux mêmes entrées, nous obtiendrions :

SHA-1

Entrée

Sortie (160 bits)

Gate

3e2a7fe40ac63dbe0a46a6931c74c1d4e6b7447d

Gate

c1b7368da4b8ef83dbf7ca3d3c3d17e65d799708

Il est important de souligner que SHA signifie Secure Hash Algorithms, faisant référence à un ensemble de fonctions de hachage cryptographiques qui inclut SHA-0, SHA-1, et les groupes SHA-2 et SHA-3. SHA-256 appartient au groupe SHA-2, avec SHA-512 et d'autres variantes. Actuellement, seuls les groupes SHA-2 et SHA-3 sont considérés comme sûrs.

Importance du hashing

Les fonctions hash conventionnelles ont diverses utilisations, telles que la recherche dans des bases de données, l'analyse de fichiers volumineux et la gestion de l'information. D'autre part, les fonctions hash cryptographiques sont largement utilisées en sécurité informatique, authentification des messages et génération d'empreintes digitales. Dans Bitcoin, elles sont essentielles pour le processus de minage et la création de nouvelles adresses et clés.

Le véritable potentiel du hashing se manifeste lorsqu'il s'agit de gérer de grands volumes de données. Par exemple, il est possible de traiter un fichier ou un ensemble de données volumineux à l'aide d'une fonction hash et d'utiliser sa sortie pour vérifier rapidement l'exactitude et l'intégrité des informations. Cela est possible grâce à la nature déterministe des fonctions hash : la même entrée produira toujours une sortie condensée identique. Cette technique élimine la nécessité de stocker et de "se souvenir" de grandes quantités d'informations.

Le hashing est particulièrement utile dans la technologie blockchain. La chaîne de blocs de Bitcoin implique de nombreuses opérations de hash, principalement dans le processus de minage. En fait, presque tous les protocoles de cryptomonnaies reposent sur le hashing pour lier et condenser des groupes de transactions en blocs, ainsi que pour créer des liens cryptographiques entre les blocs, formant ainsi effectivement une chaîne.

Fonctions de hash cryptographiques

Une fonction hash qui implémente des techniques cryptographiques est appelée fonction hash cryptographique. En général, compromettre l'une de ces fonctions nécessite d'innombrables tentatives de force brute. Pour "inverser" une fonction hash cryptographique, il serait nécessaire de deviner l'entrée par essai et erreur jusqu'à obtenir la sortie correspondante. Cependant, il existe la possibilité que différentes entrées produisent exactement le même résultat, ce qui est connu sous le nom de "collision".

Techniquement, une fonction de hashage cryptographique doit satisfaire à trois propriétés pour être considérée comme effectivement sécurisée : résistance aux collisions, résistance à la préimage et résistance à la seconde préimage.

Résumé ces propriétés en trois phrases concises :

  • Résistance aux collisions : il n'est pas viable de trouver deux entrées distinctes qui génèrent le même hash en sortie.

  • Résistance à la préimage : il n'est pas faisable d'"inverser" la fonction hash ( pour trouver l'entrée d'une sortie déterminée ).

  • Résistance à la seconde préimage : il n'est pas possible de trouver une seconde entrée qui entre en collision avec une entrée spécifique.

Résistance aux collisions

Une collision se produit lorsque différentes entrées produisent exactement le même hash. Une fonction de hachage est considérée comme résistante aux collisions jusqu'à ce que quelqu'un en trouve une. Il est important de noter qu'il y aura toujours des collisions pour n'importe quelle fonction de hachage, car les entrées possibles sont infinies, tandis que les sorties sont finies.

En pratique, une fonction hash est résistante aux collisions lorsque la probabilité d'en trouver une est si faible qu'elle nécessiterait des millions d'années de calculs. Ainsi, bien qu'il n'existe pas de fonctions hash exemptes de collisions, certaines sont suffisamment robustes pour être considérées comme résistantes (par exemple, SHA-256).

Parmi les algorithmes SHA, les groupes SHA-0 et SHA-1 ne sont plus considérés comme sûrs en raison de la découverte de collisions. Actuellement, les groupes SHA-2 et SHA-3 sont considérés comme résistants aux collisions.

Résistance à la préimage

La propriété de résistance à la préimage est liée au concept de fonctions à sens unique. Une fonction hash est considérée comme résistante à la préimage lorsqu'il existe une probabilité très faible que quelqu'un trouve l'entrée qui a généré une sortie particulière.

Cette propriété diffère de la précédente, car ici un attaquant tenterait de deviner l'entrée en observant une sortie spécifique. Une collision, en revanche, se produit lorsque deux entrées différentes génèrent la même sortie, peu importe quelles entrées ont été utilisées.

La résistance à la préimage est précieuse pour protéger les données, car un simple hash d'un message peut prouver son authenticité sans révéler l'information originale. Dans la pratique, de nombreux fournisseurs de services et applications web stockent et utilisent des hashes générés à partir de mots de passe au lieu de mots de passe en clair.

Résistance à la seconde préimage

En simplifiant, on peut dire que la résistance à la seconde préimage se situe à un point intermédiaire entre les deux autres propriétés. Une attaque de seconde préimage se produit lorsque quelqu'un parvient à trouver une entrée spécifique qui génère la même sortie qu'une autre entrée déjà connue.

En d'autres termes, une attaque de seconde préimage implique de trouver une collision, mais au lieu de rechercher deux entrées aléatoires qui génèrent le même hash, on cherche une entrée qui produise le même hash généré par une autre entrée spécifique.

Par conséquent, toute fonction hash résistante aux collisions le sera également aux attaques de seconde préimage, car ces dernières impliqueront toujours une collision. Cependant, une attaque de préimage peut encore être réalisée sur une fonction résistante aux collisions, car elle implique de trouver une seule entrée à partir d'une seule sortie.

Minage

Le processus de minage de Bitcoin implique de nombreuses étapes utilisant des fonctions hash, telles que la vérification des soldes, le lien des entrées et des sorties des transactions, et la condensation des transactions en un bloc pour former un arbre de Merkle. Cependant, l'une des principales raisons pour lesquelles la blockchain de Bitcoin est sécurisée est que les mineurs doivent effectuer une énorme quantité d'opérations de hash pour trouver une solution valide pour le prochain bloc.

Specifiquement, un mineur doit tester différentes entrées lors de la création d'une valeur hash pour son bloc candidat. Ils ne pourront valider leur bloc que s'ils génèrent un hash de sortie qui commence par un certain nombre de zéros. Le nombre de zéros détermine la difficulté de la minage et varie en fonction du hash rate dédié au réseau.

Dans ce contexte, le hash rate représente combien de puissance de calcul est investie dans le minage de Bitcoin. Si le hash rate du réseau augmente, le protocole Bitcoin ajustera automatiquement la difficulté de minage pour maintenir le temps moyen nécessaire pour miner un bloc proche de 10 minutes. Au contraire, si plusieurs mineurs arrêtent de miner, provoquant une chute significative du hash rate, la difficulté de minage sera ajustée, facilitant le minage ( jusqu'à ce que le temps moyen de bloc revienne à 10 minutes ).

Il est important de souligner que les mineurs n'ont pas besoin de trouver des collisions, car il existe plusieurs hashes qui peuvent générer comme sortie valide ( commençant par un certain nombre de zéros ). Par conséquent, il y a plusieurs solutions possibles pour un bloc donné, et les mineurs n'ont besoin de trouver qu'une seule d'entre elles, selon le seuil établi par la difficulté de minage.

Étant donné que le minage de Bitcoin est une tâche coûteuse, les mineurs n'ont pas d'incitatifs à tromper le système, car cela entraînerait des pertes financières significatives. Plus il y a de mineurs qui rejoignent une blockchain, plus elle devient grande et robuste.

Réflexions finales

Il ne fait aucun doute que les fonctions hash sont des outils fondamentaux en informatique, en particulier lorsqu'il s'agit de grands volumes de données. Lorsqu'elles sont combinées avec la cryptographie, les algorithmes hash deviennent polyvalents et offrent sécurité et authentification de diverses manières. C'est pourquoi les fonctions hash cryptographiques sont vitales pour presque tous les réseaux de cryptomonnaies, et comprendre leurs propriétés et mécanismes de fonctionnement est sans aucun doute utile pour quiconque s'intéresse à la technologie blockchain.

EL0.21%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)