Aujourd’hui, nous allons expliquer ce qu’est le hachage et la signature numérique dans la blockchain.
Qu’est-ce que le hachage dans la blockchain?
Le hachage fait référence au concept consistant à prendre une quantité arbitraire de données d’entrée, à lui appliquer un algorithme et à générer des données de sortie de taille fixe appelées hachage. L’entrée peut être n’importe quel nombre de bits pouvant représenter un seul caractère, un fichier MP3, un roman entier, une feuille de calcul de votre historique bancaire, ou même l’ensemble d’Internet.
Le fait est que l’entrée peut être infiniment grande. L’algorithme de hachage peut être choisi en fonction de vos besoins et il existe de nombreux algorithmes de hachage disponibles publiquement. Le fait est que l’algorithme prend l’entrée infinie de bits, leur applique des calculs et produit un nombre fini de bits. Par exemple, 256 bits.
A quoi peut servir ce hachage ?
Aujourd’hui, les hachages sont couramment utilisés pour les fichiers d’empreintes digitales, également appelés zones de vérification. Cela signifie qu’un hachage est utilisé pour vérifier qu’un fichier n’a pas été falsifié ou modifié de quelque manière que ce soit par l’auteur. Si WikiLeaks, par exemple, publie un ensemble de fichiers avec leurs hachages MD5, quiconque télécharge ces fichiers peut vérifier qu’ils proviennent réellement de WikiLeaks en calculant le hachage MD5 des fichiers téléchargés, et si le hachage ne correspond pas à ce qui a été publié par WikiLeaks, alors vous savez que le fichier a été modifié d’une manière ou d’une autre.
Comment la blockchain utilise-t-elle le hachage?
Les hachages sont utilisés dans les blockchains pour représenter l’état actuel du monde. L’entrée est l’état complet de la blockchain, c’est-à-dire toutes les transactions qui ont eu lieu jusqu’à présent et le hachage de sortie qui en résulte représente l’état actuel de la blockchain. Le hachage est utilisé pour convenir entre toutes les parties que l’état global est le même, mais comment ces hachages sont-ils réellement calculés?
Le premier hachage est calculé pour le premier bloc ou bloc Genesis à l’aide des transactions au sein de ce bloc. La séquence des transactions initiales est utilisée pour calculer un hachage de bloc pour le bloc Genesis. Pour chaque nouveau bloc généré par la suite, le hachage du bloc précédent, ainsi que ses propres transactions, est également utilisé en entrée pour déterminer son hachage de bloc. C’est ainsi qu’une blockchain est formée, chaque nouveau hachage de bloc pointant vers le hachage de bloc précédent.
Ce système de hachage garantit qu’aucune transaction dans l’historique ne peut être manipulée, car si une partie de la transaction change, le hachage du bloc auquel il appartient change également, et tout hachage de bloc ultérieur en résulte. Il serait assez facile d’attraper toute manipulation en conséquence, puisque seuls les hachages peuvent être comparés. C’est génial car tout le monde sur la blockchain n’a besoin que de se mettre d’accord sur 256 bits pour représenter l’état potentiellement infini de la blockchain. La blockchain Ethereum fait actuellement des dizaines de gigaoctets, mais l’état actuel de la blockchain, à partir de cet enregistrement, est ce hachage hexadécimal représentant 256 bits.
Que sont les signatures numériques dans la blockchain?
Les signatures numériques, comme les vraies signatures, sont un moyen de prouver que quelqu’un est ce qu’il prétend être, sauf que nous utilisons la cryptographie ou les mathématiques, qui sont plus sûres que les signatures manuscrites qui peuvent être facilement falsifiées. Une signature numérique est un moyen de prouver qu’un message provient d’une personne spécifique et de personne d’autre, comme un pirate informatique.
Les signatures numériques sont aujourd’hui utilisées partout sur Internet. Chaque fois que vous visitez un site Web via ACTPS, vous utilisez SSL, qui utilise des signatures numériques pour établir la confiance entre vous et le serveur. Cela signifie que lorsque vous visitez Facebook.com, votre navigateur peut vérifier la signature numérique fournie avec la page Web pour vérifier qu’elle provient réellement de Facebook et non d’un pirate informatique.
Dans les systèmes de cryptage asymétrique, les utilisateurs génèrent ce qu’on appelle une paire de clés, qui est une clé publique et une clé privée à l’aide d’un algorithme connu. La clé publique et la clé privée sont associées l’une à l’autre par une relation mathématique. La clé publique est destinée à être distribuée publiquement pour servir d’adresse pour recevoir des messages d’autres utilisateurs, comme une adresse IP ou une adresse personnelle.
La clé privée doit rester secrète et est utilisée pour signer numériquement les messages envoyés à d’autres utilisateurs. La signature est incluse dans le message afin que le destinataire puisse la vérifier à l’aide de la clé publique de l’expéditeur. De cette façon, le destinataire peut être sûr que seul l’expéditeur a pu envoyer ce message. La génération d’une paire de clés est analogue à la création d’un compte sur la blockchain, mais sans avoir à s’enregistrer nulle part. Plutôt cool. De plus, chaque transaction exécutée sur la blockchain est signée numériquement par l’expéditeur.
Pour lier le tout, il ne pourrait y avoir de blockchain sans hachage et signatures numériques. Le hachage permet à tout le monde sur la blockchain de s’entendre sur l’état actuel du monde, tandis que les signatures numériques permettent de garantir que toutes les transactions sont effectuées uniquement par les propriétaires légitimes. Nous nous appuyons sur ces deux propriétés pour nous assurer que la blockchain n’a pas été corrompue ou compromise.