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?
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.
Claris
MHT
Claris
MHT