wie erzeugen Teil von scriptSig bei Bitcoin-Transaktionen

Ich habe viele Links zu Bitcoin-Trxs und zum Generieren von ScriptSig studiert. Schließlich konnte ich nicht verstehen, wie man diesen Teil macht.

Zum Beispiel lese ich diese Links:

Was ist die Beziehung zwischen scriptSig und scriptPubKey?

https://bitcoin.org/en/developer-guide#transactions

Wie erstellen Sie einen Skriptsig für einen neuen Roh-TX?

Wie löse ich einen Basis-Tx ein?

Wie erstelle ich den <sig> <PubK>-Teil in "scriptSig"?

http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html

https://en.bitcoin.it/wiki/Protocol_documentation#tx

https://en.bitcoin.it/wiki/Transaktion

Ich habe festgestellt, dass ich etwas unterschreiben muss, aber was ist das für ein Ding?

genau und Schritt für Schritt Was soll ich zusammenstellen und dann unterschreiben?

besonders wenn ich mehr als 1 Eingabe hatte, wie mache ich Sigscript?

Ich habe eine Bibliothek, die die Zeichenoperation für mich durchführt. Ich weiß jedoch nicht, welche Struktur ich für die zu signierende Nachricht verwenden muss, insbesondere wenn mehrere Ausgaben vorhanden sind.

Antworten (1)

Die zu signierenden Daten werden Hash Preimage genannt . Dann signieren Sie das doppelte SHA256 des Hash-Preimage, das 256 Bit lang ist. Vor dem Hashing müssen die Daten wie in dieser Antwort gezeigt gebildet werden . Wenn Sie eine SegWit-Transaktion signieren, ändert sich der Inhalt des Preimage, wie in BIP 143 definiert .

Dann können Sie die Formeln hier verwenden , Gl. 2:

(x1, y1) = k × G(x, y) mod p
r = x1 mod n

kist eine Zufallszahl, Gist der Generator, pist die Primzahl Modulo usw.

Dann,

s = (k^-1 (h(m) + d * r)) mod n

dder private Schlüssel ist, h(m)ist das doppelte SHA256-Ergebnis. Jetzt können Sie mit r, sdie DER-codierte Signatur erstellen.

Ich habe das gelesen , aber diese Lösung war nur für eine Transaktion mit einer Ausgabe. wenn meine ausgänge jetzt 2 oder 3 werden wie muss scriptsig machen?
Hier ist ein Beispiel mit mehreren Ausgaben. Hier ist die Spezifikation für Ausgänge in BIP143 , scrollen Sie nach unten zu hashOutputs.
Ich habe diesen Link gelesen , aber es wird überhaupt nicht erklärt, wie der Skriptsignaturabschnitt erstellt wurde !!
Nachdem Sie die Daten in den Beispielen gebildet haben, verdoppeln Sie sie und verwenden die obigen Gleichungen. Wollen Sie lernen, wie man das mit libsecp256k1 macht?
NEIN. Ich habe eine Bibliothek, die die Zeichenoperation für mich durchführt. Ich möchte nur genau wissen, welche Teile der Transaktion ich zusammenstellen muss, und welche Reihenfolge sollte ich verwenden, bevor ich eine Operation mit mehr als einer Eingabe und einer Ausgabe unterschreibe?