Wie bekomme ich eine Adresse aus zwei öffentlichen Schlüsseln?

Beim Analysieren eines Eingabeskripts einer Transaktion bin ich auf zwei öffentliche Schlüssel im Skript gestoßen. Jeder öffentliche Schlüssel ist 33 Byte lang.

Ich weiß, wie man eine einzelne 33 Byte lange öffentliche Adresse in eine Adresse umwandelt.

Was ist der Mechanismus, um eine Adresse von zwei oder mehr öffentlichen Schlüsseln zu erhalten?

Hinweis Ich interessiere mich nicht für die Bitcoin-Technik über den Befehl createmultisig.

Sehen Sie sich diese Antwort an, die beschreibt, wie Sie ein Multisig-Skript mit mehreren Adressen erstellen und dieses Skript dann in einen Einlösungsskript-Hash umwandeln, der weiter in eine P2SH-Adresse umgewandelt wird: bitcoin.stackexchange.com/a/26878/21052

Antworten (1)

Ich beantworte meine Frage zum Wohle künftiger Generationen von Lesern.

Wenn Sie nur einen 33 Byte langen öffentlichen Schlüssel haben, erhalten Sie eine Adresse, indem Sie eine Standardtechnik anwenden, die aus 5-7 Schritten besteht, je nachdem, wie Sie die Technik sehen.

Wenn Sie mehr als einen 33 Byte langen öffentlichen Schlüssel haben, müssen Sie ein sogenanntes Redemption-Skript oder im Bitcoin-Jargon Redewendungsskript erstellen. Nachdem Sie das Einlösungsskript erstellt haben, wenden Sie die Standardtechnik auf das gesamte Einlösungsskript an.

Technisch gesehen ist ein Redemption-Skript ein Byte-Array. Angenommen, Sie haben zwei öffentliche Schlüssel. Konzeptionell sollte Ihr Byte-Array so aussehen:

[OP_1][length of public key 1][public key 1][length of public key 2][public key 2][OP_2][OP_CHECKMULTISIG]

In meiner Frage sagte ich, dass ich das Eingabeskript einer Transaktion geparst habe. Daher musste ich das Array nicht konstruieren. Das Redemption-Script-Array war bereits im Eingabeskript enthalten. Ich habe einen „Fehler“ beim Extrahieren der öffentlichen Schlüssel aus dem Einlösungsskript gemacht, weil ich dachte, ich sollte nur die öffentlichen Schlüssel massieren. Ich hätte alle Bytes des Redemption-Script-Arrays nehmen sollen.