La Merkle root (racine de Merkle) est une empreinte cryptographique unique qui résume l’ensemble des transactions contenues dans un bloc de la blockchain. C’est le « hash des hashs » — le sommet d’un arbre de Merkle (Merkle tree) qui condense des milliers de transactions en une seule valeur de 32 octets.
Le calcul de la Merkle root suit un processus ascendant : chaque transaction du bloc est d’abord hashée individuellement. Ensuite, les hashs sont regroupés par paires et hashés ensemble. Ce processus se répète couche par couche, réduisant le nombre de hashs de moitié à chaque étape, jusqu’à obtenir un seul hash final — la Merkle root. Par exemple, un bloc contenant 2 048 transactions ne nécessite que 11 niveaux de hachage pour produire sa racine.
La Merkle root est stockée dans l’en-tête du bloc (block header) et joue un rôle crucial dans l’intégrité de la blockchain. Si une seule transaction du bloc est modifiée, même d’un seul bit, la Merkle root change complètement (effet avalanche des fonctions de hachage). Cela permet de détecter instantanément toute tentative de falsification sans avoir à vérifier chaque transaction individuellement.
Un des avantages majeurs est la SPV (Simplified Payment Verification) : un nœud léger peut vérifier qu’une transaction est incluse dans un bloc en téléchargeant seulement la Merkle proof (le chemin de hashs reliant la transaction à la racine), plutôt que l’intégralité des transactions du bloc. Cette propriété est essentielle pour les wallets mobiles et les clients légers qui n’ont pas les ressources pour stocker toute la blockchain.
Le concept a été inventé par Ralph Merkle en 1979 et est utilisé dans Bitcoin depuis sa création en 2009. Ethereum utilise des variantes plus complexes (Patricia Merkle Tries) qui permettent de stocker non seulement les transactions mais aussi l’état complet du réseau (balances, code des smart contracts, storage).