Qu'est-ce que le hachage? [Step-by-Step Guide-Under Hood Of Blockchain] – crypto investissement

Carte de paiement Crypto

Demandez votre Carte de paiement Crypto ici

Recevez 8 € de BTC gratuitement

Inscrivez-vous à CoinBase









Actualité cryptomonnaie


Alors, qu'est-ce que le hachage?

TLDR:

  1. Le hachage génère une ou plusieurs valeurs d'une chaîne de texte à l'aide d'une fonction mathématique.
  2. Le hachage est un moyen de permettre Sécurité pendant le processus de transmission du message lorsque le message est destiné à un destinataire particulier uniquement. Une formule génère le hachage, ce qui aide à protéger la transmission contre toute manipulation frauduleuse.

Il est important de savoir comment fonctionne le blockchain Hashing. Pour ce faire, cependant, nous devons d'abord comprendre l'un des principes fondamentaux qui entrent dans blockchain création. La technologie de la blockchain est l’une des découvertes les plus novatrices et déterminantes du siècle dernier. Vu l’influence qu’elle a eue ces dernières années et l’impact qu’elle aura sur l’avenir, il n’est certainement pas exagéré de dire cela. Afin de comprendre comment divers crypto-monnaies comme Ethereum et Bitcoin une fonction.

Alors qu'est-ce que le hashage?


En termes simples, le hachage consiste à prendre une chaîne d’entrée de toute longueur et à donner un sortie d'une longueur fixe. Dans le contexte de crypto-monnaies telles que Bitcoin, les transactions sont prises en entrée et exécutées via un algorithme de hachage (Bitcoin utilise SHA-256) qui donne une sortie de longueur fixe.

Voyons comment fonctionne le processus de hachage. Nous allons mettre dans certaines entrées. Pour cet exercice, nous allons utiliser le SHA-256 (Algorithme de hachage sécurisé 256).

Qu'est-ce que le hachage? Sous le capot de Blockchain

Comme vous pouvez le voir, dans le cas de SHA-256quelle que soit la taille de votre entrée, la sortie aura toujours une longueur fixe de 256 bits. Cela devient critique lorsque vous traitez avec une quantité énorme de données et de transactions. Ainsi, au lieu de garder en mémoire les données d'entrée qui pourraient être énormes, vous pouvez simplement vous souvenir du hachage et garder une trace. Avant d'aller plus loin, nous devons d'abord voir les différentes propriétés des fonctions de hachage et leur implémentation dans la blockchain.

Fonctions de hachage cryptographique

Une fonction de hachage cryptographique est une classe spéciale de fonctions de hachage possédant diverses propriétés, ce qui la rend idéale pour la cryptographie. Une fonction de hachage cryptographique doit posséder certaines propriétés pour pouvoir être utilisée. considéré comme sécurisé. Parcourons-les un à un.

Propriété 1: Déterministe

Cela signifie que peu importe le nombre de fois où vous analysez une entrée particulière à l'aide d'une fonction de hachage, vous obtiendrez toujours le même résultat. Ceci est essentiel car si vous obtenez des hachages différents à chaque fois, il sera impossible de garder une trace de l'entrée.

Propriété 2: calcul rapide

La fonction de hachage devrait être capable de retourner le hachage d'entrée rapidement. Si le processus n’est pas assez rapide, le système ne sera tout simplement pas efficace.

Propriété 3: résistance pré-image

Quels sont les états de résistance pré-image qui sont donnés, étant donné H (A), il est impossible de déterminer A, où A représente l'entrée et H (A) le hachage de sortie. Notez l'utilisation du mot "infaisable" au lieu du mot "impossible". Nous savons déjà que il n'est pas impossible de déterminer l'entrée d'origine à partir de sa valeur de hachage. Prenons un exemple.

Supposons que vous lancez un dé et que la sortie soit le hachage du nombre qui en sort. Comment pourrez-vous déterminer le numéro d'origine? C’est simple, il vous suffit de connaître les hachages de tous les nombres de 1 à 6 et de les comparer. Comme les fonctions de hachage sont déterministes, le hachage d'une entrée particulière sera toujours le même. Vous pouvez donc simplement comparer les hachages et trouver l'entrée originale.

Mais cela ne fonctionne que lorsque la quantité de données donnée est très inférieure. Que se passe-t-il lorsque vous avez une énorme quantité de données? Supposons que vous traitez avec un hachage de 128 bits. La seule méthode pour trouver l'entrée d'origine consiste à utiliser la «méthode de force brute». La méthode de force brute signifie essentiellement que vous devez prélever une entrée aléatoire, la hacher puis la comparer avec le hachage cible et la répéter jusqu'à ce que vous trouviez une correspondance.

