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 tx
Struktur meines Beispiel-Pcaps sieht beispielsweise so aus:
410498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750ac
und kein op_code ist mit Wert vorhanden 0x41
.
kann jemand diese Angelegenheit erklären?
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 decodescript
Methode, 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).
pebwindkraft