Comment les preuves de Merkle vérifient les transactions sur la blockchain

Publié le nov. 28

2 Commentaires

Comment les preuves de Merkle vérifient les transactions sur la blockchain

Calculateur de Preuves de Merkle

Calculateur de Preuves de Merkle

Entrez le nombre de transactions dans un bloc pour calculer le nombre de hachages nécessaires pour une preuve de Merkle.

Imaginez que vous voulez vérifier qu’une transaction spécifique est bien incluse dans un bloc de la blockchain, sans avoir à télécharger tout le bloc - qui peut faire plusieurs gigaoctets. C’est exactement ce que permettent les preuves de Merkle. Elles sont l’un des fondements invisibles mais essentiels de la sécurité et de l’efficacité des blockchains modernes, de Bitcoin à Ethereum.

Comment fonctionnent les preuves de Merkle ?

Les preuves de Merkle reposent sur une structure appelée arbre de Merkle. C’est un arbre binaire où chaque transaction d’un bloc est transformée en un hachage cryptographique. Ces hachages sont ensuite regroupés deux par deux, et chaque paire est hachée à nouveau pour former un nouveau nœud. Ce processus continue jusqu’à ce qu’il ne reste qu’un seul hachage : la racine de l’arbre. Cette racine, stockée dans l’en-tête du bloc, résume de manière sécurisée l’ensemble des transactions.

Pour prouver qu’une transaction est bien dans ce bloc, vous n’avez pas besoin de tout télécharger. Vous avez seulement besoin de quelques hachages supplémentaires - les hachages des frères (sibling hashes) sur le chemin de votre transaction jusqu’à la racine. Par exemple, si un bloc contient 1 000 transactions, vous n’avez besoin que de 10 hachages pour vérifier la présence d’une seule transaction. Pour 10 000 transactions, ce n’est que 14 hachages. C’est une réduction de 99,9 % par rapport à la vérification complète.

Le processus est simple : vous prenez votre transaction, vous la hachez, puis vous combinez ce hachage avec chaque hachage fourni dans la preuve, en remontant l’arbre. Si le résultat final correspond à la racine du bloc, alors la transaction est authentique. Si elle ne correspond pas, soit la transaction est fausse, soit elle n’est pas dans le bloc.

Pourquoi cette méthode est-elle si importante ?

Avant les preuves de Merkle, les portefeuilles légers (light clients) devaient télécharger et vérifier chaque transaction d’un bloc pour s’assurer qu’une transaction leur appartenait. C’était impossible sur un téléphone ou une machine peu puissante. Avec les preuves de Merkle, un portefeuille mobile peut fonctionner avec moins de 10 Mo de données - contre plus de 500 Go pour un nœud complet sur Bitcoin.

C’est ce qui permet à des millions de personnes d’utiliser des applications comme Trust Wallet, Electrum ou Phantom sans avoir à stocker l’ensemble de la blockchain. Selon une enquête de Lightspark en 2023, 92 % des portefeuilles mobiles utilisent cette méthode. Sans elle, la décentralisation serait gravement compromise : seuls les gros serveurs pourraient participer à la validation, et les particuliers seraient exclus.

Sur Ethereum, la technologie est légèrement adaptée avec les arbres de Merkle-Patricia, qui permettent de vérifier non seulement les transactions, mais aussi les états des comptes et les données de contrats intelligents. La méthode eth_getProof permet à un portefeuille ou à une application de demander une preuve spécifique pour un compte ou un contrat. C’est essentiel pour les solutions de couche 2 comme Optimism ou Arbitrum, qui dépendent de ces preuves pour valider les transactions hors chaîne.

Téléphone portable connecté à un arbre de Merkle miniature, tandis qu'un énorme bloc blockchain s'effondre en arrière-plan.

Limites et pièges courants

