
Dans mon article précédent, nous avons créé une chaîne de blocs très primitive. Mais nous avons également défini une structure très simpliste du bloc — en fait, sans cette structure, nous n’aurions pas été très loin. Et aujourd’hui, nous allons passer cette structure au microscope et révéler toute la magie qui s’y déroule. En fait, nous tenterons de construire un presque réel Bloquer, de zéro.

Comme chaque maison de votre rue, chaque bloc aura également sa propre adresse créée de manière unique. Et comme la manière universelle d’écrire votre adresse personnelle, nous créerons également une manière universelle d’indiquer l’adresse de bloc dans notre chaîne.
ID de bloc actuel
Tout comme le numéro de maison, identifie de manière unique chaque maison individuelle (ou unité d’appartement), l’ID de bloc actuel est une adresse unique pour chaque bloc. Nous allons délibérément ignorer comment cet identifiant est attribué, car nous ne sommes pas encore équipés du protocole pour le faire. Nous allons simplement croire qu’il existe un moyen d’attribuer un identifiant très unique.
Identifiant(s) de bloc précédent(s)
C’est là que l’exemple du monde réel n’est pas tout à fait similaire à la version en bloc. La chaîne est un univers de rue unique, c’est pourquoi elle n’a pas besoin de l’ensemble (nom de la rue, comté, ville, état, pays, code postal) comme dans le monde réel. Donc tout ce dont nous avons besoin sur la chaîne est un point de repère, les voisins feront l’affaire. Nous sommes juste à côté de la maison en briques rouges de 2 étages.
Mais notre chaîne exige que les identifiants d’adresse de tous les blocs précédents soient stockés dans le bon ordre. Et cela devient un problème à mesure que la chaîne commence à s’allonger, il va y avoir trop d’identifiants à noter.
Maintenant, vous diriez que ce n’est pas pratique. Et je serais d’accord avec toi. Nous avons besoin d’une méthode pour compresser cette énorme information à une taille gérable. Heureusement, il y a un morceau de magie qui fait cela, et pendant un bref instant nous allons nous téléporter dans ce pays magique !
Note de l’auteur : Data ID est un identifiant pour les données stockées dans le bloc. Je vais sauter le paragraphe à ce sujet, mais je vous montrerai comment cela fonctionne plus tard.
Le monde magique de Hashing
Hachage est si répandu dans le monde aujourd’hui, qu’il ne serait pas exagéré de dire que notre vie en dépend à peu près. Et pour cette raison, il fait l’objet d’innombrables vidéos YouTube, blogs, conférences universitaires et discussions autour d’un café. Mais pour nos besoins d’aujourd’hui, je veux seulement souligner les principales caractéristiques de Hachage.
- Hachage est une fonction irréversible qui prend n’importe quelle entrée et produit une sortie ; vous ne pouvez pas recréer l’entrée à partir de la sortie
- Quelle que soit la taille de l’entrée, la sortie est toujours une chaîne alphanumérique aléatoire (une série de lettres et de chiffres) de longueur fixe
- Hachage est extrêmement sensible à l’entrée, même le moindre changement à l’entrée entraîne une sortie très différente ; la sortie ne change pas si l’entrée ne change pas !
- La probabilité que deux entrées différentes produisent la même sortie est pratiquement de 0, chaque entrée produit une sortie unique, comme une empreinte digitale
Hachage est réel, il existe, en fait il existe de nombreux types de Fonctions de hachage utilisé aujourd’hui ! Cela peut sembler trop pratique que quelque chose comme ça existe, car nous verrons dans un instant comment cela résout presque tous les problèmes de la chaîne, même ceux dont nous n’avons pas encore parlé. Mais aujourd’hui, je vous demande de prendre ces caractéristiques de Hachage sur la foi. Je promets que j’expliquerai comment tout cela fonctionne dans un autre article un autre jour.
Cependant, avant de quitter cette terre magique, je vous laisse avec cette pépite. Le hachage tire son nom à peu près des mêmes raisons que les pommes de terre rissolées !
Construisons des blocs !
Maintenant que nous nous sommes rencontrés Hachage et connaître l’existence de Fonctions de hachage, nous avons la recette pour créer des ID d’adresse uniques. Cela va être un peu compliqué, mais ça en vaut vraiment la peine. Nous allons construire un bloc à partir de zéro ! Tellement excitant..
Créons le premier bloc de la chaîne — le Genèse bloquer. Tout ce dont nous avons besoin pour créer ce bloc, ce sont des données. N’importe quelle donnée fera l’affaire, même la phrase — Créons le premier bloc de la chaîne.
Les étapes pour créer un nouveau bloc sont –
- Obtenir le Données qui doit être stocké dans le nouveau bloc
- Saisissez le Données dans le Fonction de hachage pour obtenir la première sortie de hachage — stockez-la dans le identifiant de données champ pour ce bloc
- Insérer le bloc précédent ID de bloc actuel dans ce nouveau bloc ID de bloc précédent champ, cette étape crée le lien entre les blocs de la chaîne (uniquement pour le premier bloc de la chaîne, il est vide car il n’y a pas de bloc précédent, tous les blocs suivants ont une valeur)
- Combiner identifiant de données et ID de bloc précédent comme une entrée dans le Fonction de hachage pour créer une nouvelle sortie de hachage — c’est le ID de bloc actuel pour le nouveau bloc
- Rincer et répéter pour tout nouveau bloc