Wie sieht eine Transaktionsformbarkeit in der Blockchain aus? Gibt es Beispiele?
Hier ist ein Beispiel: https://blockchain.info/tx/683f45578328242a06bc5c54acbcbe6e70a5435b4561fc8b0570a59ab09f8bfa?show_adv=true
Sehen Sie sich das erste Eingabeskript in Raw an:
4d49003046022100847361c694421bf63ea1b51d8e2189805b161ab3d4cb96ab745a20468dd6c2ea0221009160897652bedfd7c837855d793c32509063338ac7524b8f09abfed761cf16fc014d410004c8dde23708932059bf4491c96794c5412b1182d62d2741e0986cb87276d3053f0b7326155114ad67c04adc60b5a47718fa8744ecb86a001f99da8761113edb24
Betrachten Sie das erste Byte: 4d
(OP_PUSHDATA2). Dies bedeutet, dass die nächsten 2 Bytes die Länge der Daten enthalten, die auf den Stapel geschoben werden. Diese Länge = 0x49
. Eine typische Transaktion verwendet jedoch nicht den Befehl OP_PUSHDATA2. Wenn die Transaktion von bitcoin-qt erstellt wurde, beginnt sie direkt mit der Länge der Daten:
[4d]49[00]3046....
Ich nehme unnötige Bytes in Klammern.
Jemand hat also 2 Bytes zum Signaturskript hinzugefügt, aber die Signatur nicht gebrochen und die ID der Transaktion geändert. Original tx wurde von blockchain.info gelöscht. Der nächste Link funktioniert nicht mehr: https://blockchain.info/tx/ef74c1cbf0003fc4e96a87a59838f7dd3da488d9d83fec3f270b0d3d7c2bc309?show_adv=true
Weitere Informationen zu Skripten finden Sie im Wiki: https://en.bitcoin.it/wiki/Script
Die Blockchain kann keine formbaren Transaktionen enthalten. Die formbaren Transaktionen finden statt, bevor die Transaktion in einen Block in der Blockchain eingebettet wird.
Im Wesentlichen ist die Transaktions-ID ein Hash von allem über die Transaktion, einschließlich der Signatur. Die Signatur signiert alles außer dem Signaturteil (sie kann ihre eigenen Daten nicht signieren). So können zwei Transaktionsdatensätze dieselben Eingaben und Ausgaben haben, mit (effektiv) derselben Signatur, aber einer unterschiedlichen Transaktions-ID. Es ist diese doppelte Transaktions-ID für dieselbe Transaktion, die einige Bitcoin-Clients verwirren kann.
Nachdem eine Transaktion in einen Block aufgenommen wurde, spielt die Formbarkeit keine Rolle mehr. Wenn Bitcoin-Clients versuchen, mit Transaktionen zu arbeiten, bevor sie ordnungsgemäß bestätigt wurden (indem sie mehrmals in einen Block aufgenommen wurden), können Probleme auftreten.
Dmitri Grigorjew