Alors, qu'arrivera-t-il si vous utilisez cette méthode?

  • Le meilleur cas de scenario: Vous obtenez votre réponse du premier coup. Pour que cela se produise, vous devrez sérieusement être la personne la plus chanceuse du monde. Les chances que cela se produise sont astronomiques.
  • Pire scénario: Vous obtenez votre réponse après 2 ^ 128 – 1 fois. En gros, cela signifie que vous trouverez votre réponse à la fin de toutes les données.
  • Scénario moyen: Vous le trouverez quelque part au milieu, donc après 2 ^ 128/2 = 2 ^ 127 fois. Pour mettre cela en perspective, 2 ^ 127 = 1,7 X 10 ^ 38. En d'autres termes, c'est un nombre énorme.

Ainsi, s’il est possible de rompre la résistance de la pré-image via la méthode de la force brute, cela prend tellement de temps que cela n’a aucune importance.

Propriété 4: Petits changements dans l'entrée Change le hachage.

Même si vous faites un petit changement dans votre contribution, les changements qui seront reflétés dans le hash seront énormes. Essayons avec SHA-256:

Qu'est-ce que le hachage? Sous le capot de Blockchain

Voyez-vous cela? Même si vous venez de changer la casse du premier alphabet de l'entrée, regardez dans quelle mesure cela a affecté le hachage de sortie. C’est une fonction essentielle car cette propriété de hachage conduit à l’une des plus grandes qualités de la blockchain, son immutabilité (nous en parlerons plus tard.)

Propriété 5: résistant à la collision

Étant donné deux entrées différentes A et B où H (A) et H (B) sont leurs valeurs respectives, il est impossible que H (A) soit égal à H (B). Cela signifie que, dans la plupart des cas, chaque entrée aura son propre hachage. Pourquoi avons-nous dit «pour la plupart»? Parlons d’un concept intéressant appelé «Le paradoxe de l’anniversaire».

Quel est le paradoxe de l'anniversaire?

Si vous rencontrez des inconnus au hasard dans la rue, vos chances d’avoir le même anniversaire sont très faibles. En fait, en supposant que tous les jours de l'année aient la même probabilité d'avoir un anniversaire, les chances qu'une autre personne partage votre anniversaire est de 1/365, ce qui correspond à 0,27%. En d'autres termes, il est vraiment bas.

Cependant, cela dit, si vous réunissez 20 à 30 personnes dans une pièce, les chances de deux personnes partageant exactement le même anniversaire augmentent de façon astronomique. En fait, dans ce scénario, il y a 50% de chances que 2 personnes partagent le même anniversaire!

Qu'est-ce que le hachage? Sous le capot de Blockchain

Crédit d'image: (YouTube)

Pourquoi cela se produit-il? C'est à cause d'une simple règle de probabilité qui va comme suit. Supposons que vous avez N différentes possibilités d’événement, il vous faut alors une racine carrée de N éléments aléatoires pour avoir une chance sur 50% de collision.

Donc, en appliquant cette théorie aux anniversaires, vous avez 365 possibilités différentes pour les anniversaires, vous avez donc besoin de Sqrt (365), ce qui correspond à environ 23 ~, personnes choisies au hasard pour 50% de chances que deux personnes partagent les anniversaires.

Quelle est l'application de ceci en hachage?

Supposons que vous ayez un hachage de 128 bits avec 2 ^ 128 possibilités différentes. En utilisant le paradoxe de l'anniversaire, vous avez 50% de chances de briser la résistance aux collisions au carré (2 ^ 128) = 2 ^ 64ème instance.

Comme vous pouvez le constater, il est beaucoup plus facile de casser la résistance à la collision que celle de pré-image. Aucune fonction de hachage n'est libre de collision, mais la recherche d'une collision prend généralement beaucoup de temps. Donc, si vous utilisez une fonction telle que SHA-256, vous pouvez supposer que si H (A) = H (B), alors A = B.

Propriété 6: Puzzle Friendly

Il s’agit d’une propriété fascinante, et l’application et l’impact que cette propriété a eu sur la crypto-monnaie sont énormes (pour en savoir plus sur cela plus tard, lorsque nous aborderons l’exploration minière et cryptographique). Commençons par définir la propriété, après quoi nous détaillerons chaque terme.

Pour chaque sortie «Y», si k est choisi dans une distribution à entropie minime élevée, il est impossible de trouver une entrée x telle que H (k | x) = Y.

