Fehlender öffentlicher Schlüssel in der Transaktionseingabe

Ich bin dabei, scriptSigs von Transaktionseingaben zu verstehen, und bin auf einige Transaktionen mit Eingaben gestoßen, denen anscheinend ein öffentlicher Schlüssel fehlt.

Dies erwarte ich als scriptSig. Eine Signatur und ein öffentlicher Schlüssel.

ScriptSig: PUSHDATA(71)[3044022017e2af6e1308d431365deeb5739d41a909cf0d61a9c0e48f3ae5b0bd6544bfc5022066e73dd26d71d824552b034b322603cce8b936912b99f4f3df512e502bd7c11e01] 
PUSHDATA(33)[03d7b3bc2d0b4b72a845c469c9fee3c8cf475a2f237e379d7f75a4f463f7bd6ebd]

https://blockchain.info/tx/10857ad56f1695559562af8076aea4ccba625ba79a82f75e5658c0c2fa4336c0

Ich bin jedoch auch auf diese Art von scriptSigs gestoßen. Es scheint keinen öffentlichen Schlüssel zu geben. Was genau passiert hier?

ScriptSig: PUSHDATA(71)[304402204e45e16932b8af514961a1d3a1a25fdf3f4f7732e9d624c6c61548ab5fb8cd410220181522ec8eca07de4860a4acdd12909d831cc56cbbac4622082221a8768d1d0901]

https://blockchain.info/tx/f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16

Antworten (1)

Diese Eingabe gibt eine Pay-to-Pubkey-Ausgabe aus. Die Ausgabe, von der es ausgegeben wird, enthält den öffentlichen Schlüssel, also ist es nicht in der Eingabe.

Gibt es eine Möglichkeit, den öffentlichen Schlüssel oder die zugehörige Adresse ausschließlich aus einer solchen Eingabe zu erhalten, ohne auf die übereinstimmende Ausgabe zurückzublicken? Ich frage, weil dies die Leistung einer Blockchain-weiten Analyse, die ich versuche, erheblich steigern würde.
Nein. Sie müssen sich die Ausgabe ansehen, die es ausgibt. Sie sollten sowieso für alle Transaktionen dasselbe tun.
Irgendwelche Vorschläge, wie ich schnell die übereinstimmende Ausgabe einer Eingabe abfragen kann, um die Adresse und den Wert zu erhalten? Beim Durchlaufen der gesamten Blockchain ist es sicherlich nicht machbar, eine Liste aller bisher nicht ausgegebenen Ausgaben im Gedächtnis zu behalten.
Erstellen Sie eine Datenbank, die regelmäßig auf die Festplatte geleert wird und in der alle nicht ausgegebenen Ausgaben gespeichert werden. Diese Datenbank hätte den gesamten UTXO-Satz; Sie fügen einfach Dinge hinzu und entfernen sie, wenn neue Ausgaben gemacht und ausgegeben werden. BITcoin Core tut dies, und tatsächlich kann es das Ganze tatsächlich im Speicher speichern, es benötigt dazu nur 6-7 GB Speicher. Andernfalls machen Sie es einfach zu einer Datenbank, die regelmäßig auf die Festplatte geleert wird.