Welche technischen Eigenschaften hat ein bestätigter Tx, die ein unbestätigter Tx nicht hat?

Aus Nutzersicht reduziert jede Blockbestätigung die Wahrscheinlichkeit, dass eine Transaktionszahlung rückgängig gemacht wird.

Was passiert jedoch aus Sicht der Software, wenn eine Transaktion bestätigt wird? Ich weiß zum Beispiel, dass es aus dem Mempool entfernt wurde. Gibt es einen weiteren technischen Unterschied zwischen bestätigten und unbestätigten Transaktionen? Sind beide Ausgaben im selben UTXO-Set gespeichert? Passiert etwas auf einer niedrigeren Ebene (Datenspeicherung usw.) innerhalb eines Knotens oder im Netzwerk oder im Protokoll, sobald ein Tx in einen Block aufgenommen wurde?

Haben bestätigte Transaktionen neben dem menschlichen Sicherheitsempfinden noch besondere Eigenschaften?

Antworten (4)

Wenn wir über eine bestimmte Transaktion sprechen: nein. Die unbestätigte Transaktion sieht genauso aus wie die gleiche Transaktion mit 1,2.. Bestätigungen.

Jawohl. Es gibt 3 Arten von Transaktionen: bestätigt, unbestätigt und nicht vorhanden

Beispiel für nicht existent sind die 10 BTC, die ich dir morgen geben werde.

Unterschied zwischen unbestätigt und nicht vorhanden ist nicht "offensichtlich"

Wenn Sie eine unbestätigte Sendung auf Ihrem PC sehen, „garantiert“ dies nicht, dass alle anderen sie auch sehen. Wenn die Internetverbindung ausfällt, sind Sie möglicherweise genau die einzige Person, die dies sieht.

Unbestätigte Transaktionen können sich in vielerlei Hinsicht stark von bestätigten unterscheiden:

Unbestätigte Transaktionen können Gelder ausgeben, die bereits ausgegeben wurden, oder Gelder, die nie existiert haben.

Unbestätigte Transaktionen gehen im Internet verloren (werden nie bestätigt).

Unbestätigte Transaktionen können rückgängig gemacht und durch andere unbestätigte Transaktionen ersetzt werden, die das Geld an jemand anderen senden.

Unbestätigte Transaktionen können technische Fehler enthalten, die eine Bestätigung verhindern.

Unbestätigte Transaktionen können eine niedrige Gebühr haben (weniger als das Staublimit) und dies kann zu einer Bestätigungsverzögerung von 12 oder mehr Stunden führen.

Eine unbestätigte Transaktion kann eine von vielen missbräuchlichen (Spam-) Transaktionen (bei einem Angriff) sein. Solche unbestätigten Transaktionen werden normalerweise nie bestätigt und höchstwahrscheinlich werden alle Miner diese missbräuchlichen Transaktionen löschen.

Unbestätigte Transaktionen können von allen Minern zensiert werden. Dies kann passieren, wenn eine Adresse einer Person gehört, die gegen Bitcoin ist, oder zu einem großen Unternehmen, das einen Interessenkonflikt mit Bitcoin hat (wie eine große Bank). Wenn sich alle Bergleute einig sind, dass sie nicht möchten, dass diese Entität mit Bitcoin handelt, können sie beschließen, die Aktivität einer solchen Entität oder Person zu zensieren. Diese Transaktion wird möglicherweise nie bestätigt.

"Unbestätigte Transaktion kann technische Fehler enthalten, die eine Bestätigung verhindern" - Würden solche technischen Fehler nicht auch die Weiterleitung einer unbestätigten TX verhindern? Das heißt, ein TX, der technische Fehler enthält, die verhindern würden, dass er jemals bestätigt wird, würde höchstwahrscheinlich nicht einmal im gesamten Netzwerk ausgestrahlt, oder? Obwohl dies Sache jedes einzelnen Knotens ist, würde ich sagen, dass die überwiegende Mehrheit der Knoten nicht so konfiguriert ist, dass sie ungültige oder nicht legitime Transaktionen weiterleitet?

Die Transaktionen sind vor und nach der Bestätigung gleich. Jede Bestätigung bedeutet nur, dass sie in einen Block geschürft wurde.

Es gibt keinen Unterschied zwischen einer bestätigten und einer unbestätigten Transaktion, weshalb Sie die vollständige Blockchain benötigen, um genau zu überprüfen, was Sie sehen.

Was die Speicherung betrifft: Eine bestätigte Transaktion wird das UTXO-Set beeinflusst haben, indem alte UTXOs verbraucht/ausgegeben und einige neue erstellt wurden.

Wenn Ihr Knoten auch einen Mempool verwaltet, hält er Transaktionen im Speicher (nirgendwo dauerhaft), und die Transaktionsauswahl basiert auf (i) Validierungsregeln und (ii) der lokalen Richtlinie des Knotens.

Ein interessanter Fall ist, wenn Ihre Broadcast-Transaktionen mit nicht standardmäßigen Ausgaben: Knoten könnten sich weigern, sie in den Mempool zuzulassen und sich weigern, sie weiterzuleiten. Sollte ein Miner von der Transaktion erfahren, kann er sie dennoch in einen Block aufnehmen. Der Block würde also die Richtlinie eines Knotens außer Kraft setzen, diese Transaktionen nicht zu akzeptieren.

Eine Transaktion, die niemals bestätigt werden kann, ist auf einen Regelverstoß und nicht auf eine lokale Richtlinie zurückzuführen. Ein Beispiel wäre die Ausgabe von Ausgaben, die nicht vorhanden sind, oder eine Signatur, die völlig ungültig ist.

Technisch gesehen besteht der Unterschied zwischen einer bestätigten Transaktion und einer unbestätigten Transaktion darin, dass bestätigte Transaktionen in einen Block gehasht wurden, wobei der Header dieses Blocks auf einen äußerst unwahrscheinlichen Wert gehasht wurde. Sie sind innerhalb des Blocks in Stein gemeißelt und können nicht geändert werden, solange dieser Block Teil der besten Kette bleibt. Unbestätigte Transaktionen leben für sich, nur wenige Kilobyte an Daten, die im Netzwerk herumschwirren und darauf warten, in einen Block gehasht zu werden.

Ich weiß das alles über Blöcke und PoW, aber was passiert mit DER TATSÄCHLICHEN TRANSAKTION nach einer Bestätigung? Blöcke „stellen fest, dass eine Transaktion abgeschlossen ist“ – aber ist irgendwo ein Flag-Bit gesetzt? Werden Daten aus dem RAM oder dem Dateisystem verschoben oder kopiert oder gelöscht? Interessiert es den Kunden überhaupt, ob ein Tx bestätigt wird oder nicht? Haben bestätigte Tx irgendwelche besonderen Eigenschaften, abgesehen davon, dass sich der BENUTZER dabei besser fühlt?
Technisch gesehen sind die Transaktionsdaten genau die gleichen wie die unbestätigten Daten, bevor sie in den Block gestellt wurden.