Vérification.
Tout le reste sur ce site vous demande de croire quelque chose. Ceci, non. Étant donné l'archive de preuves et le certificat, la vérification est arithmétique, et l'enregistrement auquel vous la confrontez se trouve sur une blockchain publique que nous ne pouvons pas modifier.
Un certificat est un pointeur vers deux choses. Ni l'une ni l'autre n'est une capture d'écran, et ni l'une ni l'autre n'est notre parole.
Un fichier JSON, evidence.json, contenant tout ce qui a été certifié : le NDA et son empreinte, chaque partie avec la manière dont elle a réellement été identifiée et le moment où elle a accepté, et, pour une réunion protégée, la transcription (avec les deux versions et leurs empreintes, si elle a été corrigée), le journal d'événements de la réunion et l'empreinte de l'enregistrement. Ce n'est pas un résumé de ce qui s'est passé. C'est ce qui s'est passé.
Une transaction publique sur Polygon PoS dans laquelle l'empreinte de ce paquet a été inscrite, avec un numéro de bloc et un horodatage de bloc. À partir du moment où elle est minée, personne, pas même nous, ne peut la déplacer, la modifier ou la reprendre.
Dans cet ordre. La troisième n'a de sens que si la deuxième a réussi.
01
Prenez le SHA-256 de evidence.json exactement tel quel. Le fichier à l'intérieur de l'archive est déjà en forme canonique, donc il n'y a rien à normaliser au préalable et aucune bibliothèque de chez nous à installer.
02
Elle doit être égale au hash du paquet imprimé sur le certificat : sur le PDF, dans certificate.json à l'intérieur de l'archive, et sur la page publique de vérification. Si elle diffère, les preuves entre vos mains ne sont pas celles qui ont été certifiées, et la troisième vérification est sans objet.
03
Ouvrez la transaction d'ancrage sur n'importe quel explorateur de blocs et lisez l'événement Anchored. Le hash qu'elle porte doit être celui que vous venez de calculer. L'horodatage du bloc vous indique le moment à partir duquel cette empreinte ne pouvait plus être modifiée par qui que ce soit.
Hacher du JSON naïvement serait une loterie : le même contenu, écrit par deux programmes, donne deux flux d'octets différents (un ordre de clés différent, un espacement différent, une manière différente d'écrire le même nombre) et donc deux hash différents.
Le paquet est donc écrit dans la forme canonique de la RFC 8785. Canonique signifie qu'il existe exactement une manière admissible d'écrire un contenu donné : clés triées, une seule forme écrite pour chaque nombre et chaque chaîne, sortie UTF-8. Deux personnes, sur deux machines, à dix ans d'intervalle, produisent les mêmes octets à partir du même paquet, ce qui fait de « recalculer le hash » une procédure plutôt qu'une invitation.
C'est aussi pourquoi le fichier que nous livrons est déjà canonique : sur ce fichier, un simple SHA-256 constitue toute la première vérification.
Deux commandes et un lien. Rien ici ne vient de nous.
Recalculez l'empreinte : macOS, Linux
shasum -a 256 evidence.jsonRecalculez l'empreinte : Windows
certutil -hashfile evidence.json SHA256Ouvrez la transaction d'ancrage : l'identifiant figure sur votre certificat
https://polygonscan.com/tx/<transaction id>Le contrat d'ancrage : Polygon PoS, chaîne 137
0x5CceC6F5806b7C949eB90D61fB9D13Cb639AC203Source vérifiée sur Polygonscan. Anchored(hash, timestamp, sender) est émis pour une transaction dédiée. Le contrat définit aussi BatchAnchored(merkleRoot, timestamp, sender) pour un lot quotidien, qui n'est pas encore utilisé : aujourd'hui, chaque certificat a sa propre transaction.
Ouvrir le contrat sur PolygonscanNous maintenons un vérificateur en ligne de commande qui effectue tout ce qui précède en une seule commande, preuves de Merkle incluses. Il est sous licence MIT et n'est pas encore publié sur un registre public, de sorte que vous n'avez actuellement aucun moyen de vous le procurer, ce qui explique précisément pourquoi cette page est écrite autour d'outils que vous possédez déjà. Lorsqu'il sera publié, c'est ici que l'instruction apparaîtra.
Aujourd'hui, chaque empreinte atteint la chaîne dans sa propre transaction. Le contrat prend aussi en charge un lot quotidien, pas encore utilisé ; lorsqu'il le sera, il sera tout aussi vérifiable. Ce qui change, c'est le coût et l'immédiateté, pas la solidité.
L'événement Anchored porte directement l'empreinte de votre paquet. Vous cherchez votre propre hash et vous le trouvez, ou non.
Seule la racine d'un arbre est inscrite sur la chaîne, dans un événement BatchAnchored, et le certificat porte la preuve qui mène de votre empreinte à cette racine : la feuille est le keccak-256 du hash du paquet, chaque nœud interne le keccak-256 de la paire triée de ses enfants. La preuve est vérifiable hors ligne, sur votre propre machine, et la racine doit alors apparaître dans un événement BatchAnchored. Un certificat par lot n'est pas un certificat plus faible, c'est la même preuve avec une courte étape supplémentaire.
Un certificat qui porte la mention « ancrage en attente » a été scellé mais pas encore écrit sur la chaîne. Son empreinte est déjà figée ; ce qui manque, c'est la transaction. C'est un état, et la page indique lequel : jamais un « ancré » silencieux.
Vérifiabilité et confidentialité ne s'opposent pas ici, car la frontière n'est pas une règle que quelqu'un suit : c'est une vue de base de données, et une vue ne peut renvoyer que ce qu'elle sélectionne.
Rien de tout cela n'est masqué après coup. Ce n'est pas sélectionné : la requête qui sert cette page ne peut absolument pas accéder à ces colonnes.
Une non-concordance est une information, pas une accusation. Lisez-la dans cet ordre.
La cause la plus fréquente, de loin, est que le fichier a été ouvert puis enregistré à nouveau par un outil qui l’a reformaté : un espace ajouté suffit. Téléchargez à nouveau l’archive d’origine et recalculez sur le fichier non modifié.
Dans ce cas, la preuve qui vous a été remise n’est pas celle qui a été certifiée, et le certificat ne la couvre pas. Prévenez la personne qui vous a remis le fichier et écrivez-nous avec le code du certificat.
Vérifiez-le caractère par caractère sur le certificat : le code a une forme fixe, CNDA-XXXX-XXXX-XXXX. Un code bien formé mais toujours inconnu signifie qu’aucun certificat n’a jamais été émis avec lui.
La vérification publique ne demande rien d’autre : ni compte, ni adresse e-mail, ni motif.
Vérifier un certificat