Un bloc Bitcoin peut contenir plusieurs milliers de transactions, mais son en-tête ne fait que 80 octets. Une si petite quantité de données suffit à « verrouiller » chacune des transactions du bloc, grâce à l’arbre de Merkle.
Chaque bloc $BTC contient dans son en-tête une racine de Merkle qui correspond à toutes les transactions du bloc. Valeur actuelle : 77,570.01 (24 h : +0.27 %).
📌 De quel type d’arbre s’agit-il ?
Un arbre de Merkle est une structure arborescente qui consiste à hacher les données deux par deux, puis à regrouper les résultats couche après couche. À la base, on trouve le hachage de chaque transaction. On concatène deux hachages voisins, puis on les hache à leur tour pour obtenir la couche supérieure. On continue ainsi jusqu’à ce qu’il ne reste qu’un seul hachage : la racine de Merkle.
Cette structure porte le nom du cryptographe Ralph Merkle. Elle a été proposée à la fin des années 1970, bien avant l’apparition de la blockchain.
📌 Pourquoi est-il impossible de modifier les données ?
L’en-tête d’un bloc Bitcoin contient la racine de Merkle. Si l’on modifie une transaction du bloc, son hachage change. Cette modification se propage jusqu’à la racine de Merkle, ce qui change aussi le hachage du bloc : les blocs suivants ne correspondent alors plus.
Il suffit donc de surveiller ce seul hachage dans l’en-tête du bloc pour garder une trace de toutes les transactions qu’il contient.
📌 Comment un portefeuille léger vérifie-t-il une transaction ?
Pour prouver qu’une transaction figure dans un bloc, nul besoin de disposer du bloc entier : il suffit de quelques hachages sur le chemin qui relie cette transaction à la racine de Merkle. Si le nombre de transactions double, il ne faut qu’un hachage supplémentaire. Pour un bloc contenant plusieurs milliers de transactions, une dizaine de hachages suffit.
La vérification simplifiée des paiements (SPV), décrite à la section 8 du livre blanc de Bitcoin, fonctionne ainsi : un client léger ne conserve que les en-têtes des blocs, puis demande à un nœud un chemin de Merkle pour confirmer que la transaction a bien été incluse dans un bloc.
📌 Application à la preuve de réserves
Les preuves de réserves des plateformes d’échange utilisent également les arbres de Merkle : la plateforme regroupe les soldes de tous ses utilisateurs dans un arbre de Merkle et en publie le hachage racine. Chaque utilisateur reçoit le chemin correspondant à son propre solde et peut ainsi vérifier lui-même qu’il a bien été pris en compte, sans que les soldes des autres utilisateurs soient divulgués.
📌 Pour conclure
Le principe de l’arbre de Merkle est simple : un hachage racine très court représente une grande quantité de données. C’est cette conception qui rend possibles des applications comme les portefeuilles mobiles et les preuves de réserves. Ne placez pas tous vos fonds dans un seul projet.
Mettez 1 en commentaire si vous avez appris quelque chose, et posez vos questions si ce n’est pas clair.