Konto nonce - was wäre, wenn es nicht existierte? [Duplikat]

Ich kann nicht verstehen, wie das Konto Nonce tatsächlich doppelte Ausgaben vermeidet. Alle Antworten dazu im Internet folgen dem Muster "Wenn Sie nur 50 Eth haben und versuchen, 50 an A und 50 an B mit höherem Gaspreis zu senden, lehnt das Netzwerk ab, weil der Zähler eine Einheit übersprungen hat, bla bla ...". Ok, so funktioniert es jetzt, aber ... was wäre, wenn Nonce nicht existierte? Angenommen, ich sende zwei Transaktionen, 50 Eth an A und 50 an B mit höherem Gaspreis, aber ich habe nur 50 Eth. Und nehmen wir an, es gibt kein Nonce in Ethereum. Was wird passieren? Was werden die Knoten tun?

Antworten (1)

Die Nonce soll Sie nicht daran hindern, dasselbe Geld zweimal auszugeben. Wenn Sie zwei Transaktionen hätten, die dieselben 50 ETH senden, würde die erste Transaktion als erfolgreicher Transfer in die Blockchain gehen, und, vorausgesetzt, Sie hätten genug Geld für das Benzin der zweiten, würde die zweite Transaktion als fehlgeschlagener Transfer in die Blockchain gehen . (Beachten Sie, dass sich dieser letzte Teil von Systemen wie Bitcoin unterscheidet, die nicht das Konzept haben, dass eine Transaktion in die Blockchain gelangt, aber fehlschlägt - für sie ist eine Transaktion entweder erfolgreich oder ungültig, und wenn sie ungültig ist, wird sie es nicht sein überhaupt in einem Block enthalten.)

Die Nonce soll verhindern, dass dieselbe signierte Transaktion zweimal gesendet wird. Wenn ich 100 ETH habe und eine Transaktion durchführe, die Ihnen 50 ETH sendet, möchte ich nicht, dass Sie in der Lage sind, die von mir gesendeten Daten zu kopieren, dann genau dieselbe Transaktion ein zweites Mal an das Netzwerk zu senden und meine verbleibenden 50 ETH auszugeben Sie erhalten also 100 ETH, wenn ich Ihnen nur 50 ETH schicken wollte. Das Nonce-System vermeidet dies: Jedes Konto hat einen Datensatz in der Blockchain des letzten Nonce, den es verarbeitet hat. Wenn Sie also versuchen, eine bereits verarbeitete Transaktion zu senden, weiß die Blockchain, dass sie diese ablehnen muss.

Es gibt alternative Methoden, die in anderen Systemen verwendet werden, die keine Nonce erfordern - UTXO-basierte Systeme wie Bitcoin benötigen keine Nonce -, aber sie teilen die Anforderung, dass Ihre Transaktion etwas Einzigartiges enthalten muss, das nur von verarbeitet werden kann Blockchain einmal.

Dies ist eine vollständige und gut begründete Antwort. Vielen Dank.