Einen Wakir-Labs-Commit verifizieren
Commits in diesem Repository — und in unserer internen
Governance-Historie — werden über
OpenTimestamps gegen die
Bitcoin-Blockchain zeitgestempelt. Der Beweis ist eine kleine
.ots-Datei, die neben dem Commit-Hash eingecheckt wird.
Mehr braucht es nicht: Mit einem Commit-Hash und der
passenden .ots-Datei lässt sich ohne Vertrauen in uns
belegen, dass der Commit spätestens zum Zeitpunkt eines bestimmten
Bitcoin-Blocks existiert hat.
Das ist die öffentliche Seite von Proof-of-History in der Praxis. Genau das meinen wir, wenn wir sagen, unsere Dokumentation sei verankert.
Was abgedeckt ist
In diesem Repository tragen alle 60 Beweisdateien eine Bitcoin-Attestierung — einen Block, keine Kalender-Zusage. 46 davon haben diesen Stand erst am 2026-09-15 erreicht; sie lagen seit Mai unbestätigt auf den Calendar-Servern. Nachgeprüft am 2026-09-20.
Die drei Code-Repositories tragen keine. wakir-runtime, wakir-protocol und
wakir-verify haben gar kein
meta/timestamps/-Verzeichnis (gemessen am 2026-09-15).
Eine frühere Fassung dieser Seite behauptete, jeder Commit in jedem
Wakir-Labs-Repository sei zeitgestempelt. Das stimmte nicht. Ob die
Stempelung auf diese Repositories ausgeweitet wird, ist offen; bis
dahin beschreibt diese Seite, was es gibt.
Drei Schritte
1. OpenTimestamps-Client installieren
Der Referenz-Client heißt ots und kommt als Python-Paket.
Auf jeder Plattform mit Python 3.8 oder neuer:
pip install opentimestamps-client Installation prüfen:
ots --version 2. Commit und .ots-Beweis besorgen
Klone das Repository, das du prüfen willst. Die Beweisdateien liegen
unter meta/timestamps/<short-hash>.ots:
git clone https://github.com/wakir-labs/site.git
cd site
ls meta/timestamps/ Jede Datei ist die Attestierung für genau einen Commit, benannt nach dessen Kurz-Hash.
Nicht jede Datei nennt einen Commit, den Du auschecken kannst.
Gemessen am 2026-09-20: Von 60 Beweisdateien lösen 28 in einem einfachen Klon
auf. Der Rest wurde auf Branch-Commits gestempelt, die der Squash-Merge ersetzt
hat — der Hash überlebt im Dateinamen, nicht in der Historie von
main. Nimm eine, die auflöst; das Beispiel unten gehört dazu:
for f in meta/timestamps/*.ots; do
h=$(basename "$f" .ots)
git rev-parse --verify --quiet "$h" >/dev/null && echo "$h"
done 3. ots verify ausführen
Als durchgerechnetes Beispiel der Commit 82d40f7 aus der
Historie dieser Site ("feat(about): add EN+DE about pages"):
# Aus dem geklonten Repo heraus:
printf "%s\n" "$(git rev-parse 82d40f7)" > /tmp/commit.txt
ots verify -f /tmp/commit.txt meta/timestamps/82d40f7.ots
Gestempelt wird der 40-stellige Commit-Hash als ASCII-Text mit
abschließendem Zeilenumbruch — genau das schreibt
printf "%s\n". Zwei frühere Fassungen dieser Seite
verlangten stattdessen die rohen Hash-Bytes (xxd -r -p).
Das ist nicht, was gestempelt wurde, und ots weist es ab:
File does not match original!. Aufgefallen ist es am
2026-09-15, als das Beispiel dieser Seite von vorne bis hinten
ausgeführt wurde. Beide veröffentlichten Formen sind korrigiert.
Eine erfolgreiche Verifikation gibt etwa aus:
Success! Bitcoin block N attests existence as of YYYY-MM-DD Das ist die Quittung. Der Commit existierte spätestens zum Zeitpunkt dieses Bitcoin-Blocks. Vertrauen in uns braucht es dafür nicht — nur in Bitcoin und in die OpenTimestamps-Calendar-Server, die selbst nur signieren und nicht rückdatieren.
Das Firmen-Repository
Das vollständige Firmen-Repository — ADRs, Aktivitätsprotokoll,
Governance — liegt bislang nur beim Aufsichtsrat und
ist nicht öffentlich. Öffentlich prüfbar sind deshalb heute die
wakir-labs/*-Repositories auf GitHub
(github.com/wakir-labs).
Sobald das Firmen-Repository öffentlich wird, gilt dasselbe Rezept:
klonen, ots verify auf Beweisdatei und Commit-Hash
ansetzen, Quittung lesen.
Der Aufsichtsrat prüft seinen lokalen Klon auf genau demselben Weg.
Schritt 3 braucht einen Bitcoin-Node — oder einen zweiten Befehl
ots verify kommt ohne Node nicht zum Ende. Gemessen am
2026-09-20 gegen opentimestamps-client 0.7.2, also genau die
Version aus dem pip install oben: Das Paket enthält keinerlei
Block-Explorer-Pfad, und der Verify-Weg ruft setup_bitcoin()
bedingungslos auf, was ohne antwortenden Node mit Exit 1 endet. Eine
frühere Fassung dieser Seite behauptete einen Rückgriff auf einen
Remote-Block-Explorer. Den gibt es nicht.
Ohne Node hilft ots info — der Befehl braucht
keinen Chain-Zugriff und nennt den Bitcoin-Block, auf den sich der Beweis
festlegt:
ots info meta/timestamps/82d40f7.ots | grep BitcoinBlockHeaderAttestation
Diese Blockhöhe in einem beliebigen Bitcoin-Explorer nachschlagen und den
Zeitstempel des Blocks lesen. Das ist dieselbe Tatsache, die
ots verify bestätigen würde — nur vertraust Du dabei dem
Explorer statt selbst zu prüfen.
Mit eigenem Node macht der Client die ganze Kette selbst:
ots --bitcoin-node http://user:pass@127.0.0.1:8332 verify -f /tmp/commit.txt meta/timestamps/82d40f7.ots Damit fällt die letzte Vertrauensannahme: Die Attestierung wird direkt aus einer Chain gelesen, die du selbst validierst.
Wenn die Verifikation fehlschlägt
Zwei normale Gründe:
- Der Beweis ist noch "pending". Frische Commits
liegen einige Stunden auf den Calendar-Servern, bevor sie in einen
Bitcoin-Block einfließen. Nach ein paar Stunden
ots upgrade meta/timestamps/<hash>.otsausführen, dann erneut verifizieren. - Du hast das Falsche gehasht. Gestempelt wird der
40-stellige Commit-Hash als ASCII-Text mit abschließendem
Zeilenumbruch. Erzeuge ihn mit
printf "%s\n" "$(git rev-parse <commit>)"— nicht mitxxd -r -p. Frühere Fassungen dieser Seite empfahlen Letzteres; sie lagen falsch.
Greift keiner der beiden Gründe, öffne ein Issue. Eine fehlgeschlagene Verifikation an einem echten Commit ist ein Befund, den wir wissen wollen.