Tous les articles

9 min de lecture

Preuve de réserves avec des racines de Merkle

Une racine de Merkle ancrée par un horodatage Label 309 vous permet de vous engager sur un instantané de réserves, de passifs ou d'éléments de preuve, et de prouver l'inclusion à chaque client — sans publier le moindre compte.

Une racine de Merkle peut rendre un instantané de preuve de réserves bien plus facile à vérifier, mais elle ne prouve pas la solvabilité à elle seule. Elle prouve qu'un ensemble précis d'entrées a fait l'objet d'un engagement à un moment précis. Savoir si ces entrées correspondent à une entreprise solvable est une tout autre question.

Voici le principe. Une plateforme d'échange, un dépositaire, une fintech, une marketplace, un émetteur de stablecoin ou une équipe de trésorerie interne construit un arbre de Merkle sur un instantané de réserves ou de passifs, puis ancre l'unique racine de 32 octets dans un record Label 309 sur Cardano. Chaque client, chaque portefeuille ou chaque ligne de solde est une feuille. Plus tard, tout participant peut recevoir une courte preuve d'inclusion montrant que son entrée faisait partie de l'instantané engagé — sans que l'ensemble du jeu de données soit jamais publié.

L'horodatage remplit une fonction précise : il fixe le moment où cet engagement a existé, sur une chaîne publique, sans aucun serveur d'émetteur à qui faire confiance. La qualité de l'instantané lui-même repose toujours sur la comptabilité, le périmètre, la couverture des passifs, les contrôles de conservation et la revue indépendante.

Qu'est-ce qu'un instantané de preuve de réserves ?

Un instantané de preuve de réserves est un élément de preuve sur des actifs à un instant donné.

Pour les entreprises nativement crypto, cela revient souvent à prouver que certains portefeuilles sur la chaîne détenaient certains actifs à une certaine hauteur de bloc ou à un certain moment. Dans un processus plus robuste, cela relie aussi ces actifs aux passifs envers les clients, aux registres internes, aux contrôles de conservation et à une revue indépendante.

Un instantané peut inclure :

  • les soldes des portefeuilles de réserve ;
  • les identifiants d'actifs ;
  • les hauteurs de bloc ;
  • les soldes de passifs ;
  • les engagements sur les comptes clients ;
  • les exclusions et ajustements ;
  • les rapports d'auditeur ;
  • les éléments de preuve de contrôle ;
  • les fichiers de rapprochement ;
  • les attestations de la direction.

L'instantané n'est pas un bilan vivant. C'est un engagement à un instant donné.

Pourquoi utiliser une racine de Merkle ?

Parce que l'instantané complet est généralement trop volumineux ou trop sensible pour être publié.

Un arbre de Merkle permet à une entreprise de s'engager sur de nombreuses entrées au moyen d'une seule racine de 32 octets. Chaque client, chaque compte, chaque portefeuille ou chaque ligne de solde devient une feuille, les feuilles sont hachées ensemble pour former un arbre, et seule la racine est inscrite sur la chaîne. La racine ne révèle rien des feuilles sur lesquelles elle s'engage, tout en étant liée à chacune d'elles : modifiez une feuille, ou le nombre de feuilles, et la racine ne correspond plus. Plus tard, un participant reçoit une preuve d'inclusion — un court chemin de nœuds frères, de l'ordre de log n empreintes — montrant que son entrée faisait partie de l'instantané engagé.

C'est ce qui rend possible la divulgation sélective :

  • un client unique peut vérifier sa seule inclusion ;
  • un auditeur peut recevoir la liste complète des feuilles et la correspondance des comptes ;
  • le public ne voit que la racine horodatée ;
  • les détails sensibles des comptes n'ont jamais à être exposés.

C'est le même mécanisme de regroupement qui sous-tend l'ancrage d' un seul record pour des milliers de fichiers : la racine est compacte, mais c'est le processus sous-jacent qui compte réellement.

Qu'apporte Label 309 ?

Il apporte un horodatage public indépendant que personne ne contrôle seul.

