Warum zählt nur die früheste Transaktion für doppelte Ausgaben?

Auf Seite 2 des Bitcoin-Papiers heißt es:

Das Problem ist natürlich, dass der Zahlungsempfänger nicht nachweisen kann, dass einer der Besitzer die Münze nicht doppelt ausgegeben hat. Eine gängige Lösung besteht darin, eine vertrauenswürdige zentrale Behörde oder Minze einzuführen, die jede Transaktion auf doppelte Ausgaben überprüft. Nach jeder Transaktion muss die Münze an die Münzstätte zurückgegeben werden, um eine neue Münze auszugeben, und es wird darauf vertraut, dass nur direkt von der Münzstätte ausgegebene Münzen nicht doppelt ausgegeben werden. Das Problem bei dieser Lösung ist, dass das Schicksal des gesamten Geldsystems von dem Unternehmen abhängt, das die Münze betreibt, wobei jede Transaktion genau wie eine Bank über sie laufen muss.

Wir brauchen eine Möglichkeit, damit der Zahlungsempfänger weiß, dass die vorherigen Eigentümer keine früheren Transaktionen unterzeichnet haben. Für unsere Zwecke zählt die früheste Transaktion, daher kümmern wir uns nicht um spätere Versuche, doppelte Ausgaben zu tätigen. [Hervorhebung hinzugefügt] Die einzige Möglichkeit, das Fehlen einer Transaktion zu bestätigen, besteht darin, sich aller Transaktionen bewusst zu sein. Beim mintbasierten Modell war sich die Mint aller Transaktionen bewusst und entschied, welche zuerst eintraf. Um dies ohne eine vertrauenswürdige Partei zu erreichen, müssen Transaktionen öffentlich angekündigt werden [1] , und wir brauchen ein System, mit dem sich die Teilnehmer auf einen einzigen Verlauf der Reihenfolge ihres Eingangs einigen können. Der Zahlungsempfänger muss nachweisen, dass zum Zeitpunkt jeder Transaktion die Mehrheit der Knoten zugestimmt hat, dass es sich um die erste Transaktion handelt.

Warum zählt nur die früheste Transaktion für doppelte Ausgaben? Ich dachte, dass es spätestens sein würde, da der Vorbesitzer bis dahin geprüft hätte. Aber selbst das ist fehlerhaft ... Wir müssen alles überprüfen.

Liegt es daran, dass die Münze eine Liste von Transaktionen ist und nur die erste nicht verifiziert wird?

Antworten (2)

„Doublespend“ bezieht sich auf den Versuch, dasselbe Geld zweimal auszugeben. Insbesondere bei Bitcoin tritt dies auf, wenn ein Benutzer zwei Transaktionen veröffentlicht, die in Konflikt stehen, weil er versucht, dieselbe nicht ausgegebene Transaktionsausgabe als Eingabe zu verwenden. Offensichtlich kann nur eine der beiden Transaktionen gültig sein.

Vor der Veröffentlichung von Bitcoin bestand die Lösung des Doublespending-Problems darin, einen zentralen Akteur zu benennen, der entschied, welche der beiden Transaktionen Vorrang hat. Der zentrale Akteur würde dies tun, indem er ankündigt, welchen der beiden er zuerst gesehen hat .

Das "First-Seen"-Verhalten war zunächst explizit im Knotenverhalten codiert: Knoten würden keine widersprüchlichen Transaktionen in ihren Mempool (die vorübergehende Speicherung unbestätigter Transaktionen) akzeptieren. Dies führte jedoch zu der falschen Annahme, dass Nullbestätigungstransaktionen zuverlässig sein könnten, während das Doppelausgabenproblem tatsächlich dadurch gelöst wird, dass Miner Transaktionen zur Bestätigung in Blöcke sammeln. Die Blöcke dürfen nur eine der beiden widersprüchlichen Transaktionen enthalten, da sonst der Block ungültig ist. Somit legt die Blockchain den Vorrang von Transaktionen fest, indem sie auf einem gemeinsamen Journal der Transaktionen ohne einen zentralen Akteur zusammenläuft.

In den vergangenen Monaten haben wir gesehen, wie das „first-seen“-Paradigma deutlich aufgeweicht wurde, da doppelte Ausgaben (von unbestätigten Transaktionen) aufgrund der hohen Nachfrage nach Blockspace mehr oder weniger trivial geworden sind. Da es für Benutzer üblich wird, Transaktionen mit einer höheren Gebühr (dh doppelte Ausgaben) zu aktualisieren, wird das Paradigma „zuerst gesehen“ nicht mehr verwendet und durch den Defacto-Mechanismus des „zuerst eingeschlossenen“ ersetzt. Unter der Annahme eines rationalen Miner-Verhaltens, das zuerst die profitabelsten Transaktionen auswählt, werden wir uns schließlich auf ein vollständiges System zum Ersetzen durch Gebühren konvergieren.