Cela vous a probablement traversé la tête! Mais c’est bon, comprenons maintenant ce que signifie cette définition.

Quelle est la signification de “haute min-entropie”?

Cela signifie que la distribution à partir de laquelle la valeur est choisie est tellement distribuée que nous choisissons une valeur aléatoire avec une probabilité négligeable. Fondamentalement, si on vous dit de choisir un nombre entre 1 et 5, c’est une distribution à faible entropie minime. Cependant, si vous deviez choisir un nombre compris entre 1 et un milliard de dollars, il s'agit d'une distribution à entropie min.

Que signifie “k | x”?

Le “|” dénote la concaténation. La concaténation consiste à ajouter deux chaînes ensemble. Par exemple. Si je concaténais “BLEU” et “CIEL” ensemble, le résultat sera “BLUESKY”.

Revenons maintenant à la définition.

Supposons que vous ayez une valeur de sortie “Y”. Si vous choisissez une valeur aléatoire «k» dans une distribution large, il est impossible de trouver une valeur X telle que le hachage de la concaténation de k et x donnera le résultat Y.

Encore une fois, remarquez le mot «infaisable», ce n’est pas impossible car les gens le font tout le temps. En fait, tout le processus d’extraction minière fonctionne sur ce point (nous en parlerons plus tard).

Exemples de fonctions de hachage cryptographique

  • MD 5: Il produit un hachage de 128 bits. La résistance à la collision a été cassée après ~ 2 ^ 21 hachages.
  • SHA 1: produit un hachage de 160 bits. La résistance à la collision a éclaté après ~ 2 ^ 61 hachages.
  • SHA 256: produit un hachage de 256 bits. Ceci est actuellement utilisé par Bitcoin.
  • Keccak-256: Produit un hachage sur 256 bits et est actuellement utilisé par Ethereum.

Hachage et structures de données

Une structure de données est une manière spécialisée de stocker des données. Deux propriétés de structure de données sont essentielles pour comprendre le fonctionnement d'une chaîne de blocs. Elles sont:

  1. Pointeurs.
  2. Listes liées.

Pointeurs

Les pointeurs sont des variables en programmation qui stockent l'adresse d'une autre variable. Généralement, les variables normales dans les données de magasin de langage de programmation.

Par exemple. int a = 10, signifie qu'il existe une variable “a” qui stocke des valeurs entières. Dans ce cas, il stocke une valeur entière égale à 10. Il s'agit d'une variable normale.

Les pointeurs, toutefois, au lieu de stocker des valeurs, stockeront les adresses d'autres variables. C'est pourquoi on les appelle des pointeurs, car ils désignent littéralement l'emplacement d'autres variables.

Listes liées

Une liste chaînée est l’un des éléments les plus importants des structures de données. Voici à quoi ressemble une liste chaînée:

Qu'est-ce que le hachage? Sous le capot de Blockchain

Il s'agit d'une séquence de blocs, chacun contenant des données liées au bloc suivant via un pointeur. Dans ce cas, la variable de pointeur contient l'adresse du nœud suivant et la connexion est établie. Comme vous pouvez le constater, le dernier nœud a un pointeur nul, ce qui signifie qu’il n’a aucune valeur.

Une chose importante à noter ici, le pointeur à l'intérieur de chaque bloc contient l'adresse du prochain bloc. C'est ainsi que le pointage est réalisé. Maintenant, vous vous demandez peut-être ce que cela signifie pour le premier bloc de la liste? Où reste le pointeur du premier bloc?

Le premier bloc s'appelle le «bloc de genèse» et son pointeur se situe dans le système lui-même. Cela ressemble à ceci:

Qu'est-ce que le hachage? Sous le capot de Blockchain

Courtoisie d'image: Coursera

Si vous vous demandez ce que signifie le «pointeur de hachage», nous y arriverons dans un instant.

Comme vous l'avez peut-être deviné, voici la structure de la blockchain. Une blockchain est fondamentalement une liste chaînée. Voyons à quoi ressemble la structure de la blockchain:

Qu'est-ce que le hachage? Sous le capot de Blockchain

La blockchain est une liste chaînée contenant des données et un pointeur de hachage qui pointe vers son bloc précédent, créant ainsi la chaîne. Qu'est-ce qu'un pointeur de hachage? Un pointeur de hachage est similaire à un pointeur, mais au lieu de contenir uniquement l'adresse du bloc précédent, il contient également le hachage des données à l'intérieur du bloc précédent.. Ce petit ajustement est ce qui rend les blockchains incroyablement fiables et novateurs.

