Ist es möglich, den öffentlichen Schlüssel aus einer Transaktionseingabe zu erhalten, bei der es sich um eine „Pay-to-Public-Key“-Ausgabe handelt?

Ich möchte den öffentlichen Schlüssel aus der Transaktionseingabe berechnen können. Die Eingabe stammt von einer 'Pay-to-Public-Key'-Ausgabe.
Kann der öffentliche Schlüssel der Eingabe nur aus der Signatur und der Transaktion generiert werden, in der sich die Eingabe befindet?

Antworten (2)

Ich kann Ihre Frage nicht verstehen, aber ich werde versuchen, die Dinge für Sie zu klären.

Eine Pay-to-Pub-Key-Transaktion ist eine Art von Transaktion, die im Wesentlichen von einem Miner generiert wird, um die Belohnung (jetzt 25 BT) nach erfolgreicher Erstellung eines Blocks an seine eigene Adresse zurückzusenden. Diese Transaktion wird Coinbase-Transaktion genannt und ist die erste lokalisierte Transaktion des Blocks, der von ihm geschürft werden soll.

Die Struktur des Skripts, das diese Art von Transaktion erfüllt, ist:

• Locking Script oder scriptPubKey (das sich in der Ausgabe einer Transaktion befindet)

< Public Key of Miner> OP_CHECKSIG

• Entsperrungsskript oder scriptSig (das sich in der Eingabe einer Transaktion befindet)

<Signature from Private Key of Miner> 

• Validierungsskript

<Signature from Private Key of Miner> < Public Key of Miner> OP_CHECKSIG

Damit der Bergmann den Wert von 25BT einlöst:

Seine Signatur, die sich im Locking-Skript befindet, muss von seinem privaten Schlüssel erstellt werden. Um diese Bedingung zu prüfen, wird sein öffentlicher Schlüssel verwendet, der diesem privaten Schlüssel entspricht.

Dadurch kann der öffentliche Schlüssel keine Signatur erstellen. Eine Signatur wird durch den privaten Schlüssel und eine Nachricht (oder Transaktion) erstellt, die mit diesem privaten Schlüssel signiert werden soll. Den öffentlichen Schlüssel können Sie nicht aus der Eingabe berechnen, da der öffentliche Schlüssel in der Ausgabe oder besser im Locking Script steht.

Bei der Ausgabe einer Pay-to-Pubkey-Transaktion wird nur die Signatur in die scriptSig eingefügt. Die Signatur kann zur Wiederherstellung des öffentlichen Schlüssels verwendet werden, aber Sie können die genaue Darstellung des öffentlichen Schlüssels, die in den scriptPubKey eingefügt wurde, nicht eindeutig identifizieren. Sie können es mit der Methode zur Wiederherstellung öffentlicher Schlüssel mathematisch auf 4 Möglichkeiten eingrenzen, aber um die genaue Darstellung zu erhalten, die verwendet wurde, müssen Sie die vorherige Ausgabe nachschlagen.

Weitere Informationen zur Wiederherstellung öffentlicher Schlüssel finden Sie unter https://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-signature-work

Kurz gesagt, Sie können die X-Koordinate des öffentlichen ECC-Schlüssels bestimmen, und dann kann die Y-Koordinate einer von zwei Werten sein. Und für jeden dieser beiden Punkte ((X, Y) & (X, -Y)) gibt es zwei Darstellungen, komprimierte und dekomprimierte Form.