Extraiga la dirección de salida del script sin formato en el protocolo bitcoin

Estoy trabajando en el protocolo bitcoin y exactamente quiero extraer el script sin procesar del script de salida para obtener la dirección de los mensajes tx.

para scripts comunes, como los scripts que comienzan con 0x76 (significa OP_DUP), podemos acceder a la dirección con estos pasos:

  1. agregue ceros al inicio del script sin procesar.
  2. hash con sha256.
  3. hash con sha256 de nuevo.
  4. tome los primeros 4 bytes de este resultado y péguelos al final del script sin procesar con ceros a la izquierda
  5. luego codifique con base58.
  6. al final, agregue "1" al inicio de la última salida para obtener la dirección de salida.

estos pasos son adecuados para scripts comunes, pero para scripts como este

410498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750ac

que es significa:

PUSH(0x41) 0498361908359fec5adaa624428484e7d117f36f811c7c471f4f1c7dd8184c20b32f0e2590c8d70906ebd585da2ae14ea942e4088891139379b434a26173754750 ac

no funcionó y la salida generada no es válida.

Necesitas hash160 la clave pública primero
Para aclarar la respuesta de Pieter, blockchain.info y otros exploradores generalmente lo convertirán en una dirección p2pkh. Este script en sí mismo no producirá una dirección.

Respuestas (1)

No funcionará, porque no hay dirección para ese script.

Las direcciones son plantillas para construir salidas a partir de ellas. En general, no debe ir hacia el otro lado, ya que las direcciones pueden malinterpretarse como un lugar para enviar monedas, sin que el receptor lo solicite o lo sepa.

Además, solo hay unos pocos tipos de secuencias de comandos comunes (P2PKH, P2SH, P2WPKH, P2WSH) que tienen direcciones asociadas. Otros, como tu ejemplo, no.

Usted dice que no hay una dirección para este script, pero ¿por qué cuando uso este sitio para ejecutar el script anterior: chainquery.com/bitcoin-api/decodescript se produce esta dirección válida: 1MeeajrKNiF8WtD24S4DmVwEPQYJxeh7Ef?
Esa es una práctica común, pero incorrecta. El script es un script pay-to-pubkey (P2PK). El sitio muestra la dirección correspondiente al script pay-to-pubkey-hash (P2PKH) para la misma clave. Nunca debes hacer esto; el destinatario no puede esperar el pago de nada más que el script P2PK.