So verifizieren Sie einen Git-Commit-Zeitstempel
Ein Git-Commit-Zeitstempel ist überraschend einfach zu fälschen. Sie können GIT_AUTHOR_DATE, GIT_COMMITTER_DATE setzen, einen Branch rebasen oder einfach die Commit-Metadaten vor dem Push bearbeiten. In einem Rechtsstreit oder Compliance-Audit beweist ein gewöhnliches Git-Log oft sehr wenig.
Deshalb ist die Verifizierung wichtiger als das Anchoring selbst. Beim Anchoring wird ein Commit-Hash in die Bitcoin-Blockchain eingebettet. Die Verifizierung ist der Schritt, der es Ihnen, einem Auditor oder einem Gericht ermöglicht, zu bestätigen, dass ein bestimmter Commit-Hash tatsächlich zu einem bestimmten Zeitpunkt in einem bestimmten Bitcoin-Block enthalten war. Dieser Artikel konzentriert sich auf diesen Verifizierungs-Workflow mit Timestamp GIT, einer verwalteten GitHub-App, die den gesamten Prozess automatisiert und Ihnen browserbasierte Tools, Badges und eine öffentliche API bietet.
Warum Verifizierung bei Git-Commit-Zeitstempeln wichtig ist
Eine Standard-Git-Historie lebt auf Servern, die Sie nicht vollständig kontrollieren. Repository-Hosting-Plattformen, Admin-Panels und lokale Repositories können verändert werden. Selbst wenn niemand böswillig handelt, können Zeitstempel bei Merges, Squashes oder Datenmigrationen versehentlich verschoben werden.
Kryptografisches Anchoring ändert das Spiel grundlegend. Wenn Timestamp GIT ein Repository verarbeitet, verlässt es sich nicht auf den Git-Commit-Zeitstempel. Es nimmt den Commit-Hash – einen kryptografisch sicheren Fingerabdruck des exakten Repository-Zustands – und nimmt diesen Hash in ein tägliches Manifest auf. Der Manifest-Hash wird in einen Merkle-Baum eingebettet, und die Merkle-Wurzel wird mit dem OpenTimestamps-Protokoll in einem Bitcoin-Block verankert.
Die Verifizierung beantwortet dann drei Fragen:
- Ist dieser Commit-Hash im täglichen Manifest vorhanden?
- Verbindet der Merkle-Beweis diesen Manifest-Hash mit der verankerten Merkle-Wurzel?
- Ist diese Merkle-Wurzel in einem bestätigten Bitcoin-Block enthalten?
Wenn alle drei Prüfungen erfolgreich sind, haben Sie einen mathematischen Beweis dafür, dass der Commit zu diesem Datum existierte. Wenn ein tieferer Hintergrund dazu nützlich ist, warum dies für Software-IP wichtig ist, lesen Sie What Is Cryptographic Prior Art and Why Does It Matter for Software?.
Timestamp GIT verbirgt den rohen OpenTimestamps-Workflow. Sie müssen keine CLI installieren, keine manuellen Stamping-Befehle ausführen oder Bitcoin-Transaktionen erstellen. Die GitHub-App erkennt Commits, bündelt sie nächtlich und schreibt standardisierte Beweisdateien zurück in Ihr Repository.
Wie ein Timestamp-GIT-Beweis aussieht
Ein Timestamp-GIT-Beweis ist keine einzelne Datei. Es ist eine kleine Sammlung von Artefakten, die zusammen eine unabhängige Verifizierung ermöglichen.
Die Kernkomponenten sind:
- Commit-Hash: der SHA-1- oder SHA-256-Hash, der einen bestimmten Commit identifiziert.
- Tägliche Manifestdatei: eine Klartextdatei, die alle ausstehenden Commit-Hashes eines Repositorys für dieses Datum enthält.
- Merkle-Baum: ein nativer Merkle-Baum, der aus den täglichen Manifest-Hashes über alle Repositorys hinweg aufgebaut wird.
- OpenTimestamps-Receipt: eine
.ots-Datei, die den Manifest-Hash kryptografisch mit einem Bitcoin-Block verknüpft. - Bitcoin-Blockinformationen: Blockhöhe, Transaktionsdaten und Bestätigungsstatus für den Anker.
Der Beweis wird je nach Konfiguration in einen dedizierten Timestamps-Branch oder ein Shadow-Repository geschrieben. Ein typisches Beweisverzeichnis für einen bestimmten Tag könnte so aussehen:
timestamps/
2026-09-20/
manifest.txt
receipt.ots
Das .ots-Receipt ist insofern eigenständig, als dass es jeder später nur mit SHA-256-Mathematik und Bitcoin-Blockdaten verifizieren kann. Es gibt keine proprietäre Technologie und keine Bindung an einen Anbieter. Wenn Timestamp GIT morgen verschwinden würde, würden die Beweisdateien weiterhin existieren und gegen die Bitcoin-Blockchain verifizierbar bleiben.
Da nur der Commit-Hash verankert wird, enthält der Beweis keinen Quellcode. Der Verifizierungsablauf arbeitet mit dem Hash, nicht mit dem Repository-Inhalt.
Schritt-für-Schritt-Verifizierung mit den Tools von Timestamp GIT
Timestamp GIT bietet mehrere Verifizierungswege. Sie können das visuelle Dashboard für schnelle Prüfungen verwenden, Berichte für Compliance herunterladen oder die API für Automatisierung abfragen.
Schritt 1: Die Repository-Statusseite öffnen
Jedes verbundene Repository hat eine öffentliche oder authentifizierte Statusseite unter:
https://timestampgit.dev/status/{user}/{repo}
Diese Seite zeigt das früheste Ankerdatum, die Beweislanglebigkeit, die tägliche Regelmäßigkeit, Bitcoin-Block- und Transaktionsdaten sowie eine Kalender-Heatmap. Von derselben Seite können Sie ein Audit-CSV oder ein PDF-Zertifikat herunterladen.
Für eine schnelle Statusprüfung ist dies normalerweise der schnellste Ausgangspunkt. Wenn das Repository privat ist, enthält die URL einen verschlüsselten HMAC, sodass nur autorisierte Betrachter darauf zugreifen können.
Schritt 2: Das Verifizierungs-Badge in Ihrer README verwenden
Nach dem Verbinden eines Repositorys kann Timestamp GIT ein einbettbares Verifizierungs-Badge generieren. Das Badge zeigt den neuesten Verifizierungsstatus direkt in der README an, und ein Klick darauf führt zur Verifizierungsseite oder zum Status-Dashboard.
Das Badge-Markup wird für Sie auf der Seite des verbundenen Repositorys oder über die Badge-API generiert. Sie sollten die Shield-URL nicht manuell schreiben; kopieren Sie stattdessen das von Timestamp GIT generierte Markdown-Snippet. Dies vermeidet Fehler bei den HMAC-signierten URLs privater Repositorys.
Schritt 3: Die Merkle-Kette im Browser prüfen
Für ein bestimmtes Datum öffnen Sie:
https://timestampgit.dev/verification/{user}/{repo}/{date}
Diese Seite führt durch die mehrstufige Merkle-Ketten-Verifizierung. Sie zeigt den Commit-Hash, den täglichen Manifest-Hash, die Zwischen-Merkle-Knoten und den Bitcoin-Block-Anker.
Alle Berechnungen erfolgen lokal im Browser. Timestamp GIT sieht nicht, welchen Hash Sie verifizieren, und Sie senden keinen Quellcode irgendwohin. Die Seite bestätigt, ob der Commit-Hash zum Manifest gehört und ob das Manifest mit der verankerten Wurzel verbunden ist.
Schritt 4: PDF-Zertifikat oder Audit-CSV herunterladen
Für Compliance-Aufzeichnungen, rechtliche Audits oder interne Dokumentation bietet Timestamp GIT zwei herunterladbare Artefakte:
- PDF-Zertifikat: ein Einzel-Tages-Zertifikat, das das Ankerdatum und den Verifizierungsstatus zeigt.
- Audit-CSV: ein vollständiges Verzeichnis aller verankerten Commits und Daten für das Repository.
Diese sind nützlich, wenn Sie Beweise an eine Einreichung anhängen, einen Nachweis an einen Kunden senden oder eine Offline-Aufzeichnung speichern müssen.
Schritt 5: Programmatisch mit der öffentlichen API verifizieren
Timestamp GIT stellt öffentliche API-Endpunkte für die Automatisierung bereit. Für öffentliche Repositorys können Sie Statusinformationen direkt mit curl abfragen.
Den zuletzt verankerten Bitcoin-Block prüfen:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
Die Gesamtzahl der committeten und gestempelten Commits prüfen:
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
Eine kombinierte Statuszusammenfassung abrufen, die auch für Shields.io-Badges verwendet wird:
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
Die vollständigen Merkle-Kettendaten für ein bestimmtes Datum abrufen:
curl https://timestampgit.dev/api/verify/your-org/your-repo/2026-09-20
Für private Repositorys erfordern die Endpunkte einen verschlüsselten HMAC in der URL. Der HMAC wird pro Serverinstanz generiert, und nur autorisierte Benutzer können auf den Status dieser Repositorys zugreifen.
Verifizierungsergebnisse und Sonderfälle interpretieren
Eine erfolgreiche Verifizierung bedeutet, dass die folgende Kette intakt ist:
- Der Commit-Hash ist im Manifest vorhanden.
- Der Manifest-Hash ist korrekt im Merkle-Baum enthalten.
- Die Merkle-Wurzel ist über OpenTimestamps in einem Bitcoin-Block verankert.
- Dieser Bitcoin-Block ist in der Blockchain bestätigt.
Sobald diese Bedingungen erfüllt sind, ist der Commit-Zeitstempel durch die Unveränderlichkeit von Bitcoin abgesichert.
Es gibt einige zeitliche und zugriffsbezogene Sonderfälle, die Sie verstehen sollten.
Täglicher Batch-Cutoff. Commits werden gesammelt und nächtlich verankert. Ein Commit, der nach dem Cutoff für einen bestimmten Tag erstellt wird, erscheint im Anker des nächsten Tages. Wenn Sie einen Commit nicht an dem erwarteten Tag sehen, prüfen Sie die Verifizierungsseite des Folgetags.
Bitcoin-Bestätigungsverzögerung. Das Anchoring erfolgt einmal täglich, aber die Bestätigung des Ankers in Bitcoin dauert normalerweise etwa 3 Stunden. Beweisdateien werden nach der Bestätigung zurückgeschrieben, sodass die Verifizierung einige Stunden nach dem nächtlichen Batch verfügbar ist.
Private Repositorys. Status- und Verifizierungs-URLs für private Repositorys verwenden HMAC-signierte Pfade. Wenn ein Kollege die Statusseite nicht öffnen kann, benötigt er wahrscheinlich Zugriff auf den verschlüsselten Link oder das Repository über die GitHub-App.
Zero-Knowledge-Verifizierung. Die Verifizierung legt niemals Quellcode offen. Sie beweist, dass ein Hash zu diesem Zeitpunkt existierte, nicht, was der Code enthielt. Dies ist beabsichtigt: Der Beweis betrifft die Existenz, nicht die Offenlegung.
Was, wenn die Verifizierung fehlschlägt? Eine fehlgeschlagene Verifizierung könnte bedeuten, dass der Commit nicht im täglichen Batch enthalten war, die Beweisdatei unvollständig ist oder die Daten manipuliert wurden. Beginnen Sie damit, die Repository-Statusseite für das korrekte Datum zu prüfen. Wenn der Anker fehlt oder beschädigt ist, kontaktieren Sie den Timestamp-GIT-Support.
FAQ
Wie verifiziere ich einen Git-Commit-Zeitstempel mit Timestamp GIT?
Sie können einen Commit-Zeitstempel verifizieren, indem Sie die Repository-Statusseite auf Timestamp GIT besuchen, auf das Verifizierungs-Badge in Ihrer README klicken oder die öffentlichen API-Endpunkte verwenden. Die Verifizierungsseite zeigt die Merkle-Kette und ermöglicht die lokale Verifizierung in Ihrem Browser.
Kann ich einen Commit-Zeitstempel verifizieren, ohne meinen Quellcode preiszugeben?
Ja. Timestamp GIT verwendet nur den Commit-Hash, nicht den Quellcode. Die Verifizierung erfolgt gegen den Hash und die Bitcoin-Blockchain, sodass Ihr Code privat bleibt.
Wie lange dauert es, bis ein Commit-Zeitstempel verifizierbar ist?
Zeitstempel werden nächtlich verankert, und die Bitcoin-Bestätigung dauert in der Regel etwa 3 Stunden. Danach ist der Beweis verfügbar und verifizierbar.
Was, wenn die Verifizierung fehlschlägt?
Wenn die Verifizierung fehlschlägt, kann dies darauf hindeuten, dass der Commit nicht im täglichen Batch enthalten war oder dass der Beweis beschädigt ist. Prüfen Sie die Repository-Statusseite für Details oder kontaktieren Sie den Timestamp-GIT-Support.
Fazit: Vertrauen ist gut, Verifizieren ist besser – auch bei Git-Historien
Ein in Bitcoin verankerter Commit-Hash ist nur dann nützlich, wenn Sie ihn später verifizieren können. Git-Zeitstempel allein sind schwache Beweise. Kryptografische Beweise sind stark – aber nur, wenn der Verifizierungsweg klar, wiederholbar und unabhängig ist.
Timestamp GIT macht aus diesem Verifizierungsweg einen praktischen Workflow. Installieren Sie die GitHub-App einmal, verbinden Sie ein Repository, und jeder Commit wird automatisch jede Nacht verankert. Wenn Sie einen Nachweis benötigen, können Sie das Status-Dashboard öffnen, auf ein Badge klicken, die Merkle-Kette im Browser prüfen, ein PDF-Zertifikat herunterladen oder einen API-Endpunkt aufrufen.
Für Entwickler, Startups, Agenturen und Compliance-Teams entfällt damit die manuelle Arbeit, ohne die mathematischen Garantien des Bitcoin-Anchoring aufzugeben. Wenn Ihr nächster Schritt darin besteht, Ihre eigene Commit-Historie abzusichern, installieren Sie die GitHub-App oder sehen Sie sich die Preisseite an.
Verwandte Beiträge
- Automatically Timestamp Git Commits with a GitHub App
- What Is Cryptographic Prior Art and Why Does It Matter for Software?
- How to Prove Code Existed at a Specific Time (Without Revealing It)