Wie verifiziert ein Miner eine Transaktion, die eine Ausgabe einer anderen Transaktion im selben Block ausgibt?

In diesem Beitrag wird folgendes erwähnt:

Wenn alle Validierungen aller Transaktionen in einem Block erfolgreich sind, werden die verbrauchten Eingaben aus der Datenbank entfernt und alle Ausgaben dieser Transaktionen als neue, nicht ausgegebene Ausgaben in der Datenbank hinzugefügt, sodass sie von zukünftigen Blöcken ausgegeben werden können.

Aber wenn der UTXO-Satz nur nach dem Anhängen eines Blocks aktualisiert wird und ein Miner den UTXO-Satz nur überprüft, um die ausgegebenen/nicht ausgegebenen Ausgaben zu verstehen, wie erfolgt die Überprüfung, wenn eine Transaktion (z. B. tx_B) in einem Block eine Ausgabe einer anderen Transaktion ausgibt ( sagen wir tx_A) im selben Block? Mit anderen Worten, wie wird tx_B den Zustand der Ausgabe von tx_A verstehen, wenn die Ausgabe noch nicht im UTXO-Set gespeichert ist?

Beantwortet das deine Frage? UTXO aus demselben Block ausgeben
@Anonym Nein, ich weiß, dass UTXO aus demselben Block ausgegeben werden kann, aber meine Frage ist, wie die Überprüfung erfolgt, wenn Bergleute UTXO ihres gleichen Blocks im UTXO-Set nicht sehen.
Die Antwort ist die gleiche, Blöcke werden sequentiell verarbeitet und der UTXO wird nach jeder Operation effektiv aktualisiert. Daher kann eine spätere Transaktion im selben Block eine frühere ausgeben.
@Anonym, Perfekt! Das habe ich gesucht und in der anderen Frage gefehlt: Das UTXO-Set wird nach der Überprüfung jeder Transaktion aktualisiert (nicht nach dem Anhängen eines Blocks). Danke für deine Antwort.

Antworten (1)

Während ein Miner eine Blockvorlage erstellt, verwaltet er ein „virtuelles“ UTXO-Set, um die verbrauchten UTXOs und die neu erstellten UTXOs zu verfolgen. Eine Transaktion kann nur dann in einen Block aufgenommen werden, wenn alle ihre Eingaben für die Ausgabe verfügbar sind, sodass dieser Ansatz auch ausreicht, um die erforderliche topologische Reihenfolge der Transaktionen zu erreichen.