Un rapport de preuve de réserves se trouve souvent sur un site web ou dans un PDF, et la racine de Merkle dans un billet de blog. Mais un site web peut changer. Un PDF peut être remplacé. Un rapport peut être discrètement mis à jour, et une ancienne racine peut disparaître avec lui.

Publier la racine de l'instantané dans un record Label 309 confère plutôt à l'engagement un ancrage temporel public sur Cardano. Chacun peut ensuite confirmer que la même racine existait avant le temps de bloc de la transaction, en n'utilisant que les métadonnées de la transaction et un explorateur Cardano public — sans serveur d'émetteur, et sans faire confiance au domaine ni à l'infrastructure de CardanoWall.

Le record peut aussi inclure :

  • l'empreinte d'une déclaration signée ;
  • les empreintes des instantanés d'actifs ;
  • les racines des instantanés de passifs ;
  • des URI de rapport adressées par le contenu ;
  • des dossiers de travail d'audit scellés à l'intention de destinataires choisis ;
  • un pointeur de remplacement pour les rapports corrigés.

Que faut-il mettre dans l'instantané ?

Définissez l'affirmation avant de construire l'arbre.

L'instantané doit indiquer clairement ce qu'il prouve. Un instantané de réserves seules n'équivaut pas à un instantané de réserves et de passifs. Un instantané de portefeuilles seuls n'équivaut pas à un état financier audité.

Les champs utiles peuvent inclure :

  • l'identifiant de l'instantané ;
  • l'heure de l'instantané ;
  • la chaîne et l'identifiant d'actif ;
  • la hauteur de bloc ou la référence de registre ;
  • l'adresse du portefeuille ou l'identifiant de compte interne ;
  • le solde ;
  • l'empreinte de l'entrée de passif ;
  • l'empreinte de l'identifiant client ou l'identifiant masqué ;
  • l'empreinte de la feuille d'inclusion ;
  • la référence de l'auditeur ou du réviseur ;
  • l'empreinte du rapport ;
  • l'énoncé du périmètre ;
  • les exclusions ;
  • l'index de feuille Merkle.

Le schéma doit être déterministe. Si la construction des feuilles est ambiguë, la vérification devient fragile.

Comment les clients peuvent-ils vérifier l'inclusion ?

L'entreprise remet à chaque client un dossier de preuve.

Ce dossier peut inclure :

  • l'entrée de solde propre au client ;
  • le sel ou le matériel de masquage, le cas échéant ;
  • le chemin de Merkle ;
  • la racine ;
  • la référence de transaction Label 309 ;
  • l'empreinte du rapport ;
  • les instructions de vérification.

Le client vérifie que son entrée, une fois hachée, donne bien la feuille, que le chemin de Merkle se replie jusqu'à la racine publiée, et que cette racine correspond à celle inscrite dans le record Label 309 sur la chaîne. Rien de tout cela n'exige que les serveurs de l'entreprise soient en ligne ni honnêtes — les outils Label 309 open source, dont l'outil en ligne de commande cardanowall, peuvent vérifier un record et contrôler les preuves d'inclusion de façon indépendante.

Cela prouve l'inclusion dans cet instantané. Cela ne prouve pas que tous les autres comptes ont été traités correctement, ce qui est précisément la raison pour laquelle la perspective de l'auditeur ci-dessous a son importance.

Comment les auditeurs peuvent-ils s'en servir ?

Les auditeurs peuvent inspecter l'ensemble complet des éléments de preuve.

Le public ne voit peut-être que la racine et un rapport. Un auditeur ou un régulateur peut, lui, recevoir le manifeste complet, la liste des feuilles, la correspondance des comptes, les éléments de preuve relatifs aux portefeuilles, les fichiers de rapprochement et les dossiers de travail scellés.

Label 309 peut aider en ancrant :

  • la racine publique ;
  • l'empreinte du manifeste privé complet ;
  • les éléments de preuve des soldes de portefeuilles ;
  • les fichiers de passifs ;
  • les exports de rapprochement ;
  • les versions provisoires du rapport d'audit ;
  • le rapport final signé.

