Code-Zeitstempel verifizieren, ohne deinen Quellcode zu teilen
Die Verifizierung ist der Moment, in dem eine kryptografische Behauptung zum Beweis wird. Du kannst jeden Commit mit einem Zeitstempel versehen, aber wenn du diesen Zeitstempel später nicht verifizieren kannst, ohne deinen Quellcode herauszugeben, versagt das System genau dann, wenn du es am dringendsten brauchst. Timestamp GIT ist ein verwaltetes SaaS-Produkt und eine GitHub-App, die Git-Commit-Hashes über das OpenTimestamps-Protokoll in der Bitcoin-Blockchain verankert. Der Beweis ist für jeden mit dem Receipt verifizierbar, aber das Receipt enthält niemals deinen Code.
Warum Verifizierung für Code-Zeitstempel wichtig ist
Ein Zeitstempel ist nur so gut wie seine Verifizierungsgeschichte. Für den Stand der Technik musst du nachweisen, dass ein bestimmter Commit vor einem bestimmten Datum existierte. Dieser Nachweis muss in zwei Richtungen funktionieren: Er muss stark genug für ein Gericht oder einen Prüfer sein und privat genug, dass du keine Geschäftsgeheimnisse preisgibst, nur um ihre Existenz zu beweisen.
Die Kernidee ist Zero-Knowledge-Verifizierung: Existenz beweisen, ohne Inhalte offenzulegen. Ein Git-Commit-Hash ist ein Einweg-Fingerabdruck des Repository-Zustands. Der Hash allein kann nicht in Quellcode zurückverwandelt werden. Wenn dieser Hash in der Bitcoin-Blockchain verankert ist, erhältst du eine öffentliche, unveränderliche Aufzeichnung darüber, dass der Fingerabdruck zu einem bestimmten Zeitpunkt existierte.
Wenn du mit dem Konzept noch nicht vertraut bist, lies Was ist ein Existenznachweis für Software-Code?. Dieser Artikel konzentriert sich auf die Verifizierungsseite: wie ein Beweis aussieht, wie man ihn prüft und was die Ergebnisse bedeuten.
Timestamp GIT automatisiert das zugrunde liegende Protokoll, sodass du keine OpenTimestamps-Befehle ausführen oder Bitcoin-Transaktionen manuell verwalten musst. Du installierst die GitHub-App einmal, verbindest ein Repository, und jeder Commit wird gesammelt und nächtlich verankert. Die Verifizierung erfolgt dann über Badges, öffentliche Statusseiten und einen browserbasierten Merkle-Chain-Viewer.
Wie ein Zeitstempel-Beweis aussieht
Jeder verankerte Tag erzeugt zwei Hauptartefakte in deinem Repository:
- Eine Manifestdatei (
.txt), die die Commit-Hashes auflistet, die im Tages-Batch enthalten sind. - Eine
.ots-Receipt-Datei, die den OpenTimestamps-Beweis und die Bitcoin-Verankerungsdaten enthält.
Diese Dateien werden in einen dedizierten Timestamps-Branch in deinem Repository oder in ein Shadow-Repository gepusht. Sie enthalten Commit-Hashes und Verankerungsdaten – keinen Quellcode, keine Dateiinhalte und keine Repository-Metadaten über das hinaus, was für den Beweis erforderlich ist.
Da das .ots-Receipt öffentlich und eigenständig ist, kann jeder mit der Datei die Verankerung gegen die Bitcoin-Blockchain prüfen. Der Beweis hängt nicht von einer privaten Datenbank ab. Timestamp GIT stellt einen Web-Verifizierer bereit, der die Merkle-Chain-Prüfungen lokal in deinem Browser durchführt, sodass du verifizieren kannst, ohne Software zu installieren und ohne preiszugeben, welches Repository du prüfst.
Um die Verifizierung sichtbar zu machen, unterstützt Timestamp GIT einbettbare Badges für deine README. Das Badge verlinkt auf die öffentliche Statusseite deines Repositorys. Bei privaten Repositorys enthält die Status-URL einen verschlüsselten HMAC, sodass nur autorisierte Benutzer das Ergebnis sehen können. Das Badge selbst kann den neuesten verankerten Bitcoin-Block, die Gesamtzahl der gestempelten Commits oder eine kombinierte Zusammenfassung anzeigen.
Schritt-für-Schritt-Verifizierung mit Timestamp GIT
Der Verifizierungs-Workflow ist für Personen konzipiert, die das zugrunde liegende Protokoll nicht lernen möchten. Hier ist der normale Ablauf.
Schritt 1: Installiere die Timestamp GIT GitHub-App auf deinem Repository
Dies ist eine einmalige Einrichtung. Im Standard-Modus liest die GitHub-App den HEAD-Commit-Hash aus deinem überwachten Quell-Repository. Sie benötigt Lesezugriff auf das Quell-Repository, da GitHub-Berechtigungen keine Zugriffsebene nur für Commit-Hashes bereitstellen, sowie Lese-/Schreibzugriff auf das Ziel-Repository, in das der Proof-Branch geschrieben wird. Im Enterprise-ZK-Modus läuft eine kurze GitHub Action auf deiner Infrastruktur und überträgt nur den Commit-Hash an die Timestamp GIT API. In diesem Modus verlässt der Quellcode niemals deine Umgebung.
Schritt 2: Warte auf die nächtliche Verankerung
Commit-Hashes werden automatisch erkannt. Jede Nacht gruppiert ein Worker ausstehende Hashes, erstellt Manifestdateien, baut einen Merkle-Baum, erstellt OpenTimestamps-Beweise unter Verwendung öffentlicher OTS-Kalender und verankert die Merkle-Wurzel in der Bitcoin-Blockchain. Die Bitcoin-Bestätigung dauert in der Regel etwa drei Stunden nach dem nächtlichen Batch, sodass ein heute erstellter Commit normalerweise am nächsten Tag verifizierbar ist.
Schritt 3: Verwende das Badge oder die Statusseite
Für öffentliche Repositorys besuche die Statusseite unter:
https://timestampgit.dev/status/{user}/{repo}
Dieses öffentliche Dashboard zeigt die Beweis-Langlebigkeit, das früheste Verankerungsdatum, die tägliche Regelmäßigkeit, Bitcoin-Block- und Transaktionsdaten sowie eine Kalender-Heatmap. Es verlinkt außerdem auf herunterladbare Audit-CSV- und PDF-Zertifikatsberichte.
Du kannst die Status-API auch direkt abfragen:
# Letzte verankerte Bitcoin-Block-Informationen
curl -s https://timestampgit.dev/api/statusLast/acme/webapp
# Gesamtzahl der committeten/gestempelten Commits
curl -s https://timestampgit.dev/api/statusCount/acme/webapp
# Kombinierte Zusammenfassung für Shields.io-Badges
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp
Ersetze acme/webapp durch deinen GitHub-Benutzer oder deine Organisation und den Repository-Namen. Für private Repositorys gibt der authentifizierte Endpunkt GET /api/badgeLink/{user}/{repo} Badge-URLs und Markdown-Snippets mit angehängtem verschlüsseltem HMAC zurück.
Schritt 4: Öffne die Verifizierungsseite für einen bestimmten Tag
Für einen detaillierten, schrittweisen Merkle-Chain-Beweis öffne:
https://timestampgit.dev/verification/{user}/{repo}/{date}
Diese Seite führt die Verifizierungsberechnung lokal in deinem Browser aus. Sie zeigt die mehrstufige Merkle-Chain von deinem Commit-Hash bis zur verankerten Merkle-Wurzel und dem Bitcoin-Block. Da die Berechnung lokal erfolgt, sieht der Dienst nicht, was du verifizierst.
Schritt 5: Lade formelle Aufzeichnungen herunter
Von der Statusseite oder API kannst du Folgendes herunterladen:
- Ein CSV-Audit-Protokoll für die gesamte Historie:
GET /api/audit/{user}/{repo} - Ein PDF-Zertifikat für ein bestimmtes Datum:
GET /api/report/{user}/{repo}/{date}
Diese sind nützlich für rechtliche oder Compliance-Archive. Das PDF-Zertifikat liefert eine menschenlesbare Aufzeichnung, während die CSV einen vollständigen Audit-Trail bietet.
Wenn du die zugrunde liegenden Verifizierungsdaten benötigst, gibt der Endpunkt GET /api/verify/{user}/{repo}/{date} die vollständigen Merkle-Chain-Daten für die lokale Verifizierung zurück.
Verifizierungsergebnisse und Sonderfälle interpretieren
Eine erfolgreiche Verifizierung bedeutet eines: Der Commit-Hash wurde in einen Merkle-Baum aufgenommen, dessen Wurzel zu einem bestimmten Zeitpunkt in einem bestimmten Bitcoin-Block verankert wurde. Sobald dieser Block bestätigt ist, ist der Zeitstempel unveränderlich. Keine Partei – einschließlich Timestamp GIT – kann ihn ändern oder fälschen.
Es gibt einige Sonderfälle, die du verstehen solltest.
Ausstehende Verankerungen
Direkt nach einem Commit existiert der Beweis noch nicht. Timestamp GIT sammelt und verankert Hashes nächtlich. Die Bitcoin-Bestätigung dauert normalerweise etwa drei Stunden, nachdem der nächtliche Worker gelaufen ist. In diesem Zeitraum kann die Statusseite den Batch als ausstehend anzeigen. Sobald die Transaktion bestätigt ist, ist der Beweis sofort verifizierbar.
Private Repositorys
Bei privaten Repositorys sind öffentliche Status- und Verifizierungs-URLs nicht offen zugänglich. Das System hängt einen verschlüsselten HMAC an, der für die Serverinstanz spezifisch ist. Nur autorisierte Benutzer mit der vollständigen signierten URL können die Status- oder Verifizierungsseite anzeigen. Dadurch bleiben der Repository-Name und die Commit-Metadaten privat, während designierte Prüfer den Beweis dennoch prüfen können.
Unabhängigkeit von Timestamp GIT-Servern
Die Verifizierung erfordert nicht, dass Timestamp GIT online bleibt. Der Beweis basiert auf Bitcoin-Blockchain-Daten. Du kannst die .ots-Datei herunterladen und Standard-OpenTimestamps-Verifizierungswerkzeuge gegen die Bitcoin-Blockchain verwenden, wenn du den harten Weg bevorzugst. Der Browser-Verifizierer von Timestamp GIT ist die verwaltete Version derselben Prüfung.
Verlorene .ots-Dateien
Das .ots-Receipt und die Manifestdateien werden im dedizierten Timestamps-Branch oder Shadow-Repository gespeichert. Wenn du eine lokale Kopie verlierst, lade sie erneut aus dem Branch herunter. Der Beweis ist von demselben Git-Speicherort wiederherstellbar, an dem der Dienst ihn ursprünglich geschrieben hat.
Verifizierung ohne Quellcode-Freigabe: Der Zero-Knowledge-Vorteil
Das größte Missverständnis über Code-Zeitstempel ist, dass der Dienst deinen Code sehen muss, um seine Existenz zu beweisen. Timestamp GIT tut das nicht.
Im Standard-Modus liest die GitHub-App nur den HEAD-Commit-Hash. Sie liest, kopiert oder speichert niemals deinen Quellcode. Im Enterprise-ZK-Modus läuft die GitHub Action auf deiner Infrastruktur und überträgt nur den Hash an die Timestamp GIT API. Das Quell-Repository benötigt in diesem Modus keinen Lesezugriff für Timestamp GIT. Dadurch eignet sich der Enterprise-ZK-Modus für hochsensible Umgebungen.
Ein Dritter – ein Prüfer, ein gegnerischer Anwalt oder ein Gericht – kann einen Zeitstempel verifizieren, ohne dass du ihm Repository-Zugriff gewährst. Du stellst die .ots-Datei oder die signierte Verifizierungs-URL bereit, und er kann den Beweis gegen die Bitcoin-Blockchain prüfen. Er sieht kryptografische Beweise, keinen Quellcode.
Für die Einrichtungsdetails der beiden Bereitstellungsmodi siehe Code-Zeitstempel mit einer GitHub-App automatisieren.
FAQ
Kann ich einen Zeitstempel verifizieren, ohne etwas zu installieren?
Ja. Timestamp GIT bietet eine webbasierte Verifizierungsseite, auf der du die .ots-Datei oder die öffentliche Statusseite verwenden kannst. Alle Berechnungen erfolgen lokal in deinem Browser, sodass keine Softwareinstallation erforderlich ist.
Erfordert die Verifizierung die Freigabe meines Quellcodes?
Nein. Die Verifizierung verwendet nur den Commit-Hash und das .ots-Receipt, die keinen Quellcode enthalten. Die Zero-Knowledge-Architektur stellt sicher, dass dein Code privat bleibt.
Wie lange dauert es, bis ein Zeitstempel verifizierbar ist?
Zeitstempel werden nächtlich verankert, und die Bitcoin-Bestätigung dauert in der Regel etwa 3 Stunden. Sobald sie bestätigt ist, ist der Beweis sofort verifizierbar.
Was passiert, wenn ich die .ots-Receipt-Datei verliere?
Die .ots-Datei wird in einem dedizierten Branch deines Repositorys oder in einem Shadow-Repository gespeichert. Du kannst sie dort jederzeit erneut herunterladen.
Fazit
Die Verifizierung ist der Punkt, an dem kryptografische Zeitstempel nützlich werden. Ein Beweis, den du nicht prüfen kannst, ist kein Beweis. Timestamp GIT macht den Verifizierungsweg praktikabel: Installiere die GitHub-App einmal, lass Commits nächtlich verankern und verwende dann Badges, Statusseiten und lokale Browser-Verifizierung, um nachzuweisen, wann dein Code existierte – ohne jemals den Quellcode zu teilen.
Richte dein erstes Repository bei Timestamp GIT ein.
Verwandte Beiträge
- Was ist ein Existenznachweis für Software-Code?
- So beweist du, dass dein Code vor einer Patentanmeldung existierte
- Git-Commits mit Zeitstempeln versehen, um dich gegen Patent-Trolle zu verteidigen
- Code-Zeitstempel mit einer GitHub-App automatisieren