Qu’est-ce que le hachage? [Guide pas à pas sous le capot de la blockchain]

Alors, qu’est-ce que le hachage?

TLDR:

  1. Le hachage génère une ou plusieurs valeurs à partir d’une chaîne de texte à l’aide d’une fonction mathématique.
  2. Le hachage est un moyen d’activer la 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 sécurité de la transmission contre la falsification.

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

 Alors qu’est-ce que le hachage?

En termes simples, le hachage signifie prendre une chaîne d’entrée de n’importe quelle longueur et donner une sortie d’une longueur fixe. Dans le contexte des crypto-monnaies comme le 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 d’une longueur fixe.

Voyons comment fonctionne le processus de hachage. Nous allons mettre certains intrants. Pour cet exercice, nous allons utiliser le SHA-256 (Secure Hashing Algorithm 256).

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

#Crypto ExchangeBenefits

1

Binance
Best exchange


VISIT SITE
  • ? The worlds biggest bitcoin exchange and altcoin crypto exchange in the world by volume.
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

2

Coinbase
Ideal for newbies


Visit SITE
  • Coinbase is the largest U.S.-based cryptocurrency exchange, trading more than 30 cryptocurrencies.
  • Very high liquidity
  • Extremely simple user interface

3

eToro
Crypto + Trading

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

Comme vous pouvez le voir, dans le cas de SHA-256, quelle que soit la taille de votre entrée, la sortie aura toujours une longueur fixe de 256 bits. Cela devient critique lorsque vous traitez une énorme quantité de données et de transactions. Donc, fondamentalement, au lieu de vous souvenir des 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 comment elles sont implémentées dans la blockchain.. 

Fonctions de hachage cryptographique

Une fonction de hachage cryptographique est une classe spéciale de fonctions de hachage qui possède diverses propriétés la rendant idéale pour la cryptographie. Une fonction de hachage cryptographique doit posséder certaines propriétés pour être considérée comme sécurisée. Examinons-les un par un.

Propriété 1: déterministe

Cela signifie que peu importe le nombre de fois que vous analysez une entrée particulière via 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.

#CRYPTO BROKERSBenefits

1

eToro
Best Crypto Broker

VISIT SITE
  • Multi-Asset Platform. Stocks, crypto, indices
  • eToro is the world’s leading social trading platform, with thousands of options for traders and investors.

2

Binance
Cryptocurrency Trading


VISIT SITE
  • ? Your new Favorite App for Cryptocurrency Trading. Buy, sell and trade cryptocurrency on the go
  • Binance provides a crypto wallet for its traders, where they can store their electronic funds.

#BITCOIN CASINOBenefits

1

Bitstarz
Best Crypto Casino

VISIT SITE
  • 2 BTC + 180 free spins First deposit bonus is 152% up to 2 BTC
  • Accepts both fiat currencies and cryptocurrencies

2

Bitcoincasino.io
Fast money transfers


VISIT SITE
  • Six supported cryptocurrencies.
  • 100% up to 0.1 BTC for the first
  • 50% up to 0.1 BTC for the second

Propriété 2: Calcul rapide

La fonction de hachage doit être capable de renvoyer le hachage de l’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 états de résistance pré-image sont que, étant donné H (A), il est impossible de déterminer A, où A est l’entrée et H (A) est le hachage de sortie. Remarquez l’utilisation du mot «irréalisable» au lieu de «impossible». Nous savons déjà qu’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 est le hachage du nombre qui provient des dés. Comment pourrez-vous déterminer quel était le numéro d’origine? C’est simple, tout ce que vous avez à faire est de trouver les hachages de tous les nombres de 1 à 6 et de comparer. Étant donné que 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 découvrir l’entrée d’origine.

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 ayez affaire à un hachage de 128 bits. La seule méthode dont vous disposez pour trouver l’entrée d’origine consiste à utiliser le “méthode de la force brute». La méthode de la force brute signifie essentiellement que vous devez choisir une entrée aléatoire, la hacher, puis comparer la sortie avec le hachage cible et répéter jusqu’à ce que vous trouviez une correspondance..

