L’arbre de Merkle: la Colonne Vertébrale de la Blockchain

Arbre de Merkle
Arbre de Merkle
Share

La blockchain est souvent décrite comme une base de données, ce qui est juste. Une blockchain est en effet la base de données dans laquelle sont stockées toutes les transactions réalisées par les membres du réseau. Bien qu’il soit également possible d’accéder à la blockchain de l’extérieur, chaque membre «complet» du réseau télécharge à blockchain en intégralité de telle sorte que toutes les transactions du réseau sont physiquement stockées dans chacun des ordinateurs participant au réseau.

L’Arbre de Merkle est la structure utilisée par la blockchain pour organiser le stockage des transactions dans chaque bloc. Il est essentiel de comprendre son fonctionnement pour pouvoir déterminer comment les membres du réseau accèdent à ces transactions.

Le fonctionnement d’un Arbre de Merkle

Le Merkle Tree (“Arbre de Merkle”) est une méthode permettant de structurer des données en vue d’y accéder et d’en vérifier la véracité plus rapidement. Le nom vient du fait que cette méthode organise les données en les regroupant par deux, donnant ainsi la forme d’un arbre inversé. En effet, les transactions sont regroupées par groupe de deux, un hachage est ensuite applique à ce groupe. Les groupes sont ensuite regroupes par groupe de deux puis soumis au même procédé jusqu’au dernier hachage appelé la racine (“Merkle Root”) qui lui est ajoute comme référence dans le “Header” du bloc.

Arbre de Merkle
Arbre de Merkle

Cette organisation des transactions au sein d’un block va permettre aux mineurs lors de la vérification des nouvelles transactions, de remonter très rapidement vers la dernière transaction concernée et ainsi vérifier si il existe bien une transaction d’un montant supérieur a celui qui doit être dépensé dans la nouvelle transaction (voir schéma ce dessous). En d’autres termes, un arbre de Merkle permet d’identifier très rapidement les transactions qui appartiennent à un même membre. Si l’ensemble de ces transactions ou une seule suffit à couvrir la dépense réalisée par ce membre alors la transaction de ce membre sera autorisée.

Un bloc d’une blockchain pourrait être schématisé comme suit:

Transaction
Transaction

Comme on peut le constater, le corps du bloc (« Body ») contient toutes les transactions ajoutées dans le bloc et organisées en arbre de Merkle. Le dernier hachage (« Root ») est lui repris dans la tête du bloc (« header »), ce qui permettra de faire la liaison avec les autres blocs de la blockchain.

Les avantages d’un arbre de Merkle

L’efficacité d’un Arbre de Merkle vient de sa structure et le fait qu’il soit possible d’accéder à n’importe quelle transaction sans avoir à télécharger l’intégralité de la base de données. En d’autres termes, il est possible de télécharger uniquement la branche qui permet de remonter à la transaction nous intéressant. Si nous reprenons le schéma réalisé plus haut, il est possible d’accéder à la Transaction N°2 en téléchargeant uniquement la branche qui mène de la « Racine » à la transaction.

Branche
Branche

C’est la raison pour laquelle, cette structure est très utile pour prouver que toute une chaîne de transaction est restée inchangée. Grâce à la chaîne de hachage cryptographiques, il est en effet possible de remonter jusqu’à la transaction recherchée et s’assurer que toute la branche (depuis la racine jusqu’à la transaction) n’a pas été modifiée.

Le fait que cette vérification puisse se concentrer sur une seule branche sans avoir à télécharger l’arbre dans son intégralité, c’est-à-dire l’intégralité de la blockchain, rend cette structure extrêmement légère à utiliser en termes de mémoire et capacité de calcul. Pour cette raison, elle s’avère également particulièrement bien adaptée aux membres « légers » (par opposition aux membres complets, les membres du réseau qui ne téléchargent pas la blockchain dans son intégralité), qui peuvent ainsi vérifier des transactions sur la blockchain sans pour autant télécharger l’intégralité de la blockchain.

L’organisation des données en Arbre de Merkle est donc une composante essentielle du fonctionnement d’un réseau reposant sur une blockchain, aussi bien en termes d’accès efficace aux données que de sécurité de ces données.

Si cet article vous a plus n’hésitez pas à le partager sur les réseaux sociaux!!

Follow me on Social media
Share
Passionné depuis 2014 par les technologies liées à la blockchain, j'ai créé ce blog pour partager avec les plus grand nombre les dernières innovations, les start-ups et les Crypto-monnaies qui selon nous constituent une avancée significative pour cette industrie en pleine expansion.