La piste d'audit en devient plus difficile à réécrire après coup.

Et les corrections ?

Les corrections doivent être visibles, pas dissimulées.

Si l'entreprise découvre une erreur dans un instantané, elle devrait publier un record corrigé plutôt que de remplacer silencieusement l'ancien rapport. Label 309 dispose d'un mécanisme intégré pour cela : un pointeur supersedes porte l'empreinte de transaction du record antérieur, créant un lien en mode ajout seul entre la correction et ce qu'elle remplace.

Deux points méritent d'être compris à propos de ce lien. Premièrement, le remplacement ne supprime ni n'invalide le record antérieur — la chaîne fonctionne en mode ajout seul, de sorte que la racine d'origine reste sur la chaîne et vérifiable indépendamment pour toujours. Le nouveau record se place à côté d'elle et pointe en arrière ; les lecteurs peuvent voir les deux. Deuxièmement, pour que le lien soit digne de confiance, les deux records doivent être signés par la même clé. N'importe qui peut publier un record qui prétend remplacer le vôtre ; les vérificateurs et les outils sont donc censés n'honorer un lien de remplacement que lorsque le record remplaçant est signé par une clé également présente dans l'original. Si vous comptez émettre des corrections, signez vos instantanés.

C'est bien préférable à faire comme si la première racine n'avait jamais existé.

Que ne prouve pas cette approche ?

Elle ne prouve pas la solvabilité à elle seule.

Elle ne prouve pas que tous les passifs ont été inclus.

Elle ne prouve pas que les actifs sont libres de toute charge.

Elle ne prouve pas que les clés sont contrôlées de façon sûre.

Elle ne prouve pas que les actifs n'ont pas été empruntés temporairement pour les besoins de l'instantané.

Elle ne remplace ni un audit, ni une revue d'un régulateur, ni des contrôles comptables, ni le rapprochement des passifs envers les clients.

Ce qu'elle prouve est étroit et réellement utile : un engagement précis a existé à un moment public, et l'on peut démontrer que des entrées individuelles s'y trouvent. Comme pour toute preuve d'existence, il s'agit d'une preuve de moment et d'intégrité, non de véracité ni de droits.

Où cela peut-il être utile en dehors des plateformes d'échange crypto ?

Le même principe fonctionne partout où un instantané comporte de nombreuses entrées privées.

Quelques exemples :

  • les réserves de stablecoins ;
  • les rapports d'actifs tokenisés ;
  • les soldes des vendeurs d'une marketplace ;
  • les soldes de conservation des fintechs ;
  • les instantanés de trésorerie internes ;
  • les registres de participation des salariés ;
  • les passifs liés aux points de fidélité ;
  • les inventaires de crédits carbone ;
  • les réserves pour sinistres en assurance ;
  • les registres de dépôts des clients.

L'idée commune est simple : s'engager sur de nombreuses entrées, divulguer sélectivement, préserver l'horodatage.

En résumé

Les racines de Merkle rendent les instantanés de preuve de réserves adaptés au passage à l'échelle. Label 309 rend la racine horodatée et vérifiable de façon indépendante face à une chaîne publique.

Utilisez la racine pour vous engager sur l'instantané. Utilisez les preuves d'inclusion pour les clients et les auditeurs. Utilisez les records scellés pour les éléments de preuve sensibles. Utilisez le remplacement — avec des signatures — pour les corrections.

Soyez ensuite honnête sur la limite : une racine de Merkle horodatée n'est pas la solvabilité. C'est une pièce solide, qui rend toute altération détectable, d'un processus de preuve plus large. Label 309 est lui-même un standard ouvert et indépendant du fournisseur, soumis au processus CIP de Cardano et actuellement en cours de revue par les éditeurs CIP en tant que proposition de catégorie Metadata — les mécanismes de regroupement, de hachage et de remplacement décrits ci-dessus sont définis dans le standard, pas dans un produit en particulier.

Pour aller plus loin

compliance-legalmerkleaudit