Mit anderen Worten, wenn das Whitepaper die Anforderung an das Bitcoin-System beschreibt, eine konvergente Historie mit „First-Seen“ zu erstellen, beschreibt es eine vereinfachte Situation, die die Netzwerkdynamik des Wettbewerbs um Blockspace nicht berücksichtigt. Aus heutiger Sicht ist dies als „erstbestätigt“ zu verstehen.

oh .. ich dachte, dass sich "früheste Transaktion" auf die erste Transaktion in der Geschichte jeder Blockmünze bezieht. Aber hier bedeutet früheste Transaktion die erste Transaktion von 2 oder mehr Doppelausgaben?
@AshishNegi: Richtig, ich verstehe nicht, warum die früheste Transaktion in der Geschichte jeder Blockmünze besonders interessant wäre.
Beachten Sie, dass Lösungen existierten, aber nicht vollständig waren. Hier ist ein Papier vor Bitcoin, das eine Lösung beschreibt, die das Problem so weit wie möglich mildert - arxiv.org/abs/0802.0832v1
mit der Dynamik von zuerst eingeschlossen, könnte ein "Hacker" keine Transaktion mit 1 $ Gebühr ausspionieren, den privaten Schlüssel hineinnehmen und eine weitere Transaktion mit demselben privaten Schlüssel erstellen und mit 10 $ an die Brieftasche des Hackers ausgeben: dann ist seine Transaktion zuerst bestätigt und die "wahre" Transaktion von 1 $ schlägt fehl. Liege ich falsch? Wenn nicht, ist es nicht ein großer großer Fehler?
Transaktionen enthalten keinen privaten Schlüssel, sie enthalten Signaturen. Signaturen werden erstellt, indem der private Schlüssel verwendet wird, um eine bestimmte Nachricht zu signieren, die in diesem Fall ein Digest der Transaktion ist. Eine Signatur ist also nur im Kontext der genauen Transaktion gültig, sie beweist, dass der Unterzeichner den privaten Schlüssel hatte, aber sie gibt den privaten Schlüssel selbst nicht preis.
@Murch Wenn ich das richtig verstehe, wird die "Mischung" aus dem privaten Schlüssel und dem Zeitstempel/Transaktionsbetrag vom Eigentümer vorgenommen und er gibt dieser Mischung = die Signatur an die Blockchain. Und irgendwie kann die Blockchain diese Signatur mit dem öffentlichen Schlüssel vergleichen?
Die Signatur ist das Ergebnis einer mathematischen Funktion, die eine Nachricht und den privaten Schlüssel als Eingabe verwendet. Es kann in einer anderen mathematischen Funktion unter Verwendung der Signatur, der Nachricht und des zu verifizierenden öffentlichen Schlüssels verwendet werden. Es kann nicht verwendet werden, um den privaten Schlüssel zu lernen. – Die Blockchain macht nichts: Jeder Knoten im Netzwerk validiert jede Transaktion und jeden Block, den er erhält. Dann leiten sie nur die gültigen Daten weiter. Da nur gültige Daten weitergeleitet und für die Blockchain berücksichtigt werden, landen diese auch in der Blockchain.

Bitcoin wird mit verteiltem Rechnen und mathematischen Berechnungen als Proof of Concept erstellt.

Jedes Mal, wenn Sie eine Transaktion durchführen, wird diese an das Netzwerk gesendet und basierend auf den verfügbaren Gebühren und Ressourcen verarbeitet.

Bitcoin vertraut niemandem, daher genehmigt es Transaktionen im Allgemeinen, nachdem mindestens 6 weitere Blöcke/Transaktionen zum Ledger hinzugefügt wurden.

Wenn Sie also doppelte Ausgaben tätigen möchten, müssen Sie die andere Transaktion mit genau einem früheren Zeitstempel fälschen, und Sie müssen die nächsten sechs Blöcke vor dem gesamten Bitcoin-Netzwerk der Welt verarbeiten. Dazu müssen Sie mindestens 51 % der Rechenleistung des gesamten Bitcoin-Netzwerks erwerben, was nicht möglich ist.

Daher verwirft Bitcoin jede doppelte Transaktion basierend auf der längsten Transaktionsblockkettenlänge.

Auch wenn alles, was Sie gesagt haben, richtig ist, verstehe ich nicht, wo die Antwort auf meine Frage zur Erklärung in Papierform ist.
Um doppelte Transaktionen zu fälschen, muss ein Benutzer über mindestens 51 % Rechenleistung des Bitcoin-Netzwerks verfügen (das sind Millionen von Minern und Mining-Pools zusammen), um die anderen bei Berechnungen zu übertreffen und seine Blockchain länger zu machen. Das ist unmöglich!!! Wir können also mit Sicherheit sagen, dass die frühe Transaktion (mit längerer Blockchain) die gültige ist.
Im Kapitel 2 von Bitcoin Paper spricht Satoshi nicht von 51 % Rechenleistung. Können Sie Ihre Antwort in Bezug auf dieses Kapitel bitte umformulieren? Es wird überzeugender sein. Ich habe die Frage auch mit zwei Absätzen dieses Kapitels aktualisiert.
extremetech.com/extreme/… Dieser Artikel kann Ihnen helfen, es zu verstehen.