Alors, que se passera-t-il si vous utilisez cette méthode?

  • Le meilleur cas de scenario: Vous obtenez votre réponse dès le premier essai. Vous devrez sérieusement être la personne la plus chanceuse du monde pour que cela se produise. 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 essentiellement 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 briser la résistance pré-image via la méthode de la force brute, cela prend tellement de temps que cela n’a pas d’importance.

Propriété 4: De petits changements dans l’entrée modifient le hachage.

Même si vous apportez un petit changement dans votre entrée, les changements qui seront reflétés dans le hachage seront énormes. Testons-le avec SHA-256:

Qu'est-ce que le hachage? Sous le capot de la 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 critique car cette propriété de hachage conduit à l’une des plus grandes qualités de la blockchain, son immuabilité (nous en reparlerons plus tard).

Propriété 5: résistant aux collisions

Étant donné deux entrées différentes A et B où H (A) et H (B) sont leurs hachages respectifs, il est impossible que H (A) soit égal à H (B). Cela signifie que pour la plupart, chaque entrée aura son propre hachage unique. Pourquoi avons-nous dit «pour la plupart»? Parlons d’un concept intéressant appelé “The Birthday Paradox”.

Quel est le paradoxe de l’anniversaire?

Si vous rencontrez un inconnu au hasard dans la rue, les chances sont très faibles pour vous deux d’avoir le même anniversaire. En fait, en supposant que tous les jours de l’année ont la même probabilité d’avoir un anniversaire, les chances qu’une autre personne partage votre anniversaire est de 1/365, soit 0,27%. En d’autres termes, c’est vraiment bas.

Cependant, cela dit, si vous rassemblez 20 à 30 personnes dans une même pièce, les chances que deux personnes partagent exactement le même anniversaire augmentent astronomiquement. En fait, il y a une chance de 50 à 50 pour 2 personnes partageant le même anniversaire dans ce scénario!

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

Crédit d’image: (YouTube)

Pourquoi cela arrive-t-il? C’est à cause d’une simple règle de probabilité qui va comme suit. Supposons que vous ayez N possibilités différentes qu’un événement se produise, alors vous avez besoin de la racine carrée de N éléments aléatoires pour qu’ils aient 50% de chances de collision.

Donc, en appliquant cette théorie pour les anniversaires, vous avez 365 possibilités différentes d’anniversaires, vous avez donc juste besoin de Sqrt (365), soit ~ 23 ~, des personnes choisies au hasard pour 50% de chances que deux personnes partagent des anniversaires.

Quelle est l’application de ceci dans le hachage?

Supposons que vous ayez un hachage de 128 bits qui a 2 ^ 128 possibilités différentes. En utilisant le paradoxe d’anniversaire, vous avez 50% de chances de casser la résistance aux collisions à l’instance sqrt (2 ^ 128) = 2 ^ 64e.

Comme vous pouvez le voir, il est beaucoup plus facile de briser la résistance aux collisions que de briser la résistance pré-image. Aucune fonction de hachage n’est sans collision, mais il faut généralement beaucoup de temps pour trouver une collision. Donc, si vous utilisez une fonction comme SHA-256, il est prudent de supposer que si H (A) = H (B) alors A = B.

Propriété 6: Puzzle Friendly

Maintenant, c’est une propriété fascinante, et l’application et l’impact que cette propriété a eu sur la crypto-monnaie sont énormes (nous en parlerons plus tard lorsque nous couvrirons les puzzles miniers et cryptographiques). Commençons par définir la propriété, après quoi nous passerons en revue chaque terme en détail.

