Holen Sie sich die Offline-Bitcoin-Transaktions-ID, verketten Sie mehrere Offline-Transaktionen

Angenommen, ich erstelle eine gültige Transaktion (offline, ohne sie zu senden, z. B. so: http://brainwallet.org/#tx . Nennen wir dies "A".

a)Bevor ich A gesendet habe, kann ich die Transaktions-ID von A erhalten?

b) Ich möchte eine neue Offline-Transaktion (mit dem Namen B) erstellen und die Ausgaben von A als Eingaben für B verwenden. Trotzdem wurde A nicht an das Bitcoin-Netzwerk gesendet. Ist das möglich? Beispiel: A überweist Geld von Konto x auf Konto y. B sendet die gleichen Bitcoins von x nach y, von y nach z.

c) Wenn Teil b) möglich ist und ich A sende, dann sende sofort B an das Bitcoin-Netzwerk. was würde passieren?

Antworten (1)

Kann ich vor dem Senden von A die Transaktions-ID von A erhalten?

Ja, Sie können die TXID ohne Verbindung zum Netzwerk berechnen.

Ich möchte eine neue Offline-Transaktion (mit dem Namen B) erstellen und die Ausgaben von A als Eingaben für B verwenden. Trotzdem wurde A nicht an das Bitcoin-Netzwerk gesendet. Ist das möglich?

Ja, aber es gibt eine kleine technische Besonderheit bei der Arbeit mit verschachtelten unbestätigten Transaktionen. Wenn Sie eine große Anzahl von ihnen übereinander bauen und eine davon nie bestätigt wird, verschwindet die gesamte Transaktionskette. Das heißt, wenn Sie A, B und C bauen und A eine falsche Gebühr hatte, wird keine der nachfolgenden Transaktionen jemals bestätigt und wird schließlich aus dem Netzwerk fallen.

Abgesehen davon hindert Sie nichts daran, Ketten von unendlicher Länge zu erstellen, sie müssen nur gesendet werden, damit die Knoten die vorherigen Eingaben sehen können. Wenn Sie sie nicht in der richtigen Reihenfolge erstellen (C, A, B), werden sie wahrscheinlich abgelehnt.

ist möglich, und ich sende A, dann sofort B an das Bitcoin-Netzwerk. was würde passieren?

Dies ist völlig gültig und ein einigermaßen normaler Ablauf für einige Anwendungen, es ist nicht ungültig oder nicht empfehlenswert, wenn die Gebühren für jede Eingabe ordnungsgemäß bezahlt werden.

Entschuldigung. Meine ursprüngliche Frage ließ den Anschein erwecken, als würde ich fragen, ob ich dieselben Bitcoins von demselben Konto doppelt ausgeben könnte. Ich habe meine ursprüngliche Frage b) umformuliert. Zum Beispiel: Konto x hat 1 BTC. Konto y hat 0 BTC. kann ich Offline-Transaktionen erstellen, die 1 BTC von x nach Y senden (Transaktion A). Erstellen Sie gleichzeitig eine Offline-Transaktion, die 1 BTC von y nach z sendet (die gleiche 1 BTC von Transaktion A). und senden Sie diese dann beide an das Netzwerk. A, dann B, aber sehr schnell
Mein Fehler ganz, ich habe die Antwort entsprechend aktualisiert.
Nehmen wir an, ich habe sie in umgekehrter Reihenfolge eingereicht, aber immer noch in schneller Folge. Würden sie noch irgendwie lange genug "umherschweben", um sich aneinander zu ketten. Ich denke, meine Frage ist: Grob gesagt, ist eine kleine Zeitrahmendifferenz ein Grund dafür, dass Transaktionsketten nicht verarbeitet werden können?
Ich würde nicht darauf wetten, dass das funktioniert, es könnte auf reines Glück mit der Latenz zwischen Knoten zurückzuführen sein, die dazu führt, dass einige von ihnen die Kette akzeptieren, aber es ist sicherlich etwas, auf das Sie sich nicht verlassen möchten. Wenn Sie B einreichen und ein Knoten noch nichts von A gehört hat, wird der Knoten es ablehnen, da B versucht, eine Ausgabe auszugeben, die ihm noch nicht existiert. Sie können damit im Testnetz spielen, wenn Sie die Kette zu schnell übermitteln, werden Sie sie einfach nicht auf anderen Knoten sehen, testnet.btclook.com ist gut, um sie in Echtzeit zu beobachten. Es ist ein ziemlich guter Spielplatz, um ein solches Verhalten zu testen.