Imaginez ceci pendant une seconde, un pirate informatique attaque le bloc 3 et tente de modifier les données. En raison des propriétés des fonctions de hachage, une légère modification des données modifiera radicalement le hachage. Cela signifie que toute légère modification apportée dans le bloc 3 modifiera le hachage stocké dans le bloc 2, maintenant que les données et le hachage du bloc 2 seront modifiés à leur tour, ce qui entraînera des modifications dans le bloc 1, etc. . Cela changera complètement la chaîne, ce qui est impossible. C'est exactement comme cela que les blockchains atteignent l'immuabilité.

Alors, à quoi ressemble un en-tête de bloc?

Qu'est-ce que le hachage? Sous le capot de Blockchain

Un en-tête de bloc contient:

  • Version: Le numéro de version du bloc.
  • Time: l'horodatage actuel.
  • La cible de difficulté actuelle. (Plus sur cela plus tard).
  • Hash du bloc précédent.
  • Nonce (plus sur cela plus tard).
  • Hash de la racine de Merkle.

Pour le moment, concentrons-nous sur le hachage de la racine de Merkle. Mais avant cela, nous devons comprendre ce qu'est un arbre Merkle.

Qu'est-ce qu'un arbre Merkle?

Qu'est-ce que le hachage? Sous le capot de Blockchain

Courtoisie d'image: Wikipedia

Le diagramme ci-dessus montre à quoi ressemble un arbre de Merkle. Dans une arborescence Merkle, chaque nœud non-feuille est le hachage des valeurs de leurs nœuds enfants.

Nœud Feuille: les nœuds feuille sont les nœuds du niveau le plus bas de l'arborescence. Donc, conformément au diagramme ci-dessus, les nœuds d'extrémité seront L1, L2, L3 et L4.

Qu'est-ce que le hachage? Sous le capot de Blockchain

Nœuds enfants: pour un nœud, les nœuds situés au-dessous de son niveau qui l'alimentent sont ses nœuds enfants. Dans le diagramme, les nœuds étiquetés «Hash 0-0» et «Hash 0-1» sont les nœuds enfants du nœud étiqueté «Hash 0».

Nœud racine: le nœud unique du dernier rang étiqueté «hachage supérieur» est le nœud racine.

Qu'est-ce que le hachage? Sous le capot de Blockchain

Alors, qu'est-ce qu'un arbre de Merkle a à voir avec les blockchains?

Chaque bloc contient des milliers et des milliers de transactions. Il sera très fastidieux de stocker toutes les données à l'intérieur de chaque bloc en série. Cela rendrait la recherche d'une transaction particulière extrêmement fastidieuse et longue. Si vous utilisez un arbre de Merkle, cependant, vous réduirez considérablement le temps nécessaire pour déterminer si une transaction particulière appartient ou non à ce bloc.

Voyons cela dans un exemple. Considérez l'arbre de Merkle suivant:

Qu'est-ce que le hachage? Sous le capot de Blockchain

Courtoisie d'image: Coursera

Supposons maintenant que je veuille savoir si ces données particulières appartiennent ou non au bloc:

Qu'est-ce que le hachage? Sous le capot de Blockchain

Au lieu de passer par le processus fastidieux consistant à examiner chaque hachage et à déterminer s'il appartient ou non aux données, je peux simplement le localiser en suivant la trace des hachages menant aux données:

Qu'est-ce que le hachage? Sous le capot de Blockchain

Cela réduit considérablement le temps pris.

Hashing in mining: les énigmes cryptographiques.

Lorsque nous disons «exploitation minière», cela signifie fondamentalement la recherche d’un nouveau bloc à ajouter dans la blockchain. Les mineurs du monde entier travaillent sans cesse pour que la chaîne continue à se développer. Auparavant, il était facile pour les gens d'exploiter leurs mines à l'aide de leur ordinateur portable, mais au fil du temps, ils ont commencé à constituer des bassins miniers pour mettre en commun leurs pouvoirs informatiques et les mines plus efficacement.

Ceci, cependant, aurait pu être un problème. Il y a un plafond pour chaque crypto-monnaie, par exemple. pour Bitcoin, il ne s'agit que de 21 millions. Il n'y a que 21 millions de bitcoins sur le marché. Si les mineurs sont autorisés à continuer, à ce rythme, ils vont récupérer tous les bitcoins existants. En plus de cela, il doit y avoir une limite de temps spécifique entre la création de chaque bloc. Pour bitcoin, la limite de temps entre la création de bloc est de 10 minutes. Si les blocs pouvaient être créés plus rapidement, il en résulterait:

  • Davantage de collisions: plus de fonctions de hachage seront générées, ce qui entraînera inévitablement plus de collisions.
  • Un plus grand nombre de blocs orphelins: Si beaucoup de mineurs sont en train d’exploiter des mines, ils en créeront simultanément. Ainsi, plusieurs blocs ne feront plus partie de la chaîne principale et deviendront des blocs orphelins.

