Proof of Existence
Dokumente fälschungssicher mit Zeitstempel versehen, mit Verifile im Browser, per REST-API oder direkt mit der Node.
Ein Existenznachweis belegt, dass ein Dokument mit genau diesem Inhalt spätestens zu einem bestimmten Zeitpunkt existierte. Dazu wird der SHA-256-Hash des Dokuments als Name poe/<hash> per name_doi in die Doichain geschrieben. Die Blockzeit ist der Zeitstempel. Das Dokument selbst verlässt den Rechner nie, auf die Kette kommt nur sein Fingerabdruck.
Was ein Nachweis zeigt und was nicht
| Zeigt | Zeigt nicht |
|---|---|
| dass ein Dokument mit diesem Hash spätestens zur Blockzeit existierte | wer das Dokument eingereicht hat |
| dass das Dokument seitdem unverändert ist (jede Änderung ergibt einen anderen Hash) | was im Dokument steht |
| in welchem Block und welcher Transaktion das geschah | dass der Inhalt wahr ist |
Weg 1: Verifile im Browser
- verifile.it öffnen und die Datei ins Feld ziehen. Der Browser berechnet den Hash lokal, auch bei großen Dateien.
- Optional eine kurze Notiz eingeben. Notiz und Dateiname (nur mit Häkchen) sind öffentlich, also keine personenbezogenen Daten.
- „Verankern“ klicken. Nach dem nächsten Block (im Mittel zehn Minuten) ist der Nachweis bestätigt.
- Den Nachweis als JSON herunterladen oder drucken. Zum Prüfen später dieselbe Datei wieder ins Feld ziehen, oder den Hash als
#<hash>an die Adresse hängen.
Verifile ist kostenlos. Es gilt ein Tageskontingent von 10 Nachweisen je IP-Adresse und 200 insgesamt.
Weg 2: REST-API
Prüfen geht ohne Schlüssel:
sha256sum vertrag.pdf
curl https://doi-api.sendlabs.de/v1/poe/<hash>
status ist unknown, pending, confirmed oder expired. Der Beweis für Dritte steht immer in first_anchored: Block, Blockzeit und Transaktion der ersten Verankerung, im Explorer nachprüfbar.
Anlegen braucht einen Schlüssel:
import hashlib, requests
API, KEY = "https://doi-api.sendlabs.de/v1", "<schluessel>"
h = hashlib.sha256(open("vertrag.pdf", "rb").read()).hexdigest()
r = requests.post(f"{API}/poe", json={"hash": h, "filename": "vertrag.pdf"},
headers={"X-API-Key": KEY})
print(r.status_code, r.json()) # 201 mit txid, 409 wenn bereits verankert
# später prüfen
print(requests.get(f"{API}/poe/{h}").json()["first_anchored"]["block_time_iso"])
Alle Endpunkte stehen in der interaktiven Dokumentation.
Weg 3: KI-Agent
Mit eingebundenem MCP-Server genügt ein Satz wie „Verankere den Hash von angebot.pdf in der Doichain“. Agenten mit Dateizugriff (Claude Code, Cursor, VS Code) berechnen den Hash selbst.
Weg 4: eigene Node
HASH=$(sha256sum vertrag.pdf | cut -d' ' -f1)
doichain-cli name_doi "poe/$HASH" '{"v":1,"alg":"sha256","hash":"'$HASH'"}'
doichain-cli name_show "poe/$HASH"
Das kostet die Transaktionsgebühr plus die 0,01 DOI, die im Namen gebunden werden.
Ablauf und Dauerhaftigkeit
Ein Name läuft 36.000 Blöcke nach seiner letzten Operation ab, das sind rund 250 Tage. Der Nachweis bleibt trotzdem gültig, denn die ursprüngliche Transaktion steht für immer in der Kette. Nach dem Ablauf kann allerdings jeder denselben Hash erneut registrieren. Die API und Verifile nennen deshalb immer die erste Verankerung als Nachweiszeitpunkt und zeigen eine spätere Registrierung getrennt an, mit dem Hinweis, dass deren Notiz und Inhaber nicht zum ursprünglichen Nachweis gehören.
Wer einen Namen aktiv halten will, verlängert ihn vor dem Ablauf als Inhaber mit name_doi und demselben Wert.
Quellen
- Doichain-API Handbuch, Version 1.5.0
Fehler gefunden oder etwas fehlt? In der Redaktion bearbeiten oder anDoichain@le-space.de melden.