Comment les arbres de Merkle sont-ils utilisés dans la technologie blockchain et pourquoi ?
Dans le réseau Bitcoin, un arbre de Merkle résume toutes les transactions à l’intérieur d’un bloc en produisant une empreinte numérique de l’ensemble des transactions. De cette façon, un utilisateur est en mesure de vérifier si une transaction est incluse dans un bloc ou non.
Tous les nœuds de la structure arborescente de l’arbre de Merkle sont des représentations partielles des données hachées qui se trouvent en dessous d’eux.
Maintenant, vous vous demandez probablement pourquoi a-t-on besoin d’un arbre de hachage pour procéder à une telle vérification ? Ne pourrait-on pas hacher tous les messages (les données originales), placer les valeurs hachées dans une seule chaîne et obtenir la valeur du hachage racine de cette façon ? En quoi les arbres de Merkle facilitent-ils les choses ?
Question de confiance
Imaginez que les arbres Merkle n’existent pas. Au lieu de la racine de Merkle, nous stockerions le hachage de toutes les transactions de la blockchain dans l’en-tête du bloc. Pour vérifier une seule transaction, il faudrait donc télécharger les données de toutes les transactions.
Les arbres de Merkle réduisent la quantité de données nécessaires à la vérification. Supposons que Suzie cherche à prouver à Pierre que la transaction « m6 » n’a pas été falsifiée. Pierre pourrait obtenir le hachage de la racine auprès d’une source de confiance et vérifier que c’est bien le cas.
Si Suzie et Pierre procédaient sans arbre de Merkle, Suzie devrait fournir à Pierre toutes les transactions hachées pour prouver que « m6 » n’a pas été altérée. Un arbre de Merkle offre un moyen bien plus commode de le vérifier. Encore une fois, Pierre obtient la racine d’une source fiable. Cette fois, si Suzie veut prouver que « m6 » n’a pas été falsifiée, il lui suffit d’envoyer à Pierre le message et quatre valeurs hachées, comme indiqué en violet dans le schéma ci-dessous :