Ainsi, afin de limiter la création de blocs, un niveau de difficulté spécifique est défini. L'exploitation minière est comme un jeu, vous résolvez le casse-tête et vous obtenez des récompenses. Les difficultés de réglage rendent ce casse-tête beaucoup plus difficile à résoudre et donc plus fastidieux. WRT bitcoins la cible de difficulté est une chaîne de 64 caractères (identique à une sortie SHA-256) qui commence par une série de zéros. Un nombre de zéros augmente à mesure que le niveau de difficulté augmente. Le niveau de difficulté change après chaque 2016e bloc.

Le processus minier

Remarque: Nous allons principalement parler de l'exploitation de Bitcoin ici.

Lorsque le logiciel d’exploitation minière Bitcoin souhaite ajouter un nouveau bloc à la blockchain, c’est la procédure qu’il suit. Chaque fois qu'un nouveau bloc arrive, tout le contenu des blocs est d'abord haché. Si le hachage est inférieur à la cible de difficulté, il est ajouté à la blockchain et tous les membres de la communauté reconnaissent le nouveau bloc.

Cependant, ce n'est pas aussi simple que cela. Vous devrez être extrêmement chanceux pour obtenir un nouveau bloc juste comme ça. C'est là que le nonce entre en jeu. Le nonce est une chaîne arbitraire concaténée avec le hachage du bloc. Après cela, cette chaîne concaténée est à nouveau hachée et comparée au niveau de difficulté. Si le niveau de difficulté n'est pas inférieur au niveau de difficulté, le nonce est modifié, ce qui se répète un million de fois jusqu'à ce que les conditions soient remplies. Lorsque cela se produit, le bloc est ajouté à la blockchain.

Donc, pour récapituler:

  • Le hachage du contenu du nouveau bloc est pris.
  • Un nonce (chaîne aléatoire) est ajouté au hachage.
  • La nouvelle chaîne est à nouveau hachée.
  • Le hachage final est ensuite comparé au niveau de difficulté et vérifié s’il est inférieur ou inférieur à cela.
  • Si ce n'est pas le cas, le nonce est modifié et le processus se répète.
  • Si c'est le cas, le bloc est ajouté à la chaîne et le grand livre public est mis à jour et alerté de l'ajout.
  • Les mineurs responsables de cette opération sont récompensés par des bitcoins.

Vous vous souvenez du numéro de propriété 6 des fonctions de hachage? La convivialité du puzzle?

Pour chaque sortie «Y», si k est choisi dans une distribution à entropie minime élevée, il est impossible de trouver une entrée x telle que H (k | x) = Y.

Donc, quand il s’agit d’exploitation minière Bitcoin:

  • K = Nonce
  • x = le hash du bloc
  • Y = la cible de difficulté

L'ensemble du processus est complètement aléatoire, il n'y a aucun processus de pensée derrière la sélection des nonces. C'est simplement une force brute pure où le logiciel génère des chaînes de manière aléatoire jusqu'à ce qu'elles atteignent leur objectif. L'ensemble du processus suit le protocole Proof Of Work, qui signifie essentiellement:

  • La résolution de casse-tête devrait être difficile.
  • Vérifier la réponse devrait cependant être facile pour tout le monde. Ceci est fait pour s'assurer qu'aucune méthode sournoise n'a été utilisée pour résoudre le problème.

Quel est le taux de hachage?

Le taux de hachage signifie fondamentalement la vitesse à laquelle ces opérations de hachage ont lieu pendant l'exploitation. Un taux de hachage élevé signifie plus de gens et logicielCe sont des machines qui participent au processus d’extraction et, par conséquent, le système fonctionne bien. Si le taux de hachage est trop rapide, le niveau de difficulté augmente. Si le taux de hachage devient trop lent, le niveau de difficulté est diminué.

Conclusion

Le hachage a vraiment été fondamental dans la création de la technologie blockchain. Si on veut comprendre ce qu'est la blockchain, il faut bien comprendre ce que signifie le hachage.



Traduit depuis https://blockgeeks.com/guides/what-is-hashing/

Carte de paiement Crypto

Demandez votre Carte de paiement Crypto ici

Recevez 8 € de BTC gratuitement


Inscrivez-vous à CoinBase