
La Merkle root est un hachage unique qui synthétise l’ensemble des transactions d’un bloc, obtenu par la combinaison récursive des hachages de transactions selon une structure arborescente. Ce hachage est inscrit dans l’en-tête du bloc et constitue un résumé compact des transactions incluses.
Ici, la « fonction de hachage » désigne un algorithme qui condense des données de taille arbitraire en une empreinte numérique de longueur fixe. L’« en-tête de bloc » est un segment de métadonnées comprenant des éléments comme l’horodatage, le hachage du bloc précédent et la Merkle root, facilitant la vérification rapide des blocs par le réseau.
La Merkle root joue un rôle clé en permettant aux utilisateurs de vérifier l’inclusion d’une transaction dans un bloc sans télécharger l’intégralité des transactions de ce bloc. Seule une quantité minimale de données suffit pour la vérification, ce qui permet aux light nodes—clients qui ne téléchargent que les en-têtes de blocs—et aux portefeuilles mobiles de fonctionner de façon sécurisée avec des ressources limitées.
Dans Bitcoin, la SPV (Simplified Payment Verification) repose sur la Merkle root. Les portefeuilles téléchargent l’en-tête de bloc et utilisent un « chemin de preuve » court à comparer à la Merkle root pour déterminer si une transaction est incluse. Pour les blocs contenant plusieurs milliers de transactions, cela réduit considérablement les besoins en bande passante et en stockage.
D’après les statistiques publiques des block explorers, la plupart des blocs Bitcoin incluent généralement entre 1 000 et 3 000 transactions en 2025 (source : mempool.space, 2025-10). À cette échelle, les gains d’efficacité apportés par les Merkle roots sont particulièrement marquants.
Le calcul d’une Merkle root consiste à fusionner les hachages des transactions de bas en haut dans un Merkle tree jusqu’à n’obtenir qu’un seul hachage.
Étape 1 : Calculer le hachage de chaque transaction. Ce hachage constitue une empreinte numérique de longueur fixe générée à partir des données de la transaction.
Étape 2 : Associer les hachages de transactions adjacents, les concaténer puis hacher le résultat pour former le hachage du nœud parent. Répéter cette opération par paires pour construire la couche supérieure.
Étape 3 : Si une couche comporte un nombre impair de hachages (comme dans Bitcoin), dupliquer le dernier hachage pour compléter la paire—les modalités exactes peuvent varier selon les blockchains.
Étape 4 : Répéter ce processus jusqu’à ce qu’il ne reste plus qu’un seul hachage au sommet. Ce dernier hachage est la Merkle root. Dans Bitcoin, les résultats intermédiaires sont généralement doublement hachés (application de la fonction de hachage deux fois) pour renforcer la résistance aux collisions et aux attaques par extension de longueur.
Un Merkle tree structure de grands volumes de données sous forme de hachages dans une hiérarchie de type « binary tree ». Chaque nœud feuille correspond à un hachage de transaction, chaque nœud parent étant le hachage combiné de ses deux enfants. La Merkle root est le hachage parent situé au sommet de l’arbre—elle synthétise l’ensemble des données sous-jacentes.
On peut l’assimiler à un dossier : les feuilles sont les empreintes numériques des fichiers individuels, les couches supérieures celles des sous-dossiers, et la Merkle root représente l’empreinte globale du dossier. Toute modification d’une feuille entraîne la modification de tous les hachages parents jusqu’à la racine, ce qui permet de détecter toute altération du jeu de données.
Pour vérifier l’inclusion d’une transaction dans un bloc, il faut reconstruire le « chemin de preuve » de la transaction jusqu’à la Merkle root, puis comparer le résultat à la Merkle root figurant dans l’en-tête du bloc.
Étape 1 : Récupérer le hachage de la transaction, disponible depuis votre portefeuille ou la page de détails d’une transaction sur un block explorer.
Étape 2 : Obtenir la preuve Merkle—les block explorers fournissent généralement une série de « path hashes » (hachages frères adjacents à la transaction) pour la fusion par couches.
Étape 3 : Concaténer et hacher successivement votre hachage de transaction avec chaque path hash, couche par couche, jusqu’à obtenir le hachage final.
Étape 4 : Comparer le hachage obtenu à la Merkle root du bloc. Si les deux correspondent, la transaction est bien incluse dans ce bloc.
En pratique—par exemple lors d’un dépôt sur Gate—la page de confirmation affiche la hauteur du bloc et propose des liens vers les block explorers concernés. Vous pouvez ainsi consulter la Merkle root dans l’en-tête du bloc et réaliser la vérification par vous-même.
Dans Bitcoin, la Merkle root correspond au hachage de niveau supérieur d’un Merkle tree binaire construit à partir de toutes les transactions et figure dans le champ « merkle root » de l’en-tête de bloc.
Dans Ethereum, les en-têtes de bloc comportent plusieurs racines : transactionsRoot (pour les transactions), stateRoot (pour l’état global) et receiptsRoot (pour les reçus). Ces champs sont générés à l’aide de structures « Merkle Patricia Trie », une variante adaptée au stockage clé-valeur, permettant des états et des indexations plus complexes. Malgré des implémentations différentes, toutes visent à compresser de grands ensembles de données en condensés vérifiables.
La communauté étudie en continu des structures de données plus efficaces—comme les Verkle trees—afin de réduire la taille des preuves et les coûts de synchronisation pour les light clients. Malgré ces avancées, les structures basées sur Merkle restent la référence pour la génération de condensés et de preuves vérifiables.
Premièrement, la Merkle root atteste uniquement de « l’intégrité d’un ensemble » ; elle ne révèle pas directement les transactions présentes. Il faut à la fois la preuve Merkle et le hachage de la transaction pour confirmer l’inclusion.
Deuxièmement, la vérification SPV suppose que les en-têtes de blocs reçus proviennent bien de la chaîne principale. Des attaques réseau (comme l’isolement par des nœuds malveillants) peuvent temporairement induire en erreur. C’est pourquoi les opérations sur fonds requièrent un nombre suffisant de confirmations ; les plateformes comme Gate exigent un nombre de confirmations variable selon la chaîne pour limiter les risques de double dépense et de réorganisation.
Troisièmement, les modalités d’implémentation varient selon les blockchains—ordre de fusion, gestion des feuilles impaires, algorithmes de hachage, formats d’encodage. Toute erreur à ces étapes peut entraîner l’échec de la vérification.
Quatrièmement, la sécurité dépend de la résistance aux collisions et de l’intégrité des fonctions de hachage. Bien que les principaux algorithmes de hachage soient largement utilisés, toute faille algorithmique remettrait directement en cause la fiabilité de la Merkle root.
Étape 1 : Saisissez le hachage de votre transaction dans un block explorer, ouvrez la page de détails, identifiez le bloc correspondant et accédez à la page de ce bloc.
Étape 2 : Dans la section « en-tête de bloc » de la page du bloc, repérez les champs tels que « merkle root » (Bitcoin) ou « transactionsRoot/stateRoot/receiptsRoot » (Ethereum). Ce sont les Merkle roots associées.
Étape 3 : Si une « Merkle Proof » ou un « proof path » est proposé sur la page, il est possible d’utiliser les étapes précédentes pour calculer et comparer le résultat à la Merkle root afin de vérifier la transaction.
Sur la page d’historique des dépôts de Gate, vous pouvez retrouver la hauteur du bloc de votre transaction et accéder à la page du block explorer concerné pour localiser les champs de l’en-tête de bloc et approfondir la compréhension du fonctionnement des Merkle roots.
Maîtriser les Merkle roots permet de comprendre la fiabilité des blocs, le fonctionnement de la vérification légère dans les portefeuilles et les choix de structures de données des différentes blockchains. En condensant de nombreuses transactions ou états en un seul condensé vérifiable, les Merkle roots améliorent l’efficacité tout en maintenant les garanties de sécurité. Pour les débutants, savoir manipuler les Merkle roots et les chemins de preuve permet de vérifier en toute confiance dépôts, transferts et interactions on-chain, et d’apprécier plus finement le nombre de confirmations et les risques associés.
Les portefeuilles légers ne stockent pas toutes les données de transaction de chaque bloc. Ils ne conservent que la Merkle root et le chemin de preuve pour vérifier si une transaction a été modifiée—à l’image de la vérification d’un code-barres sur un colis sans ouvrir ce dernier. Cela réduit drastiquement les besoins en stockage et en bande passante sur mobile, et permet le fonctionnement sécurisé des portefeuilles mobiles.
La Merkle root agit comme une « empreinte électronique » de l’ensemble du bloc. Toute modification, même sur une seule transaction, modifie son hachage et, par effet de cascade, tous les hachages parents jusqu’à la Merkle root. Ce mécanisme permet à tous les nœuds du réseau de détecter instantanément toute altération. C’est l’un des fondements de la sécurité anti-altération de la blockchain.
Concaténer tous les hachages de transaction produirait une chaîne volumineuse, difficile à stocker et à comparer. La hiérarchie binaire du Merkle tree compresse cette complexité en une racine de longueur fixe, assurant une vérification efficace, quel que soit le nombre de transactions, sans que le temps de vérification n’augmente linéairement avec leur volume.
Se reposer sur la Merkle root fournie par un seul nœud comporte un risque ; néanmoins, les portefeuilles SPV interrogent généralement plusieurs nœuds indépendants pour obtenir les Merkle roots d’un même bloc et recouper l’information. Tant que la majorité des nœuds sont honnêtes, il est extrêmement difficile de forger une fausse Merkle root. Cet équilibre pragmatique entre performance et sécurité convient à un usage quotidien.
À chaque sélection différente de transactions pour un nouveau bloc, la Merkle root change, modifiant ainsi le hachage de l’en-tête de bloc. Les mineurs ajustent sans cesse l’ordre des transactions et la valeur du nonce pour obtenir un hachage conforme à la difficulté du réseau ; recalculer la Merkle root est donc indispensable à chaque itération. Ce processus garantit que les mineurs traitent et valident effectivement le contenu des transactions.