Les preuves de Merkle sont puissantes, mais elles ne sont pas magiques. Elles ne vérifient qu’une chose : l’inclusion. Elles ne disent rien sur la validité de la transaction elle-même. Une transaction peut être bien incluse dans un bloc, mais être une double dépense, un transfert frauduleux, ou un contrat mal exécuté. Pour vérifier cela, il faut un nœud complet ou une autre couche de validation.

Un autre problème est la taille des réponses. Pour les contrats intelligents complexes avec beaucoup de données stockées, une preuve peut dépasser 1 Mo. Cela peut causer des délais ou des échecs dans les applications mobiles, surtout sur des réseaux lents. Des développeurs ont rapporté sur GitHub que des réponses de plus de 1,2 Mo ont provoqué des timeouts dans leurs dApps Ethereum.

En outre, certains clients Ethereum, comme Erigon, imposent des limites sur le nombre de blocs pour lesquels les preuves peuvent être générées - par exemple, seulement les 100 000 derniers blocs. Cela peut poser problème si vous essayez de vérifier une transaction vieille de plusieurs années. Geth, en revanche, n’a pas cette limite, ce qui crée une incohérence entre les fournisseurs d’infrastructure.

Comparaison avec d’autres méthodes

Une alternative simple serait de hacher toutes les transactions ensemble en une seule valeur. Mais cela signifierait que pour vérifier une transaction, vous devez tout rehacher - donc télécharger et traiter l’intégralité du bloc. Pour 10 000 transactions, cela demande 10 000 opérations de hachage. Avec une preuve de Merkle, vous n’en faites que 14. C’est une différence de performance énorme.

Les preuves de Merkle sont aussi plus rapides à exécuter. Sur un téléphone moderne, la vérification d’une transaction Bitcoin prend moins de 5 millisecondes. C’est imperceptible pour l’utilisateur. En comparaison, la vérification complète d’un bloc Bitcoin peut prendre plusieurs secondes, voire plus, selon la puissance de la machine.

Les alternatives futures, comme les vector commitments ou les accumulators cryptographiques, promettent des tailles de preuve encore plus petites - jusqu’à 63 % de réduction selon des recherches de l’UC Berkeley. Mais elles sont encore expérimentales. Les preuves de Merkle, elles, ont été testées pendant plus de 45 ans. Elles sont simples, robustes, et ont survécu à des décennies d’attaques cryptographiques.

Utilisateur mobile victorieux avec une preuve de Merkle miniature face à un serveur géant submergé par des données.

Adoption et utilisation réelle

Presque toutes les blockchains majeures utilisent les preuves de Merkle. Bitcoin les a intégrées dès son lancement en janvier 2009. Ethereum les utilise depuis sa création en 2015. Litecoin, Solana, Polygon, et même les chaînes de test comme Goerli en dépendent. Une enquête de CoinDesk en 2024 a montré que 98 des 100 plus grandes blockchains les utilisent. Les deux exceptions utilisent des structures alternatives, mais elles sont rares et non mainstream.

Les portefeuilles mobiles en sont les principaux bénéficiaires. Trust Wallet affirme que les preuves de Merkle ont réduit leurs besoins en données de 99,7 %, ce qui leur permet de servir 30 millions d’utilisateurs actifs avec une infrastructure minimale. Des utilisateurs sur Reddit rapportent que leur wallet Electrum vérifie une transaction en 200 à 300 millisecondes sur 4G - un temps négligeable comparé aux 2 à 3 secondes nécessaires pour un nœud complet.

Les développeurs de contrats intelligents les utilisent aussi pour prouver l’état d’un compte à un autre contrat ou à une application externe. C’est la base des preuves de non-inclusion ou de vérification croisée entre chaînes.

Qu’est-ce que l’avenir réserve ?

Les preuves de Merkle ne sont pas en voie d’obsolescence. Au contraire, elles évoluent. Ethereum prépare une mise à jour appelée Prague, prévue pour la fin 2024, qui optimisera les preuves pour les nouvelles transactions en blob (EIP-4844). Cela réduira encore la charge sur les nœuds légers.

