Preuve d’existence pour le code : ce que c’est et pourquoi c’est important
La plupart des développeurs font confiance à l’historique Git pour savoir quand une fonctionnalité a été ajoutée. Mais dans un litige juridique, les dates de commit Git ne sont que des métadonnées. Une personne ayant accès au dépôt peut réécrire l’historique, forcer un push avec de nouvelles dates ou modifier une base de données serveur. C’est pourquoi la preuve d’existence pour le code est passée du statut de curiosité cryptographique à celui d’outil de conformité pratique.
La preuve d’existence vous donne quelque chose de plus solide qu’un message de commit ou une capture d’écran horodatée : un enregistrement mathématique, public et inviolable attestant qu’un état précis du dépôt a existé à un moment précis. Cet article explique ce que cela signifie, comment cela fonctionne sans exposer votre code source, et comment une GitHub App gérée comme Timestamp GIT en fait un workflow sans configuration.
Qu’est-ce que la preuve d’existence pour le code ?
La preuve d’existence est une preuve cryptographique qu’un morceau de code spécifique a existé à un moment précis dans le temps. Elle ne stocke pas votre code, elle ne prouve pas que vous l’avez écrit, et elle ne remplace pas l’enregistrement des droits d’auteur. Elle prouve un fait étroit mais puissant : cette empreinte exacte a existé avant cet horodatage.
L’empreinte est un hash de commit Git. Lorsque vous committez, Git génère un identifiant à sens unique à partir de l’état du dépôt :
git rev-parse HEAD
# 1a4f28c3e8f1d95b4e2a3cfe06cb0d5b9a4d1e7c
Ce hash est sensible. Changez un seul caractère dans n’importe quel fichier suivi, ou modifiez les métadonnées du commit, et vous obtenez un hash complètement différent. Mais le hash lui-même ne révèle rien sur les noms, les chemins ou le code source.
Pour rendre ce hash significatif dans le temps, la preuve d’existence l’ancre dans un registre public et immuable : la blockchain Bitcoin. Le bloc Bitcoin agit comme une horloge universelle. Une fois l’ancre confirmée, il n’existe aucun moyen pratique de modifier l’horodatage sans réécrire l’histoire de Bitcoin.
Les alternatives traditionnelles sont plus faibles :
- Les logs Git internes peuvent être modifiés, supprimés ou hébergés sur des serveurs hors de votre contrôle.
- La notarisation prouve qu’une personne a signé un document, mais elle est plus lente et nécessite souvent la confiance d’un tiers.
- Les brevets sont coûteux et lents ; ils exigent également une divulgation publique.
Une empreinte ancrée dans la blockchain est peu coûteuse, automatisée et mathématiquement vérifiable. Même si le service d’horodatage disparaît, la preuve peut être vérifiée directement contre Bitcoin.
Une analogie simple : l’enveloppe scellée
Imaginez que vous vous envoyez par la poste une enveloppe scellée contenant la description d’une invention. Lorsque l’enveloppe arrive, le cachet de la poste prouve que la description existait à cette date. Vous gardez l’enveloppe scellée jusqu’à ce qu’un litige vous oblige à l’ouvrir.
La preuve d’existence est la version numérique de cette astuce :
- Le hash de votre code est l’enveloppe scellée. Il masque le contenu.
- La blockchain Bitcoin est le cachet de la poste. Elle enregistre le moment où l’empreinte a été inscrite dans le registre public.
- Le reçu
.otsest l’enveloppe elle-même — la preuve cryptographique que vous conservez.
Mais une enveloppe physique a une faiblesse : quelqu’un pourrait théoriquement falsifier un cachet de la poste ou antidater une lettre. Un horodatage Bitcoin n’a pas cette faiblesse. La blockchain est publique, en ajout uniquement, et sécurisée par la preuve de travail. Une fois l’ancre enfouie sous suffisamment de blocs, l’antidatage est informatiquement infaisable.
Comment ça fonctionne sous le capot (brièvement)
Le flux complet est étonnamment simple :
Commit détecté
↓
Hash du commit Git extrait
↓
Lot nocturne de hashes
↓
Arbre de Merkle construit
↓
Racine de Merkle ancrée dans Bitcoin
↓
Reçu .ots renvoyé
Étape 1 : Empreinte. Git crée déjà le hash de commit unique lorsqu’un commit est effectué. Timestamp GIT extrait uniquement ce hash, pas le contenu qui se cache derrière.
Étape 2 : Ancrage. Chaque nuit, le service regroupe les hashes de commit en attente dans un manifeste. Il construit un arbre de Merkle à partir des hashes et ancre la racine de Merkle dans une transaction Bitcoin en utilisant le protocole OpenTimestamps. Cela regroupe de nombreux commits en un seul ancrage on-chain. La confirmation Bitcoin prend normalement environ trois heures, donc les fichiers de preuve apparaissent après la confirmation de l’ancre.
Étape 3 : Preuve. Le résultat est un fichier de reçu .ots. Le reçu contient le chemin cryptographique de votre hash de commit jusqu’à l’en-tête du bloc Bitcoin. N’importe qui peut ensuite vérifier la preuve localement contre la blockchain.
Il existe une méthode brute pour le faire vous-même en utilisant les outils OpenTimestamps et des interactions manuelles avec Bitcoin. Cela fonctionne, mais cela implique de maintenir vos propres calendriers, reçus et workflow de vérification. Timestamp GIT existe précisément pour supprimer ce fardeau opérationnel. La GitHub App surveille vos dépôts, regroupe les hashes chaque nuit et pousse les fichiers de preuve vers une branche timestamps ou un dépôt fantôme. Pas d’outils CLI, pas d’étapes de protocole manuelles, pas de commandes OpenTimestamps.
Pourquoi la preuve d’existence est importante pour les développeurs
Se protéger contre les chasseurs de brevets
Les chasseurs de brevets déposent souvent des brevets larges sur des technologies courantes. Si vous avez implémenté la même idée des mois plus tôt, un horodatage immuable peut invalider la revendication. Vous n’avez pas besoin d’expliquer publiquement votre implémentation — vous devez simplement montrer que le code existait avant la date de dépôt.
Résoudre les litiges de paternité
Lorsqu’un développeur principal quitte l’entreprise, ou qu’un contractant prétend avoir construit une fonctionnalité en premier, un hash de commit Git ancré dans Bitcoin règle le problème du « il a dit, elle a dit ». Vous pouvez prouver que l’état existait à une date précise, sans dépendre de journaux d’accès internes qu’un tribunal pourrait rejeter comme étant intéressés.
Se défendre contre les accusations de « salle blanche »
Un concurrent peut prétendre avoir développé indépendamment une fonctionnalité similaire après votre publication. Si votre code existait 18 mois plus tôt, l’horodatage crée un mur mathématique. L’accusation s’effondre face au registre public.
Renforcer les preuves juridiques
Les journaux internes sont souvent considérés comme manipulables. Les preuves ancrées dans la blockchain sont inviolables. Elles reposent sur SHA-256 et les données de blocs Bitcoin, des normes qui peuvent être vérifiées par des experts indépendants. Cela les rend bien plus solides dans les audits, les négociations de règlement ou les litiges.
Idées reçues courantes
- Ce n’est pas un enregistrement de droits d’auteur. Le droit d’auteur protège l’expression et naît automatiquement, mais la preuve d’existence ne remplace pas l’enregistrement. Elle appuie votre revendication concernant la chronologie.
- Ce n’est pas un brevet. Un horodatage n’accorde pas de droits exclusifs. Il fournit une preuve d’antériorité contre des revendications concurrentes ultérieures.
- Cela ne prouve pas la propriété. Cela prouve l’existence à un moment donné. La propriété est une question juridique distincte, généralement étayée par des documents supplémentaires.
Comprendre cette portée est important. La preuve d’existence est une pièce puissante du puzzle, pas un bouclier juridique magique.
Comment Timestamp GIT rend cela sans effort
Timestamp GIT est un SaaS géré plus une GitHub App qui automatise tout le pipeline d’horodatage. Vous l’installez une fois, sélectionnez les dépôts que vous souhaitez surveiller, et chaque nouveau commit est ancré dans Bitcoin lors du prochain lot nocturne.
Le détail architectural clé est la gestion zero-knowledge de votre code source :
- Mode Standard utilise la GitHub App pour lire uniquement le hash du commit HEAD d’un dépôt surveillé. Timestamp GIT ne voit jamais, ne copie jamais et ne stocke jamais votre code source réel. Il reçoit uniquement le hash du commit.
- Mode Enterprise ZK utilise une courte GitHub Action qui s’exécute dans votre propre environnement. L’action pousse uniquement le hash du commit vers l’API Timestamp GIT, de sorte que votre source ne quitte jamais votre infrastructure.
Après l’ancrage, la vérification est conçue pour être conviviale pour les développeurs :
- Badges intégrables pour votre README affichent le statut de vérification publique.
- Pages de statut publiques affichent la date d’ancrage la plus ancienne, les données de bloc et de transaction Bitcoin, et une heatmap calendaire.
- Certificats PDF téléchargeables pour une date spécifique.
- Vérification dans le navigateur s’exécute localement dans votre navigateur, de sorte que la preuve peut être vérifiée sans faire confiance à un service tiers.
- Endpoints d’API publics tels que
/api/statusLast/{user}/{repo}et/api/audit/{user}/{repo}permettent les intégrations et les rapports personnalisés.
Timestamp GIT prend également en charge une licence Docker auto-hébergée pour les environnements air-gapped ou hautement réglementés. Le démarrage rapide ressemble à ceci :
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
La tarification commence par un niveau gratuit pour les dépôts publics. Les dépôts privés et les cas d’usage entreprise passent à des plans payants. L’objectif est qu’obtenir un horodatage cryptographique devienne aussi normal que d’activer la protection de branche.
Si vous voulez plus de détails sur le flux de configuration, consultez Automatiser l’horodatage des commits Git avec une GitHub App.
FAQ
Qu’est-ce que la preuve d’existence pour le code, exactement ?
La preuve d’existence est une preuve cryptographique qu’un morceau de code spécifique a existé à un moment précis dans le temps. Elle fonctionne en hachant le code, ou un commit Git, et en ancrant ce hash dans la blockchain Bitcoin. L’immuabilité de la blockchain garantit que l’horodatage ne peut pas être modifié ou antidaté, et la preuve peut être vérifiée indépendamment par n’importe qui.
En quoi la preuve d’existence diffère-t-elle du droit d’auteur ou des brevets ?
Le droit d’auteur protège l’expression d’une idée et naît automatiquement, mais prouver la date de création peut être difficile. Les brevets protègent les inventions mais sont coûteux, lents et exigent une divulgation publique. La preuve d’existence fournit un horodatage inviolable qui peut appuyer à la fois les revendications de droit d’auteur et de brevet, mais elle n’accorde pas de droits exclusifs par elle-même.
Puis-je prouver l’existence sans révéler mon code source ?
Oui. La preuve d’existence utilise un hash cryptographique du code, pas le code lui-même. Un hash est une fonction à sens unique : il est informatiquement infaisable de dériver le code original à partir du hash. L’architecture zero-knowledge de Timestamp GIT garantit que seul le hash du commit est envoyé au service, jamais le code source. En mode Enterprise ZK, même le hash est poussé depuis votre propre environnement.
L’horodatage Bitcoin est-il reconnu juridiquement ?
Bien que les lois varient selon les juridictions, les horodatages basés sur la blockchain sont de plus en plus acceptés comme preuves devant les tribunaux en raison de leur intégrité cryptographique et de leur immuabilité. Le protocole OpenTimestamps utilisé par Timestamp GIT repose sur des normes largement acceptées telles que SHA-256 et la blockchain Bitcoin. La preuve peut être vérifiée indépendamment, ce qui en fait une preuve solide de l’existence à un moment donné.
Comment démarrer avec Timestamp GIT ?
Commencez par installer la GitHub App Timestamp GIT sur vos dépôts. L’application détecte automatiquement les nouveaux commits et les ancre dans Bitcoin chaque nuit. Vous pouvez surveiller le statut via des badges ou le tableau de bord public, et télécharger des rapports de vérification. Pour les dépôts privés, vous pouvez choisir un plan payant ou vous auto-héberger avec Docker.
Conclusion
La preuve d’existence pour le code change la question de « faites-vous confiance à mon historique Git ? » à « pouvez-vous vérifier ce hash contre Bitcoin ? » C’est une position bien plus solide.
Ce n’est pas un remplacement de l’enregistrement des droits d’auteur ou d’une stratégie de brevets. C’est la couche manquante qui dit au monde, avec une certitude mathématique, quand un état de dépôt a existé. Pour les développeurs, les startups, les agences et les équipes de conformité, cette couche devient une pratique standard.
Si vous voulez implémenter la preuve d’existence sans gérer manuellement les reçus cryptographiques, Timestamp GIT est la voie gérée. Installez la GitHub App une fois, connectez vos dépôts et laissez l’ancrage nocturne dans Bitcoin se faire automatiquement. Vous pouvez explorer le service sur https://timestampgit.dev/.
Articles connexes
- Automatiser l’horodatage des commits Git avec une GitHub App
- Alternative à OpenTimestamps : horodatage géré pour Git
- Protection du code pour les freelances : une solution d’horodatage