In einer Transaktion Tx
muss der Hash-Zeiger der früheren Transaktion (z. B. TxE
), der als Eingabe für dient Tx
, vom Absender S
von signiert werden Tx
. Dies soll zeigen, dass S
der Empfänger von war TxE
. Es bleibt zu zeigen, dass S
dies mit der Ausgabe von übereinstimmt Tx
. In welcher Phase S
signiert die Ausgabe von Tx
? Ich nehme an, er tut es. Was würde andernfalls einen Angreifer daran hindern, Tx
unmittelbar nach S
der Übertragung darauf zuzugreifen und die Ausgabe vor der erneuten Übertragung zu ändern (so dass er der Empfänger ist)?
Mit anderen Worten: Die scriptSig beweist, dass der Sender die Eingabe von Tx besitzt. Was beweist, dass der Absender die Ausgabe des Tx genehmigt?
rgds
PS: Die Transaktion, die ich in Betracht ziehe, ist:
Die Signatur signiert auch das Pubkey-Skript und den Betrag (die zusammen das darstellen würden, was Sie als "Ausgabe von Tx
" bezeichnen).
Zitieren des Transaktionsabschnitts des Entwicklerhandbuchs :
Bobs secp256k1-Signatur beweist nicht nur, dass Bob seinen privaten Schlüssel kontrolliert; Es macht auch die Nicht-Signaturskript-Teile seiner Transaktion manipulationssicher, sodass Bob sie sicher über das Peer-to-Peer-Netzwerk übertragen kann.
Bildquelle: Entwicklerhandbuch: Transaktionen
Wie in der obigen Abbildung dargestellt, umfassen die Daten, die Bob signiert, die txid und den Ausgabeindex der vorherigen Transaktion, das Pubkey-Skript der vorherigen Ausgabe, das von Bob erstellte Pubkey-Skript, mit dem der nächste Empfänger die Ausgabe dieser Transaktion ausgeben kann, und die Menge an Satoshis für an den nächsten Empfänger ausgeben. Im Wesentlichen wird die gesamte Transaktion signiert, mit Ausnahme von Signaturskripten, die die vollständigen öffentlichen Schlüssel und secp256k1-Signaturen enthalten.
Jimmy Lied
Hartmut
Hartmut
Pieter Wuille
Pieter Wuille
Hartmut
Pieter Wuille
phinz