Pour chaque sortie «Y», si k est choisi dans une distribution avec une entropie min é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 ça va, 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 extrêmement distribuée à tel point que le choix d’une valeur aléatoire a une probabilité négligeable. Fondamentalement, si on vous dit de choisir un nombre entre 1 et 5, c’est une distribution d’entropie minimale faible. Cependant, si vous deviez choisir un nombre entre 1 et un milliard de dollars, il s’agit d’une distribution d’entropie minimale élevée.

Que signifie «k | x»?

Le «|» désigne la concaténation. La concaténation consiste à ajouter deux chaînes ensemble. Par exemple. Si je devais concaténer «BLUE» et «SKY» 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 large distribution, il est impossible de trouver une valeur X telle que le hachage de la concaténation de k et x donnera la sortie Y.

Encore une fois, remarquez le mot «irréalisable», ce n’est pas impossible car les gens le font tout le temps. En fait, tout le processus d’extraction fonctionne sur ce point (plus à ce sujet plus tard).

Exemples de fonctions de hachage cryptographiques

  • MD 5: Il produit un hachage de 128 bits. La résistance aux collisions a été rompue après ~ 2 ^ 21 hachages.
  • SHA 1: produit un hachage de 160 bits. La résistance aux collisions s’est rompue après ~ 2 ^ 61 hachages.
  • SHA 256: produit un hachage de 256 bits. Ceci est actuellement utilisé par Bitcoin.
  • Keccak-256: produit un hachage de 256 bits et est actuellement utilisé par ethereum.

Hashing et structures de données

Une structure de données est un moyen spécialisé de stocker des données. Deux propriétés de structure de données sont essentielles si vous souhaitez comprendre le fonctionnement d’une blockchain. 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 n’importe quel langage de programmation stockent des données.

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 qui est 10. Il s’agit d’une variable normale.

Les pointeurs, cependant, au lieu de stocker des valeurs, stockeront les adresses d’autres variables. C’est pourquoi on les appelle des pointeurs, car ils pointent littéralement vers 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 la blockchain

Il s’agit d’une séquence de blocs, chacun contenant des données liées au bloc suivant via un pointeur. La variable pointeur, dans ce cas, contient l’adresse du nœud suivant et, par conséquent, la connexion est établie. Le dernier nœud, comme vous pouvez le voir, a un pointeur nul, ce qui signifie qu’il n’a pas de valeur.

Une chose importante à noter ici, le pointeur à l’intérieur de chaque bloc contient l’adresse du bloc suivant. C’est ainsi que le pointage est réalisé. Maintenant, 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 est appelé le «bloc de genèse» et son pointeur se trouve dans le système lui-même. Cela ressemble à ceci:

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

Image courtoisie: 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é, c’est sur quoi repose la structure de la blockchain. Une blockchain est essentiellement une liste chaînée. Voyons à quoi ressemble la structure de la blockchain:

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

La blockchain est une liste liée qui contient 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 simplement 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 si incroyablement fiables et novatrices.

Imaginez cela pendant une seconde, un hacker 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 changera radicalement le hachage. Cela signifie que toute légère modification apportée au bloc 3 changera le hachage qui est stocké dans le bloc 2, maintenant que cela changera à son tour les données et le hachage du bloc 2, ce qui entraînera des changements dans le bloc 1 et ainsi de suite. . Cela changera complètement la chaîne, ce qui est impossible. C’est exactement ainsi 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 la blockchain

Un en-tête de bloc contient:

  • Version: numéro de version du bloc.
  • Heure: l’horodatage actuel.
  • La cible de difficulté actuelle. (Plus à ce sujet plus tard).
  • Hash du bloc précédent.
  • Nonce (plus à ce sujet plus tard).
  • Hash de la racine de Merkle.

Pour l’instant, 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 la blockchain

Courtoisie d’image: Wikipedia

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

Nœud feuille: les nœuds feuilles sont les nœuds du niveau le plus bas de l’arborescence. Donc, d’après le diagramme ci-dessus, les nœuds feuilles seront L1, L2, L3 et L4.

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