Cependant, certains experts, comme Vitalik Buterin, suggèrent que les blockchains de demain pourraient un jour passer à des systèmes plus efficaces, comme les accumulators cryptographiques. Mais pour l’instant, la simplicité, la sécurité éprouvée et la compatibilité des preuves de Merkle les rendent irremplaçables. Luke Dashjr, développeur de Bitcoin Core, le dit clairement : « La simplicité égale la sécurité. »

Les preuves de Merkle ne sont pas un gadget. Ce sont une pierre angulaire de la confiance décentralisée. Elles permettent à des milliards d’appareils de vérifier la vérité sans avoir à la posséder entièrement. Et c’est cette capacité - vérifier sans tout stocker - qui rend la blockchain accessible à tout le monde, pas seulement aux géants.

Qu’est-ce qu’une preuve de Merkle exactement ?

Une preuve de Merkle est une série de hachages cryptographiques qui permettent de prouver qu’une transaction spécifique est incluse dans un bloc de la blockchain, sans avoir à télécharger tout le bloc. Elle repose sur une structure en arbre binaire où chaque nœud est le hachage de ses deux enfants. La racine de cet arbre, stockée dans l’en-tête du bloc, sert de résumé cryptographique de toutes les transactions.

Pourquoi les portefeuilles mobiles utilisent-ils les preuves de Merkle ?

Les portefeuilles mobiles n’ont pas la puissance ni l’espace pour stocker l’ensemble de la blockchain. Les preuves de Merkle leur permettent de vérifier qu’une transaction leur appartient en téléchargeant seulement une petite partie des données - environ 10 à 15 hachages au lieu de plusieurs gigaoctets. Cela rend les wallets légers rapides, peu gourmands en données, et accessibles sur n’importe quel téléphone.

Les preuves de Merkle vérifient-elles la validité d’une transaction ?

Non. Elles vérifient seulement que la transaction est présente dans le bloc. Elles ne disent rien sur le contenu de la transaction : si elle est légale, si elle respecte les règles du contrat, ou si elle est une double dépense. Pour cela, il faut un nœud complet ou un autre système de validation.

Quelle est la différence entre Bitcoin et Ethereum sur les preuves de Merkle ?

Bitcoin utilise une arbre de Merkle classique pour les transactions. Ethereum utilise une version améliorée appelée arbre de Merkle-Patricia, qui permet de vérifier non seulement les transactions, mais aussi les états des comptes, les soldes et les données de contrats intelligents. Cela rend les preuves plus complexes, mais aussi plus puissantes pour les applications décentralisées.

Les preuves de Merkle sont-elles sûres contre les attaques ?

Oui, tant que les fonctions de hachage (SHA-256 pour Bitcoin, Keccak-256 pour Ethereum) restent inviolées. Toute tentative de modifier une transaction dans le bloc changerait son hachage, puis celui de tous les nœuds parents, jusqu’à la racine. La racine ne correspondrait plus à celle du bloc, et la preuve serait rejetée. C’est une sécurité cryptographique fondée sur la théorie des hachages, qui a résisté pendant plus de 45 ans.

2 Comments

  • Image placeholder

    Lizzie Perrin

    novembre 29, 2025 AT 03:42

    Je viens de vérifier une transaction sur mon wallet et j'ai cru que mon téléphone avait planté tellement c'était rapide. C'est fou comment un truc aussi simple peut changer la vie. J'ai jamais compris la tech avant, là j'ai juste dit 'oh ok' et j'ai continué mon jour.

  • Image placeholder

    Adrien GAVILA

    novembre 30, 2025 AT 06:35

    Preuves de Merkle ? Ah oui, le truc où tu te fais chier à rehacher des trucs pour prouver que t'as pas été arnaqué. C'est pas un peu du bricolage cryptographique pour masquer le fait que la blockchain est une usine à gaz ?

Écrire un commentaire