Peter Todd ist Bitcoin-Entwickler, Autor des Zeitsperren-Vorschlags BIP 65, Mitautor der Regeln zum Ersetzen unbestätigter Transaktionen in BIP 125 und Entwickler von OpenTimestamps. Dabei geht es um unterschiedliche Sicherheiten: Ausgabebedingungen, Zahlungsstatus und die belegbare Existenz von Daten. Keine davon garantiert automatisch die anderen.
Angenommen, Sie müssen belegen, dass eine bestimmte Vertragsfassung schon vor einem Streit existierte. Genau dafür ist OpenTimestamps gedacht, ein mit Peter Todd verbundenes Projekt. Seine historische Ankündigung von 2016 stellte eine öffentliche Testversion vor und dankte Riccardo Casatta für Entwicklung und Tests. Sie dokumentiert die damalige Zusammenarbeit, nicht einen bis heute unveränderten Entwicklungsstand. Todd beschäftigte sich auch mit Bedingungen für künftige Ausgaben und mit noch unbestätigten Zahlungen. Diese beiden Bereiche betrachten wir zuerst. [1]
Todds BIP 65 führte OP_CHECKLOCKTIMEVERIFY, kurz CLTV, ein. Mit dieser Anweisung lässt sich ein bestimmter Weg zum Ausgeben von Bitcoin an eine Blockhöhe oder Zeitgrenze knüpfen. Denken Sie an einen Ersatzweg zu gemeinsamen Ersparnissen, den ein Empfänger erst später nutzen darf. Bis dahin sperrt ihn die Zeitbedingung. Sobald sie erfüllt ist, werden die Coins nicht automatisch versendet: Es braucht weiterhin eine gültige Transaktion und die übrigen Voraussetzungen, etwa eine Signatur. Gibt es einen anderen Ausgabenweg, gelten dessen eigene Bedingungen. Die Sperre umfasst also nicht zwangsläufig jede Verwendung des Guthabens. [2]
Eine Zeitsperre folgt nicht einfach der Uhr in der Wallet. BIP 65 prüft das Verhältnis zwischen dem Skript, also den Ausgabebedingungen, und dem Transaktionsfeld nLockTime. Beide müssen dieselbe Art von Grenze verwenden: Blockhöhe oder Zeit. Außerdem darf das Feld nSequence des betreffenden Eingangs nicht den Endgültigkeitswert haben, der die Prüfung aushebeln würde. Gemeint ist eine absolute Grenze, nicht das relative Alter des Ausgangs seit seiner Bestätigung. Auch danach ist keine Aufnahme zu einer exakten Sekunde garantiert; ein Miner muss die Transaktion in einen gültigen Block aufnehmen. [2]
Eine gesendete Transaktion kann im Mempool liegen bleiben, dem Vorrat unbestätigter Transaktionen eines Knotens. Steigen die Gebühren, möchte der Absender vielleicht durch eine Ersatztransaktion mehr anbieten. David A. Harding und Peter Todd beschrieben in BIP 125 die ursprünglichen opt-in-Regeln dafür. Die Ersetzbarkeit ließ sich über nSequence signalisieren oder von einer unbestätigten Vorgängertransaktion erben, deren Ausgang die Zahlung ausgibt. Die Regeln betrachteten somit auch Abhängigkeiten. Eine höhere Gebühr kann helfen, verspricht aber keine sofortige Bestätigung. [3]
Beim Ersetzen im Mempool ändert sich, welche Transaktion ein Knoten als Kandidaten für einen Block aufbewahrt. Bereits bestätigte Geschichte wird dadurch nicht umgeschrieben. BIP 125 beschreibt zudem eine historische opt-in-Politik, kein unveränderliches Gesetz für sämtliche Programme. Spätere Bitcoin-Core-Versionen machten das Ersetzen ohne dieses Signal zum Standard; Bedingungen für die Annahme einer Ersatztransaktion bleiben bestehen. Für Empfänger bedeutet das: Ein fehlendes Signal beweist keine endgültige Zahlung. Auch „gesendet“ in einer Wallet ist nicht dasselbe wie die Aufnahme in einen bestätigten Block. [3] [6]
Zurück zum Vertrag: OpenTimestamps liefert einen überprüfbaren Beleg, dass bestimmte Daten vor einer belegten Zeitgrenze existierten. Dafür verwendet es einen Hash, einen kurzen digitalen Fingerabdruck des Inhalts, und einen in Bitcoin verankerten Nachweis. Ändert sich das Dokument, ergibt die Prüfung einen anderen Fingerabdruck. Der Zeitstempel bestätigt aber weder den Verfasser noch die Wahrheit des Vertragsinhalts oder den genauen Entstehungszeitpunkt. Auch ein erfundener Text kann rechtzeitig einen Zeitstempel erhalten. Der Beleg begrenzt, wie spät die Daten entstanden sein können; wie lange sie vorher existierten, sagt er nicht. [1] [4]
Der OpenTimestamps-Client sendet das Dokument nicht an Kalenderserver. Er verarbeitet seinen Fingerabdruck zusammen mit einem Zufallswert, damit der Server aus den empfangenen Daten nicht auf den Inhalt schließen kann. Ein Kalender ist hier ein Dienst, der Anfragen sammelt und bei ihrer Verankerung in Bitcoin hilft. Inhaltsschutz bedeutet jedoch keine vollständige Anonymität: Zeitliche Nähe oder gemeinsam erzeugte Nachweise können Anfragen miteinander verknüpfen. Die Datei .ots ist keine Sicherungskopie des Dokuments. Bewahren Sie sie zusammen mit dem unveränderten Original auf; der Fingerabdruck stellt verlorenen Text nicht wieder her. [5]
Ein frisch erzeugter Zeitstempel ist möglicherweise noch nicht in einem bestätigten Bitcoin-Block verankert. Eine vorhandene .ots-Datei beweist daher nicht, dass alles fertig ist. Der OpenTimestamps-Client unterscheidet einen ausstehenden Nachweis von einem vollständigen Beleg mit dem Pfad bis zum Block. Mit ots upgrade lässt sich die Ergänzung abrufen und speichern, sobald sie verfügbar ist. Der Befehl erzwingt aber keinen neuen Block. Danach wird der Nachweis anhand der Originaldaten und der Bitcoin-Kette geprüft. Wie bei einer wartenden Zahlung zählt der tatsächliche Zustand, nicht allein eine Datei oder Bildschirmmeldung. [5]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Luke Dashjr, Mara van der Laan, Satoshi Nakamoto. Auf diesen Eintrag verweisen außerdem Luke Dashjr, Mara van der Laan.