Können die Ausgaben von Transaktionen mit doppelten Hashes ausgegeben werden?

Mir ist aufgefallen, dass es zwei Transaktions-Hashes gibt, die mehr als einmal in der Blockchain vorkommen. Der Grund dafür ist verständlich: Sie schickten Mining-Belohnungen an dieselbe Adresse. Diese Transaktionen hatten die gleichen Eingaben (keine) und die gleichen Ausgaben (eine 50-BTC-Ausgabe an die angegebene Adresse). Dies verursacht jedoch ein Problem, wenn Sie versuchen, mit Transaktionsdaten zu arbeiten, da die Transaktions-Hashes nicht als eindeutige Identifikatoren einer Transaktion betrachtet werden können.

Dies wurde hier kurz diskutiert , aber die Diskussion basierte mehr auf Blockvalidität.

Dies führte tatsächlich zu einem Fehler, der ein Überschreiben der älteren Transaktion verursachte, was in der Version 0.6.0 behoben wurde .

Es gab einige BitcoinTalk-Threads zu einem dieser Ereignisse: BitcoinTalk Other BitcoinTalk

Im ersten dieser Threads scheint Gavin Andresen anzudeuten, dass die Ausgabe der neueren Transaktion nicht ausgegeben werden kann, indem er sagt: „Ooh! Ooh! 50 weitere Bitcoins für den Thread „Bitcoins Lost Forever“!“.

Die zwei Transaktions-Hashes, die mehr als einmal in der Blockchain erschienen sind, sind: d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599 e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd8f.5b4cb067cd81b4b4cb067cd81b

Können diese Transaktionsausgaben also ausgegeben werden? Warum oder warum nicht?

BEARBEITEN: Ich sollte erwähnen, dass ich überprüft habe und seit dem 5. Juli 2013 keine der Ausgaben der Transaktionen ausgegeben wurde.

Antworten (1)

Aktualisiert, da meine frühere Antwort falsch war

Zitat aus BIP 0030 :

Blöcke dürfen keine Transaktion enthalten, deren Kennung mit der einer früheren, nicht vollständig ausgegebenen Transaktion in derselben Kette übereinstimmt.

Diese Regel ist auf alle Blöcke anzuwenden, deren Zeitstempel nach einem Zeitpunkt liegt

Dies bedeutet, dass eine Transaktion denselben Hash mehrmals haben kann, solange er immer zuerst ausgegeben wird, bevor die neue Transaktion erstellt wird.

Was die älteren Transaktionen betrifft: Sie sind gültig, aber das Netzwerk lässt Sie nicht ausgeben, weil die Implementierung im Referenzclient Sie nicht zulässt.

Sie können also theoretisch ausgegeben werden, aber (höchstwahrscheinlich) nicht in der Praxis?
@Mike hat meine Antwort mit konkreteren Informationen aktualisiert