Извлечь выходной адрес из необработанного скрипта в протоколе биткойн

Я работаю над протоколом биткойнов, и именно я хочу извлечь необработанный скрипт из выходного скрипта, чтобы получить адрес из текстовых сообщений.

для обычных сценариев, таких как сценарии, начинающиеся с 0x76 (означает OP_DUP), мы можем получить доступ к адресу, выполнив следующие действия:

  1. добавить нули в начало необработанного скрипта.
  2. хеш с sha256.
  3. снова хэшировал с помощью sha256.
  4. возьмите первые 4 байта этого результата и вставьте их в конец необработанного скрипта с ведущими нулями
  5. затем кодировать с помощью base58.
  6. в конце добавьте «1» к началу последнего вывода, чтобы получить выходной адрес.

эти шаги подходят для обычных скриптов, но для таких скриптов

410498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750ac

что означает:

PUSH(0x41) 0498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750 ac

это не сработало, и сгенерированный вывод недействителен.

Вам нужно сначала hash160 pubkey
Чтобы прояснить ответ Питера, blockchain.info и другие исследователи обычно преобразовывают его в адрес p2pkh. Сам этот скрипт не будет выдавать адрес

Ответы (1)

Это не сработает, потому что для этого скрипта нет адреса .

Адреса — это шаблоны для создания выходных данных. Как правило, вы не должны идти другим путем, так как адреса могут быть неверно истолкованы как место для отправки монет, а получатель не спросит об этом и не узнает об этом.

Кроме того, существует всего несколько распространенных типов сценариев (P2PKH, P2SH, P2WPKH, P2WSH), которые имеют связанные адреса. Другие, как ваш пример, нет.

Вы говорите, что для этого скрипта нет адреса, но почему, когда я использую этот сайт для выполнения вышеуказанного скрипта: chainquery.com/bitcoin-api/decodescript , создается этот действительный адрес: 1MeeajrKNiF8WtD24S4DmVwEPQYJxeh7Ef
Это обычная практика, но неправильная. Сценарий представляет собой сценарий с оплатой по публичному ключу (P2PK). Сайт показывает адрес, соответствующий скрипту pay-to-pubkey-hash (P2PKH) для того же ключа. Вы никогда не должны этого делать; получатель может не ожидать оплаты ничем, кроме скрипта P2PK.