Nœuds enfants: pour un nœud, les nœuds situés sous son niveau qui y alimentent sont ses nœuds enfants. Dans le diagramme, les nœuds intitulés «Hash 0-0» et «Hash 0-1» sont les nœuds enfants du nœud intitulé «Hash 0».

Nœud racine: le nœud unique du niveau le plus élevé intitulé «Top Hash» est le nœud racine.

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

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

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

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

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

Image courtoisie: 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 la blockchain

Au lieu de passer par le processus fastidieux de regarder chaque hachage individuel et de voir s’il appartient ou non aux données, je peux simplement le localiser en suivant la piste des hachages menant aux données:

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

Faire cela réduit considérablement le temps nécessaire.

Hashing dans l’exploitation minière: les énigmes cryptographiques.

Lorsque nous disons «extraction», cela signifie essentiellement rechercher un nouveau bloc à ajouter dans la blockchain. Les mineurs du monde entier travaillent constamment pour s’assurer que la chaîne continue de croître. Auparavant, il était facile pour les gens d’exploiter uniquement leurs ordinateurs portables, mais au fil du temps, les gens ont commencé à former des pools de minage pour mettre en commun leurs pouvoirs informatiques et exploiter plus efficacement..

Ceci, cependant, aurait pu être un problème. Il y a un plafond pour chaque crypto-monnaie, par exemple. pour le bitcoin, c’est seulement 21 millions. Il n’y a que 21 millions de bitcoins là-bas. Si les mineurs sont autorisés à continuer, à ce rythme, ils pêcheront 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, le délai entre la création du bloc est de 10 minutes. Si les blocs pouvaient être créés plus rapidement, il en résulterait:

  • Plus de collisions: plus de fonctions de hachage seront générées, ce qui entraînera inévitablement plus de collisions.
  • Plus de blocs orphelins: si beaucoup de mineurs sont sur l’exploitation minière, ils créeront de nouveaux blocs simultanément. Cela entraînera ou plusieurs blocs ne feront pas partie de la chaîne principale et deviendront des blocs orphelins.

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

Le processus minier

Remarque: nous parlerons principalement de l’exploitation minière Bitcoin ici.

Lorsque le logiciel de minage de bitcoin veut 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 tout le monde dans la communauté reconnaît le nouveau bloc.

Cependant, ce n’est pas aussi simple que cela. Vous devrez être extrêmement chanceux pour obtenir un nouveau bloc 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é. S’il n’est pas inférieur au niveau de difficulté, alors le nonce est modifié et cela continue à se répéter un million de fois jusqu’à ce que finalement, les conditions soient remplies. Lorsque cela se produit, le bloc est ajouté à la blockchain.

Alors 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 vu s’il est réellement inférieur ou non.
  • Sinon, le nonce est modifié et le processus se répète à nouveau.
  • Si oui, alors le bloc est ajouté à la chaîne et le grand livre public est mis à jour et alerté de l’ajout.
  • Les mineurs responsables de cela 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 avec une entropie min élevée, il est impossible de trouver une entrée x telle que H (k | x) = Y.

Donc, en ce qui concerne l’extraction de Bitcoin:

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

L’ensemble du processus est complètement aléatoire, il n’y a pas de processus de réflexion derrière la sélection des nonces. C’est juste de la pure force brute où le logiciel continue à générer 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 d’énigmes 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 essentiellement à quelle vitesse ces opérations de hachage se déroulent pendant l’exploitation minière. Un taux de hachage élevé signifie que plus de personnes et de machines logicielles participent au processus d’extraction et, par conséquent, le système fonctionne correctement. Si le taux de hachage est trop rapide, le niveau de difficulté est augmenté. Si le taux de hachage devient trop lent, le niveau de difficulté est diminué.

Conclusion – Qu’est-ce que le hachage?

Le hachage a vraiment été fondamental dans la création de la technologie blockchain. Si l’on veut comprendre en quoi consiste la blockchain, il doit certainement comprendre ce que signifie le hachage.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me