Skip to content
BlockchainSign
fr

Horodatage par arbre de Merkle : explication

Par Publié le

Horodatage par arbre de Merkle : explication
Photo: Nurullah Degri

Si vous vous êtes demandé comment un service peut horodater des fichiers sur Bitcoin gratuitement alors qu'une transaction Bitcoin n'est pas gratuite, la réponse réside dans l'arbre de Merkle. Il est utile de comprendre ce mécanisme, car le compromis qu'il implique constitue la principale différence entre les services d'horodatage disponibles sur le marché.

Le problème résolu

Écrire une empreinte numérique sur une blockchain coûte de l'argent — des frais de transaction, payés dans la devise de la chaîne. Si chaque fichier nécessite sa propre transaction, chaque horodatage a un coût minimum incompressible.

Le groupement de nombreuses empreintes numériques en une seule transaction supprime ce plancher. La difficulté consiste à effectuer cette opération tout en permettant à quiconque de prouver que son empreinte spécifique figurait bien dans le lot, sans pour autant publier l'intégralité du groupe.

Fonctionnement d'un arbre de Merkle

Prenons un ensemble d'empreintes numériques. Associez-les deux par deux et hachez chaque paire. Associez ensuite les résultats et hachez-les à nouveau. Continuez jusqu'à ce qu'il ne reste qu'une seule empreinte.

h(A)  h(B)   h(C)  h(D)
   \  /         \  /
  h(AB)         h(CD)
      \        /
       h(ABCD)   ← la racine de Merkle

Cette valeur finale est la racine de Merkle, et elle engage toutes les données d'entrée. Modifiez l'une des empreintes originales et la racine change complètement.

Seule la racine est inscrite sur la chaîne. Une seule transaction, quel que soit le nombre de fichiers dans le lot.

Prouver que votre fichier a été inclus

Pour montrer que h(A) se trouve sous la racine, vous n'avez pas besoin de l'arbre entier. Vous avez besoin des frères situés le long du chemin allant de votre feuille jusqu'en haut — ici, h(B) et h(CD). N'importe qui peut recalculer :

h( h( h(A), h(B) ), h(CD) ) == la racine sur la chaîne ?

Cette courte liste de frères constitue la preuve de Merkle ou preuve d'inclusion. Pour un lot d'un million de fichiers, il s'agit d'environ vingt empreintes numériques, car la longueur du chemin croît avec le logarithme de la taille du lot, et non avec le lot lui-même.

C'est véritablement élégant. C'est le mécanisme derrière OpenTimestamps, et derrière la plupart des services d'horodatage gratuits.

Ce que vous abandonnez

Trois éléments, tous opérationnels plutôt que cryptographiques.

Vous devez conserver le fichier de preuve. La chaîne contient la racine, et non votre empreinte. Sans le chemin des frères, il est impossible de relier votre fichier à la transaction. Perdez la preuve et l'horodatage disparaît — la transaction seule ne vous sera d'aucune aide.

Il y a généralement un délai et une étape supplémentaire. Les lots sont fermés selon un calendrier. Tant que le lot n'est pas validé et confirmé, votre preuve est incomplète, et dans certaines conceptions, vous devez revenir plus tard pour la « mettre à niveau ». Beaucoup de gens ne le font jamais et s'en rendent compte des années plus tard.

La vérification demande des explications. Recalculer un chemin de Merkle est une opération simple pour un développeur, mais une surprise désagréable pour toute autre personne. Un enregistrement dont la vérification nécessite un tutoriel est un enregistrement plus faible face à un public non technique.

L'alternative : une transaction par fichier

L'autre approche consiste à inscrire chaque empreinte numérique dans sa propre transaction. C'est ce que nous faisons : l'empreinte de votre contenu va dans les données d'entrée d'une transaction Ethereum dédiée, où quiconque peut la lire sur Etherscan avec l'option « Afficher en UTF-8 ».

Groupement Merkle Une transaction par fichier
Coût par horodatage Quasi nul Les frais complets de transaction
Ce que vous devez conserver Un fichier de preuve Rien — l'empreinte est sur la chaîne
Si vous perdez l'artefact Horodatage irrécupérable Récupérable depuis les données publiques
Étape supplémentaire après soumission Souvent oui Non
Vérification Recalculer un chemin de Merkle Lire la transaction
L'expliquer à un avocat Nécessite un tutoriel Ouvrir le lien

Aucune n'est cryptographiquement plus forte. Une preuve de Merkle est aussi solide qu'une écriture directe. La différence porte entièrement sur ce qui se passe ensuite, pour une personne qui n'est pas vous, tenant un artefact qu'elle ne comprend pas.

Quel choix faire

Si vous horodatez à grande échelle, si vous êtes à l'aise techniquement et fiable quant au stockage des fichiers, le groupement est excellent et le prix imbattable.

Si vous horodatez un petit nombre de documents importants, et que l'audience finale est un client, un assureur ou un tribunal, payer pour une écriture directe vous achète une preuve sans rien à perdre et sans rien à expliquer.

Le groupement est également le moyen sensé d'offrir un niveau gratuit, ce qu'il est utile de savoir lors de la comparaison des prix : un service facturant quelques centimes par certificat utilise presque certainement le groupement, tandis qu'un service facturant des dollars ne le fait probablement pas.

Questions fréquentes

Comment l'horodatage blockchain peut-il être gratuit ?
Par groupement. De nombreuses empreintes numériques sont combinées dans un arbre de Merkle et seule l'unique empreinte de la racine est inscrite sur la chaîne, de sorte que les frais d'une seule transaction sont partagés par tous les participants de ce lot. Le coût que vous supportez à la place est opérationnel : vous devez conserver la preuve d'inclusion, et dans certaines conceptions, revenir plus tard pour la finaliser.
Que se passe-t-il si je perds mon fichier de preuve de Merkle ?
L'horodatage est effectivement irrécupérable. La transaction blockchain contient la racine de Merkle, et non votre empreinte, donc sans le chemin des frères, il est impossible de lier votre fichier à celle-ci. C'est la façon la plus courante dont les gens perdent des horodatages qu'ils croyaient avoir conservés.
Une preuve de Merkle est-elle une preuve plus faible qu'une transaction directe ?
Pas sur le plan cryptographique — une preuve de Merkle correctement construite est exactement aussi solide. La différence pratique réside dans la présentation : sa vérification implique de recalculer un chemin de hachage, ce qui nécessite un outil et une explication, tandis qu'une écriture directe peut être lue directement sur un explorateur de blocs public par n'importe qui.

Prouvez dès aujourd’hui que votre travail existait

Horodatez n’importe quel fichier sur la blockchain Ethereum et recevez un certificat infalsifiable, valable à vie. Votre fichier ne quitte jamais votre navigateur.