Wie wird das Problem der Transaktionsformbarkeit behoben?

Mit der bevorstehenden Veröffentlichung von Bitcoin Core 0.9 frage ich mich, wie das Problem der Transaktionsverformbarkeit behoben wird und welche Konsequenzen die Behebung hat.

Es scheint, dass die Formbarkeit von Transaktionen dem Bitcoin-Netzwerk einige Probleme bereitet:

  • Das Netzwerk wird DDoSed ausgesetzt, indem mehrere offensichtliche Doppelausgaben weitergeleitet werden
  • Absender der Transaktionen müssen vermeiden, 0 Bestätigungstransaktionen auszugeben, falls sie durch Formbarkeit ungültig werden
  • Beim Speichern von TxIDs von ausgegebenen Transaktionen zur Aufbewahrung von Aufzeichnungen muss sichergestellt werden, dass die TxID später nicht geändert wurde

Werden all diese Probleme im kommenden Update behoben, und wenn ja, wie werden sie behoben?

Der zweite und dritte Punkt liegen außerhalb des Anwendungsbereichs der grundlegenden Bitcoin-Client- und Wallet-Software; Dies wären Probleme, die von der benutzerdefinierten Software einer Börse angegangen werden müssten.
Die Versionshinweise für Bitcoin Core 0.90 (der Referenzclient) enthalten mehrere Fixes für die Transaktionsverformbarkeit: bitcointalk.org/index.php?topic=495683.0

Antworten (1)

Die Verformbarkeit von Transaktionen ist eine Folge der Eigenschaften von Bitcoin. Die Eingabedaten (scriptSig) zum Beanspruchen von Ausgaben sind absichtlich formbar, um nützliche Szenarien zu ermöglichen, in denen man Ausgaben auf unterschiedliche Weise beanspruchen möchte.

Die Folge dieser Merkmale ist, dass sich der Hash der Transaktion ändert und nicht als nützliche Information betrachtet werden sollte, außer um auf die Ausgaben von bestätigten Transaktionen zu verweisen.

Vor diesem Hintergrund bin ich mir nicht sicher, welche Änderungen der Client implementieren könnte, um zu verhindern, dass sich der Hash ändert. Vielleicht kann es bestimmte Regeln durchsetzen, wie z. B. nicht kanonische Daten-Pushs nicht standardisiert zu machen , aber das kann spätere Erweiterungen von Bitcoin beeinträchtigen.

Wenn das scriptSig absichtlich formbar ist, kann es nicht einfach bei der Berechnung der txid ausgeschlossen werden?