Ist es möglich, eine unbestätigte Transaktion zu stornieren?

Wenn Sie eine Transaktion an das Netzwerk übermitteln, die noch nicht durch eine Sperre bestätigt wurde, ist es dann möglich, diese Transaktion zu stornieren?

Bestätigt es nicht, weil es sich um eine ungültige Transaktion (doppelte Ausgaben) oder nur um eine niedrige Priorität / Spam handelt und es daher einen Tag oder so dauern könnte?

Antworten (2)

Bitcoin-Qt unterstützt so etwas nicht.

Theoretisch:

Eine Transaktion wird abgebrochen, indem eine zweite Transaktion veröffentlicht wird, die einige der in der ersten Transaktion verwendeten Coins doppelt ausgibt (dies kann ein Send-to-self sein). Wenn die zweite Transaktion in einem Block vor der ersten enthalten ist, wird die erste ungültig und kann als vollständig storniert betrachtet werden, nachdem die zweite Transaktion 6 Bestätigungen erhalten hat. Das ist normalerweise nicht einfach. Netzwerkknoten akzeptieren keine Transaktionen, die Münzen doppelt ausgeben, die in einer Transaktion verwendet werden, von der sie bereits wissen. Knoten vergessen jedoch nach und nach Transaktionen, wenn sie nicht in Blöcke gelangen, sodass eine Transaktion abgebrochen werden könnte, wenn sie es nach mehreren Tagen nicht in einen Block schafft und sowohl der Sender als auch der Empfänger die erneute Übertragung einstellen.

Bitcoin hatte früher eine Funktion namens Transaktionsersatz. Eine Transaktion konnte als nicht final markiert werden, wodurch diese Transaktion daran gehindert wurde, in einen Block zu gelangen, aber die Transaktion jederzeit abgebrochen werden konnte. Satoshi hat dies jedoch vor einiger Zeit deaktiviert. Transaktionen können immer noch als nicht endgültig markiert werden, aber sie können nicht ersetzt werden.

Was bringt es dann, eine Transaktion als nicht endgültig zu markieren? Vieles, was auf en.bitcoin.it/wiki/Contracts steht , scheint das Ersetzen von Transaktionen zu erfordern, die als nicht endgültig markiert wurden.
@DanielH Es sollte möglich sein, nicht endgültige Transaktionen privat zu kommunizieren und nur die endgültige Version der Transaktion zu übertragen. Derzeit kann jedoch eine der Parteien eine nicht endgültige Transaktion öffentlich übertragen, und diese nicht endgültige Transaktion kann nicht durch eine spätere Version der Transaktion ersetzt werden. Dies führt bei einigen Verträgen zu Problemen. Knoten sollten wahrscheinlich nur nicht endgültige Transaktionen ablehnen, wenn sie keine Ersetzungen zulassen.
Derzeit ist dies aus praktischen Gründen unmöglich. Theoretisch sollten Miner gerne eine Transaktion durch eine widersprüchliche Transaktion mit einer höheren Gebühr ersetzen. Aber meines Wissens implementiert das niemand. Der Konsens scheint zu sein, dass es für die Community wertvoller ist, wenn unbestätigte Transaktionen zuverlässiger sind.
Wenn die zweite Transaktion eine höhere Gebühr hat, sind die Chancen, dass sie akzeptiert wird, hoch.
@Jus12 {{Zitat erforderlich}}
@Lohoris Wenn Sie erkennen, dass eine Gebühr ein Gebot für einen Miner ist, Transaktionen anzunehmen, und da die Belohnung immer weiter abnimmt, ist es für Miner vorteilhafter, eine Transaktion mit niedrigerer Gebühr aus einer doppelten Ausgabe zu streichen.
@ Jus12 es wäre vorteilhafter, aber AFAIK tut das eigentlich kein Bergmann, daher ist dein Satz falsch. Bis Sie das Gegenteil beweisen.
Verstehe ich das richtig, falls ich die Transaktion von beispielsweise 1 BTC mit einer super niedrigen Gebühr übertragen habe, wenn der Mempool stark geladen ist und meine Brieftasche beispielsweise 10 BTC hat - um die erste Transaktion zu stornieren, die noch unbestätigt ist, Ich muss 10 BTC mit einer normalerweise hohen Gebühr an mich selbst senden, damit die 1 BTC-Transaktion fehl am Platz ist?

Aus der Hilfe der Konsole:

Aufgabetransaktion "txid"

Dadurch wird die Transaktion als abgebrochen markiert

 "abandoned": true

Danach können Sie die Eingabe(n) erneut auswählen, um sie mit höheren Gebühren zu senden

Getestet in Bitcoin Core 0.12.1

Funktioniert dies in irgendeiner Weise für Transaktionen ohne Wallet-ID?
@ShabahatM.Ayubi nur mit In-Wallet-Transaktionen bitcoin.org/en/developer-reference#abandontransaction The abandontransaction RPC marks an in-wallet transaction and all its in-wallet descendants as abandoned. This allows their inputs to be respent. Abandons the transaction on your node.