Я начинаю работать над биткойн-протоколом для извлечения выходных адресов из скриптов в структурах tx. Теперь он может создать некоторый действительный биткойн-адрес, но некоторые скрипты не знакомы в списках op_code, представленных в биткойн-вики (скрипт).
например, шестнадцатеричное значение выходного скрипта в первой tx
структуре моего образца pcap выглядит так:
410498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750ac
и нет op_code со 0x41
значением.
кто-нибудь может объяснить это дело?
От 0x01 до 0x4b — коды операций «push». То есть, какой бы код операции вы ни использовали, столько байтов помещается в стек. Это делает ваш скрипт:
PUSH(0x41) 0498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750 ac
0x41 — это 65 в десятичном виде, что соответствует длине несжатого открытого ключа. Последний байт, 0xAC, это OP_CHECKSIG.
Короче говоря, это сценарий Pay-to-pubkey (p2pk), который был распространен на заре существования Биткойна. Действительно, это приводит к 1MeeajrKNiF8WtD24S4DmVwEPQYJxeh7Ef , содержащему монетную базу Биткойн из блока 93641.
Биткойн также имеет decodescript
метод, который вы можете использовать через RPC или bitcoin-cli для декодирования этих скриптов в коды операций и адреса (если для этого скрипта существует адрес)
пебвиндкрафт