Unbekanntes Ausgabeskript in einer Beispiel-Bitcoin-PCAP-Datei

Ich beginne mit der Arbeit am Bitcoin-Protokoll, um Ausgabeadressen aus Skripten in TX-Strukturen zu extrahieren. Jetzt kann in einige gültige Bitcoin-Adressen erzeugen, aber einige Skripte sind in op_code-Listen, die im Bitcoin-Wiki (Skript) eingeführt wurden, nicht vertraut.

Der Hex-Stream-Wert des Ausgabeskripts in der ersten txStruktur meines Beispiel-Pcaps sieht beispielsweise so aus:

410498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750ac

und kein op_code ist mit Wert vorhanden 0x41.

kann jemand diese Angelegenheit erklären?

Neben Rhagavs Antwort finden Sie hier eine Beschreibung der Opcodes: en.bitcoin.it/wiki/Script

Antworten (1)

0x01 bis 0x4b sind die "Push"-Opcodes. Das heißt, egal welchen Opcode Sie verwenden, es werden viele Bytes auf den Stack geschoben. Dies macht Ihr Skript:

PUSH(0x41) 0498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750 ac

0x41 ist 65 in Dezimalzahl, was der Länge eines unkomprimierten öffentlichen Schlüssels entspricht. Das letzte Byte, 0xAC, ist das OP_CHECKSIG

Kurz gesagt, dies ist ein Pay-to-Pubkey (p2pk)-Skript, das in den frühen Tagen von Bitcoin üblich war. Tatsächlich führt es zu 1MeeajrKNiF8WtD24S4DmVwEPQYJxeh7Ef , das die Coinbase Bitcoin aus Block 93641 enthält

Bitcoin hat auch eine decodescriptMethode, die Sie über den RPC oder bitcoin-cli verwenden können, um diese Skripte in Opcodes und die Adressen zu dekodieren (falls eine Adresse für dieses Skript existiert).

Danke schön. Genau möchte ich das Rohskript extrahieren, um die Ausgabeadresse zu erhalten. aber mit diesem Skript ist die generierte Adresse nicht wahr. Meine neue Frage, die sich auf diese Frage bezieht, ist hier: bitcoin.stackexchange.com/questions/74501/…