Wie bestätigen, dass meine eigene Doublespend-Transaktion bestätigt wurde

Transaktionen im Testnetz werden derzeit fast immer mit einer neuen txid doppelt ausgegeben (möglich aufgrund der tx-Formbarkeit). Für Testzwecke ist das eigentlich ganz nett.

Ich frage mich also - wenn ich eine Zahlung getätigt habe und die txId 'XXX' habe, wird diese Zahlung manchmal mit einer neuen txId 'YYY' bestätigt, die ich nicht kenne. Wie kann ich (mit bitcoind json-rpc) herausfinden, dass meine Zahlung mit txId 'XXX' bestätigt wurde?

sehe ich genauso! Ich sehe mein gepushtes utx im Netzwerk gesendet und später im Block mit einer anderen txid (ich sehe nie das geänderte utx gesendet, ich denke, die Miner ändern sie, wenn sie sie in den Block stellen!?)
Es sind nicht unbedingt die Miner. Jeder kann die Signaturen der Transaktion leicht so verändern, dass sie weiterhin gültig sind und so einen neuen tx-Hash erzeugen. Dass dies möglich ist, wird Transaktionsformbarkeit genannt. Ich schätze, jemand macht das gerade mit allen Transaktionen, die gerade im Testnet übertragen werden, und schafft es irgendwie, sie die meiste Zeit vor Ihnen durchzubringen. Siehe meine Antwort, wie man damit umgeht.
Ich sehe nie die geänderte utx-Übertragung
Ich auch nicht. Ich denke, Ihr eigener Kunde lehnt es ab, weil Sie diese Transaktion bereits haben. Aber wenn andere Kunden zuerst die widersprüchliche Transaktion sehen, werden sie Ihre ablehnen
XXX wird zu YYY, es gibt keine 2 Transaktionen - wenn es so wäre, müssten Sie beide übertragen sehen! Stattdessen sehen Sie nur XXX, bevor es im Block zu YYY wird
schau dir diesen Kerl an! bitcoin.stackexchange.com/a/52576/14316 ziemlich interessant (über uns, dass YYY nicht ausgestrahlt wird!)

Antworten (2)

Bevor Sie Ihre Frage als „beantwortet“ markieren, sollten Sie Folgendes beachten:

Wenn Ihr Bitcon-Client tx YYY nicht sieht, sondern nur XXX Broadcast-ed sieht, scheint es, dass nur der Block, den Ihr Client gespeichert hat, den Verweis auf txid YYY enthält (den Ihr Client nie gespeichert hat).

In Ihrer Antwort verweisen Sie auf https://bitcoin.org/en/release/v0.12.0#wallet-negative-confirmations-and-conflict-detection als die Methode, die zur Rettung kommt ... In ihrem Beispielszenario transaction B „beats ' transaction A in einem Rennen, um die gleichen Inputs auszugeben ...

Diese Erkennungsmethode funktioniert, wenn Ihr Client sowohl Netzwerkübertragungen von XXX ( transaction A) als auch YYY ( transaction B) gesehen hat (da dies eine doppelte Ausgabe wäre, bei der YYY XXX übertrifft!)

Aber da Ihr Kunde noch nie von YYY gehört hat (abgesehen von seiner Sackgassenreferenz in einem Block), wie kann der Kunde diese Methode verwenden, wenn tx YYY im Speicher Ihres PC-Laufwerks als XXX aufgezeichnet/gespeichert/gespeichert wurde?


Meine Antwort (wenn Sie bestätigen können, dass tx YYY von Ihrem Client allein nicht gefunden werden kann) lautet:

Es sieht so aus, als würden einige/viele Miner txids ändern (durch Formbarkeit)

Testnet3 ist möglicherweise defekt/wird von unsicherem Code nicht absichtlich angegriffen, da manipulierte TXIDs in Blöcken auf nichts im Speicher gespeichertes hinweisen, während die gespeicherten TXS gültige Ausgaben sind - die TXID ist nicht immer im Block vorhanden.

... als würde der Miner einige TXs enthaupten

verwandt: testnet3 häufige tx-Formbarkeit und Wie hat blockr.io das gesehen?

Ich höre dem Netzwerk ganz anders zu als Sie und sehe dasselbe! Ich sage nicht, dass ich richtig liege, aber wenn Sie beweisen können, dass diese Antwort falsch ist, wäre das interessant! Ich würde mich fragen, welche Voodoo-Magie hier vor sich geht!

Die Antwort ist eigentlich, dass Sie in diesem Fall einen negativen Bestätigungszähler erhalten. (Die Bitcoin-Dokumentation ist einfach schrecklich..)

Siehe die Bitcoin Core Release Notes von 0.12.0 – Abschnitt „Wallet: Negative Bestätigungen und Konflikterkennung“

https://bitcoin.org/en/release/v0.12.0

Update-Hinweis : Im Falle einer negativen Bestätigung (Konflikt erkannt) stellen Sie sicher, dass Sie alle übergeordneten TX dieses TX abrufen und prüfen, ob dieser bestätigt wurde