Miner ändert unbestätigte Transaktionen und fügt sie in den Block ein

Es ist möglich, dass ein Miner eine unbestätigte Transaktion modifiziert (wie das Ändern der Transaktionsausgabe an den Miner selbst) und sie in den lokalen Block eingefügt hat, und nach 10 Minuten hat der Miner das PoW glücklicherweise gelöst, den Block in die Kette eingefügt und gesendet zu anderen?

Wenn eine Transaktion geändert und schließlich mit der Kette verknüpft wurde, wie überprüfen andere, ob die TX gültig war oder nicht? (andere prüfen nur, ob die PoW-Antwort richtig oder falsch war, prüfen nicht tx, habe ich recht?)

Und wenn modifiziertes TX in der Kette war, wie können betroffene Personen ihr Vermögen aus dem Verlust an modifiziertem TX (bei dem der Output an den Miner selbst modifiziert wurde) zurückgewinnen? Könnten sie darum bitten, die Sperre aufzuheben, oder wie könnten sie das tun?

Danke

Wenn ein Miner Ihre unbestätigte Transaktion ändern könnte, könnte ich Ihre unbestätigte Transaktion auch ohne Mining ändern.

Antworten (4)

Es ist möglich, dass ein Miner eine unbestätigte Transaktion modifiziert (wie das Ändern der Transaktionsausgabe an den Miner selbst) und sie in den lokalen Block eingefügt hat, und nach 10 Minuten hat der Miner das PoW glücklicherweise gelöst, den Block in die Kette eingefügt und gesendet zu anderen?

Nein, da die Transaktion ungültig wäre. Die überwiegende Mehrheit der Transaktionen enthält digitale Signaturen, die die gesamte Transaktion signieren. Wenn die Transaktion geändert wird, werden die Signaturen ungültig und somit wird die Transaktion ungültig. Und wenn eine Transaktion ungültig ist, ist der Block, der sie enthält, ebenfalls ungültig.

Wenn eine Transaktion geändert und schließlich mit der Kette verknüpft wurde, wie überprüfen andere, ob die TX gültig war oder nicht? (andere prüfen nur, ob die PoW-Antwort richtig oder falsch war, prüfen nicht tx, habe ich recht?)

Nein, das ist völlig falsch. ALLE vollständigen Nodes verifizieren alle Transaktionen in allen Blöcken, die sie erhalten (sowie Transaktionen, die außerhalb von Blöcken empfangen werden). Nur weil ein Block einen gültigen Arbeitsnachweis hat, bedeutet das nicht, dass der Block gültig ist. Er muss weiterhin auf einem gültigen Block aufbauen und darf nur gültige Transaktionen enthalten. Vollständige Knoten überprüfen weiterhin, ob die in einem Block enthaltenen Transaktionen gültig sind.

Entgegen der landläufigen Meinung sagen Miner nicht, welche Transaktionen gültig sind. Ihre Aufgabe besteht darin, die Reihenfolge der Transaktionen innerhalb bestimmter Einschränkungen zu bestimmen. Es ist die Aufgabe von Full Nodes, Transaktionen zu verifizieren, und alle Miner (oder die Mining-Pools) sollten Full Nodes betreiben.

Vielen Dank, es ist wirklich hilfreich. Also würde der Full Node jede Transaktion in dem Block verifizieren, der vom Miner neu erstellt wurde? Für mein Szenario als Beispiel, wenn jemand einen TX modifiziert und den Block, der ihn enthält, erfolgreich abgebaut hat und der Block an einen vollständigen Knoten gesendet wurde, würde der vollständige Knoten ihn überprüfen und den ungültigen TX herausfinden, und dann würde dieser vollständige Knoten tun? an andere Knoten sendet und sie darüber informiert, dass dieser Block ungültig ist? ist es so? und dann verwirft jeder Knoten einfach den gerade abgebauten Block, was dazu führt, dass in den letzten 10 Minuten keine neuen Blöcke gefunden wurden? Danke
Jeder vollständige Knoten, der diesen Block empfängt, würde ihn als ungültig zurückweisen. Sie verwerfen einfach den Block; es gibt keine Benachrichtigung anderer Knoten, dass der Block ungültig ist. Alle vollständigen Knoten werden herausfinden, dass es ungültig ist. Es wird so sein, als wäre kein Block gefunden worden. Die meisten Nodes sperren auch den Node, der ihnen den ungültigen Block übermittelt hat. Solche Verbote gelten lokal für den Knoten, nicht netzwerkweit. Beachten Sie, dass der verworfene Block nicht bedeutet, dass Arbeit verschwendet wurde. Das Mining ist zustandslos und jeder ausprobierte Block hat die gleiche Wahrscheinlichkeit, einen gültigen PoW zu haben wie jeder andere Versuch für einen Block auf einer bestimmten Höhe.
"Wenn eine Transaktion geändert und schließlich mit der Kette verknüpft wurde, wie prüfen andere, ob die TX gültig war oder nicht? (Andere prüfen nur, ob die PoW-Antwort richtig oder falsch war, und prüfen nicht TX, habe ich Recht?)" Das können Sie nicht Überprüfe irgendetwas über einen Block, bis du den Block verstehst . Wenn die Transaktion nicht den Regeln entspricht, dann verstehen Sie die Transaktion nicht und verstehen somit den Block nicht. Das macht es nicht von zufälligem Müll zu unterscheiden. Ein Knoten versucht nicht herauszufinden, was bestimmte Ungültigkeiten bedeuten, da es keine solche Spezifikation gibt, die sagt, was sie bedeuten.

Jede gültige Bitcoin-Transaktion kann nur erstellt werden, wenn Sie den privaten Schlüssel, den öffentlichen Schlüssel und den öffentlichen Schlüssel des Empfängers haben. Sie können überprüfen, ob die Transaktion gültig ist, ohne den privaten Schlüssel zu haben, aber um sie zu ändern, müssten Sie die Transaktion von Grund auf neu erstellen, was nur möglich wäre, wenn Sie den privaten Schlüssel des Absenders hätten.

Also nein, es ist nicht möglich.

Bearbeiten: Eine gute Erklärung finden Sie unter https://youtu.be/Lx9zgZCMqXE?t=193

Normalerweise ist alles in einer Transaktion außer scriptSig kryptografisch signiert. So kann niemand Ihre Transaktionsausgaben ändern. Dies ist der Standardfall.

Aber es ist tatsächlich möglich, gültige Transaktionen zu erstellen, bei denen die Ausgaben geändert werden können.

Sehen Sie sich die konfigurierbaren Signatur-Hash-Typen an . Die Verwendung von DER-Signaturen mit dem angehängten SIGHASH_NONEFlag ( ) erzeugt eine gültige Transaktion, deren freigeschaltete Gelder an jeden Ausgang umverteilt werden können.0x00000002OP_CHECKSIG

Es ist möglich, aber nicht für reguläre Transaktionen

Eine etwas kurze Antwort, um zu sagen, dass es möglich ist, Transaktionen zu erstellen, die geändert werden können (ohne Signaturen).