Un bloc Bitcoin peut contenir plusieurs milliers de transactions, mais son en-tête ne fait que 80 octets. Cette minuscule quantité de données suffit à « verrouiller » chaque transaction du bloc, grâce à l’arbre de Merkle.
L’en-tête de chaque bloc $BTC contient une racine de Merkle qui correspond à toutes les transactions du bloc. Actuellement : 77,038.01 (24 h -1.35 %).
▍Quel type d’arbre ?
Un arbre de Merkle est une structure arborescente qui consiste à hacher les données deux par deux, puis à regrouper les résultats à chaque niveau. À la base, on trouve le hachage de chaque transaction ; deux hachages voisins sont concaténés puis hachés à leur tour pour former le niveau supérieur. Le processus se poursuit 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 tricher ?
L’en-tête d’un bloc Bitcoin contient la racine de Merkle. Si une transaction du bloc est modifiée, son hachage change. Cette modification remonte 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 les portefeuilles légers vérifient-ils les transactions ?
Pour prouver qu’une transaction figure dans un bloc, il n’est pas nécessaire de disposer du bloc entier : il suffit de quelques hachages sur le chemin reliant 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 une preuve de Merkle pour confirmer qu’une transaction a bien été incluse dans un bloc.
▍Application à la preuve de réserves
Les preuves de réserves des plateformes d’échange font également appel aux arbres de Merkle : la plateforme rassemble les soldes de tous ses utilisateurs dans un arbre de Merkle et en publie le hachage racine. Chaque utilisateur reçoit le chemin qui lui correspond et peut vérifier lui-même que son solde a bien été pris en compte, sans que les détails des comptes des autres soient divulgués.
▍Pour conclure
Le principe de l’arbre de Merkle est simple : un court hachage racine 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. Face aux promesses de rendements élevés, gardez vos réserves.
Vous aussi, vous aviez mal compris ce point auparavant ?