Das ist genau der Denkfehler. Ein UTXO kann nicht mehrfach ausgegeben werden. Weder in einem gemeinsamen Block, noch in mehreren Blöcken hintereinander. Das wäre in der Tat ein Double Spend.
Sichergestellt wird das über die Konsensregeln. Sollte ein Miner einen Block an das Netzwerk broadcasten, in dem ein UTXO zum zweiten Mal ausgegeben wird, werden die mehr als 10.000 anderen Nodes im Netzwerk das beim Validieren dieses Blocks feststellen.
Sobald die Nodes erkennen, dass der neue Block nicht den Regeln entspricht, wird er verworfen. Genau aus diesem Grund wird ein Miner solch einen Block auch gar nicht erst minen.
Im Extremfall könnte es passieren, dass zwei Miner gleichzeitig einen Block finden, wobei sich in diesen deine beiden unterschiedlichen Transaktionen des gleichen UTXOs befinden. Das Problem löst sich aber, sobald sich das Netzwerk für einen dieser Blöcke entschieden hat, also wenn der nächste Block gefunden wurde.
Wenn du eine Transaktion mit zu wenig Fee ausgestattet hast und sie im Mempool hängt gibt es mehrere Möglichkeiten:
-
Du wartest ab, ob der Mempool mal wieder fast leer ist und deine Transaktion durchkommt. Da anscheinend viele Nodes kein Zeitlimit dafür einstellen, besteht diese Chance immer. Gibt einige Threads dazu im Forum.
-
Da hast beim Erstellen der Transaktion das „Replace by Fee“ Flag gesetzt. Dann kannst du im Nachhinein noch die Fee erhöhen, obwohl die Transaktion schon an das Netzwerk übermittelt wurde. Replace by Fee können aber nicht alle Wallets.
-
Du erstellst eine Transaktion, welche einen Output deiner vorherigen Transaktion weitertransferiert. Zum Beispiel kannst du den Change UTXO der ersten Transaktion an eine andere Adresse deiner eigenen Wallet transferieren.
Für diese zweite Transaktion stellst du eine hohe Fee ein, so dass sich beide Transaktionen zusammen für den Miner lohnen. Natürlich funktioniert das Verfahren nur, wenn du Zugriff auf wenigstens einen Output der ersten Transaktion hast, z.B. falls ein Change existiert. Einfach mal nach „Child pays for Parent“ bzw. „CPFP“ suchen.
Ich weiß leider nicht ob es auch möglich ist, den gleichen UTXO nochmal in einer Transaktion mit höherer Fee an das Netzwerk zu übermitteln. Könnte sein, dass die Nodes so einen „Double Spend Versuch“ gar nicht in ihren Mempool aufnehmen.