So bestätigen Sie eine Transaktion offline

Ist es möglich, eine Transaktion im folgenden Szenario offline zu bestätigen:

  1. das „empfangende“ Gerät ist zuerst online. An dieser Stelle gibt es keine Einschränkung. Insbesondere kann es alles vorbereiten, was für die folgenden Schritte benötigt wird.

  2. das "empfangende" Gerät geht offline. Es generiert eine Zahlungsaufforderung über einen bestimmten, vorher unbekannten Betrag und teilt sie dem „sendenden“ Gerät über ein Offline-Mittel, wie beispielsweise einen QR-Code, mit.

  3. das „sendende“ Gerät, das immer online ist, schließt die Transaktion ab.

  4. Wie könnte das "empfangende" Gerät, während es offline bleibt , eine Bestätigung erhalten, dass die Transaktion wirklich stattgefunden hat? Mit anderen Worten, was sollte das „sendende“ Gerät (z. B. per QR-Code) an das „empfangende“ Gerät weitergeben, damit es die Transaktion bestätigen kann, ohne getäuscht zu werden?

Könnte das "empfangende" Gerät einen öffentlichen Schlüssel haben, der eine signierte Version der Transaktion verifizieren würde?

Antworten (1)

Es hängt genau davon ab, wie sicher Sie sein müssen. Im Allgemeinen sollte der gesamte Block, der die Transaktion und die nächsten 100 Blockheader enthält, ausreichend sein. Die Validierung sollte darin bestehen sicherzustellen, dass der erste Block tatsächlich die Transaktion enthält und ein gültiger Bitcoin-Block ist, die anderen 100 Blöcke eine gültige Kette bilden und alle 100 Blöcke ein angemessenes Schwierigkeitsziel erfüllen.

Der einfache Weg, eine solche Kette zu erstellen, besteht darin, die Transaktion bestätigen zu lassen und darauf zu warten, dass alle Miner der Welt 100 Blöcke produzieren. Abgesehen davon müssten Sie alle 100 Blöcke selbst finden, was eine Menge Arbeit bedeutet, nur um eine Transaktion zu fälschen.

Beachten Sie, dass diese Methode fehlschlagen würde, sollte die gesamte Hashing-Leistung des Bitcoin-Netzwerks jemals unter das fallen, was das Gerät erwartet, da die echten Blöcke das „angemessene Schwierigkeitsziel“ nicht erreichen würden. Sie müssen bis zu einem gewissen Grad die zukünftige Bitcoin-Schwierigkeit vorhersagen, damit dies funktioniert.

Dies setzt voraus, dass es erforderlich ist, keine zentrale Behörde zu haben. Wenn Sie eine zentrale Autorität akzeptieren können, kann diese zentrale Autorität regelmäßig eine unterzeichnete Erklärung über die aktuelle Mindestschwierigkeit und Anzahl der Blöcke ausgeben, die das Gerät akzeptieren sollte. Eine jährliche Aktualisierung sollte mehr als ausreichend sein. Das würde es Ihnen ermöglichen, auf viel weniger Bestätigungen zu warten. 100 Bestätigungen dauern etwa 17 Stunden.

Danke für die Antwort. Ich bin besorgt über die Größe der erforderlichen Übertragung vom "sendenden" Gerät zum "empfangenden" Gerät in Schritt 4. Der Block-Header ist 80 Bytes groß, das sollte also in Ordnung sein. Aber ich denke, dass ein ganzer Block groß sein kann. Wie könnte die erforderliche Überweisung unter der Annahme optimiert werden, dass der Transaktionsbetrag auf etwas „Kleines“ (z. B. 1 BTC) begrenzt ist und diese Überweisung innerhalb von Minuten nach der Transaktion erfolgen sollte?
Sie können nur die Transaktion, genügend Merkle-Baum, um zu beweisen, dass sich die Transaktion im Block befindet, und die Header von nur wenigen Blöcken einschließen.