Preuve d’existence dans les logiciels : guide du débutant
Qu’est-ce que cela signifie réellement de prouver qu’un logiciel existait à un moment précis ? Si vous avez déjà eu besoin de montrer « j’ai construit ceci avant toi » sans révéler votre code source, la réponse se trouve dans un concept appelé preuve d’existence. Ce guide explique l’idée, dissipe les idées reçues et montre comment Timestamp GIT en fait une GitHub App sans configuration.
Qu’est-ce que la preuve d’existence dans les logiciels ?
La preuve d’existence est une preuve cryptographique qu’une donnée numérique spécifique existait à un moment précis. Dans les logiciels, cette donnée est généralement un hash de commit Git. Le processus fonctionne ainsi :
- Création d’un hash à sens unique des données — une empreinte cryptographique.
- Ancrage de cette empreinte dans un registre public immuable, la blockchain Bitcoin.
- Conservation d’un reçu qui permet à quiconque de vérifier l’ancrage de manière indépendante.
Contrairement aux journaux internes, aux e-mails ou aux horodatages ordinaires des systèmes de contrôle de version, la preuve cryptographique ne dépend pas de l’honnêteté d’une seule personne ou d’un seul serveur. La preuve vit dans la blockchain publique de Bitcoin, où les mathématiques peuvent être vérifiées par n’importe qui.
La preuve d’existence est également un outil clé pour établir l’antériorité dans les litiges de propriété intellectuelle. Si un troll des brevets revendique votre technique, un horodatage ancré dans Bitcoin peut montrer que vous disposiez déjà de l’implémentation des mois ou des années plus tôt.
Une analogie simple : le notaire public pour votre code
Pensez à un notaire traditionnel. Vous signez un document, le notaire observe, puis y appose un sceau officiel et une date. Plus tard, n’importe qui peut regarder le sceau et savoir que le document existait à cette date.
La preuve d’existence fait la même chose pour les données numériques :
- Empreinte — Votre hash de commit Git est une empreinte unique de l’état exact de votre dépôt à ce moment-là.
- Ancrage — L’empreinte est enregistrée dans la blockchain Bitcoin, comme le registre officiel d’un notaire.
- Preuve — Vous recevez un fichier de reçu
.ots, comme un certificat notarié que n’importe qui peut vérifier.
La différence clé : personne n’a besoin de faire confiance au serveur ou à la base de données du notaire. Le registre public de Bitcoin rend l’enregistrement immuable.
Comment ça fonctionne sous le capot (brièvement)
Sous le capot, la preuve d’existence pour les logiciels suit trois étapes :
- Empreinte — Git génère un hash à sens unique de l’état exact du dépôt. Ce hash est l’engagement.
- Ancrage — Timestamp GIT extrait uniquement les hashes de commit, les regroupe quotidiennement et crée un arbre de Merkle. La racine de Merkle est ensuite ancrée dans une transaction Bitcoin à l’aide du protocole OpenTimestamps.
- Preuve — Une fois le bloc Bitcoin confirmé, vous recevez un fichier de reçu
.otsimmuable. N’importe qui peut le vérifier à l’aide des outils de vérification OpenTimestamps standard contre la blockchain Bitcoin.
Voici à quoi ressemble un hash de commit en local :
# Your Git commit hash is a one-way fingerprint of the full repository state
git rev-parse HEAD
# Example output: 7c2f0a9b3e8d4f1c6a5b9c0d1e2f3a4b5c6d7e8f
Timestamp GIT automatise tout ce pipeline. Vous installez la GitHub App une seule fois, et chaque commit sur un dépôt surveillé est empreinté et ancré automatiquement chaque nuit. Pas d’outils CLI, pas de commandes OpenTimestamps manuelles, pas de configuration de portefeuille Bitcoin. Le produit est un service géré qui masque le protocole derrière une intégration GitHub.
La connaissance nulle est intégrée : Timestamp GIT ne voit jamais, ne copie jamais et ne stocke jamais votre code source. Il traite uniquement les hashes de commit. En mode Enterprise ZK, même le hash de commit est poussé depuis votre propre infrastructure par une GitHub Action, de sorte qu’aucun accès en lecture au dépôt source n’est requis.
La vérification est indépendante. Vous pouvez télécharger le reçu .ots et le vérifier vous-même contre la blockchain Bitcoin, même si Timestamp GIT disparaît.
Pourquoi la preuve d’existence est importante : idées reçues courantes
Idée reçue n° 1 : « Mon historique Git suffit. »
L’historique Git est utile pour le développement, mais il vit sur des serveurs que vous ne contrôlez pas entièrement. Les commits Git peuvent être réécrits, les dates peuvent être modifiées, et les journaux internes sont souvent écartés lors des audits juridiques comme étant intéressés ou manipulables. La preuve d’existence ancre un hash dans une blockchain publique, rendant la chronologie mathématiquement vérifiable.
Idée reçue n° 2 : « Je dois publier mon code pour prouver l’antériorité. »
Non. L’empreinte est un hash à sens unique. Timestamp GIT ne voit jamais votre code source, et la preuve ne le révèle pas. Vous pouvez établir l’antériorité sans publier votre code ni déposer de documents publics.
Idée reçue n° 3 : « Les horodatages blockchain ne servent qu’aux cryptomonnaies. »
La valeur principale de Bitcoin pour les développeurs de logiciels n’est pas la monnaie. C’est un registre public immuable. Les mêmes propriétés qui empêchent la double dépense rendent également Bitcoin idéal pour horodater n’importe quelle donnée numérique. Votre preuve est intégrée dans les données de bloc Bitcoin, ce qui la rend vérifiable mondialement et permanente.
Scénarios réels où la preuve d’existence est importante :
- Se défendre contre les trolls des brevets en montrant que vous avez implémenté une technique avant un dépôt de brevet
- Prouver quand une fonctionnalité a été conçue lors d’un litige entre employés
- Établir des chronologies de développement en salle blanche lorsqu’un concurrent revendique une invention indépendante
- Protéger des secrets commerciaux sans les publier
Comment obtenir une preuve d’existence pour votre code avec Timestamp GIT
Voici le flux de travail principal :
- Installez la GitHub App Timestamp GIT sur votre dépôt. Il s’agit d’une configuration unique.
- Continuez à committer comme d’habitude. La GitHub App détecte automatiquement les nouveaux commits via des webhooks.
- Chaque nuit, Timestamp GIT regroupe vos hashes de commit, crée un arbre de Merkle et ancre la racine de Merkle dans la blockchain Bitcoin.
- Les preuves sont livrées sur une branche dédiée ou un dépôt miroir. Vous pouvez afficher un badge de vérification dans votre README pour montrer que vos commits sont ancrés.
# After installing the GitHub App, your normal workflow is unchanged
git add .
git commit -m "Add proof-of-existence example"
git push origin main
Si vous avez besoin d’une isolation maximale, le mode Enterprise ZK exécute une GitHub Action sur votre infrastructure qui pousse uniquement le hash de commit vers l’API Timestamp GIT. Zéro accès au code signifie que votre source ne quitte jamais votre environnement.
Pour les environnements isolés ou réglementés, Timestamp GIT est également disponible en tant qu’image Docker auto-hébergée. Cela vous permet d’exécuter la même automatisation au sein de votre propre infrastructure.
FAQ
Quelle est la différence entre preuve d’existence et preuve de paternité ?
La preuve d’existence établit qu’un artefact numérique spécifique, comme un hash de commit Git, existait à un certain moment. La preuve de paternité lie en outre cet artefact à une personne ou une entité spécifique. Timestamp GIT fournit une preuve d’existence ; la paternité peut être déduite des métadonnées du dépôt et du commit.
La preuve d’existence peut-elle être vérifiée sans faire confiance à Timestamp GIT ?
Oui. La preuve repose sur le protocole OpenTimestamps et la blockchain Bitcoin. Vous pouvez télécharger le reçu .ots et le vérifier de manière indépendante à l’aide des outils de vérification OpenTimestamps standard contre la blockchain Bitcoin. Timestamp GIT n’a pas besoin d’être impliqué dans la vérification.
La preuve d’existence nécessite-t-elle de révéler mon code source ?
Non. Timestamp GIT traite uniquement les hashes de commit Git, qui sont des empreintes à sens unique. Votre code source ne quitte jamais votre dépôt. En mode Enterprise ZK, même le hash de commit est poussé depuis votre infrastructure, garantissant zéro accès au code.
Combien de temps faut-il pour obtenir une preuve après un commit ?
Timestamp GIT regroupe les commits quotidiennement et les ancre dans la blockchain Bitcoin. La confirmation prend généralement quelques heures après le lot quotidien. Vous recevez le reçu .ots une fois l’ancrage confirmé.
Combien coûte Timestamp GIT ?
Timestamp GIT propose un plan Open Source pour les dépôts publics, un plan Pro Agency pour les dépôts privés et un plan Enterprise ZK pour le mode connaissance nulle basé sur les GitHub Actions. Une licence Docker auto-hébergée est également disponible pour les équipes qui doivent exécuter le service sur leur propre infrastructure.
Que faire si je veux vérifier l’horodatage d’un commit spécifique ?
Timestamp GIT fournit un tableau de bord public pour chaque dépôt surveillé, incluant la longévité, les dates d’ancrage, les données de bloc Bitcoin et des certificats CSV et PDF d’audit téléchargeables. Vous pouvez également utiliser les points de terminaison API pour le statut, la vérification et les rapports. Pour une présentation plus détaillée, consultez l’article connexe sur la vérification des horodatages de commit Git.
Conclusion
La preuve d’existence dans les logiciels n’est pas de la magie. C’est la combinaison d’une empreinte à sens unique, d’un registre public immuable et d’un reçu vérifiable de manière indépendante. Les alternatives traditionnelles — journaux Git, horodatages de serveur et pistes d’e-mails — sont faibles dans un contexte juridique. Une preuve ancrée dans Bitcoin est mathématiquement bien plus solide.
Timestamp GIT transforme ce concept en un produit que vous pouvez installer une fois et oublier. La GitHub App surveille votre dépôt, regroupe les hashes de commit la nuit et renvoie des reçus .ots sans jamais lire votre code source. Si vous voulez prouver quand votre code a existé, installez Timestamp GIT et connectez votre dépôt.
Articles connexes
- Comment vérifier les horodatages de vos commits Git
- Défendez votre logiciel contre les trolls des brevets grâce aux horodatages
- OpenTimestamps vs Timestamp GIT : lequel convient à votre code ?