Tipos de ScriptPubKey que pueden contener direcciones

Estoy tratando de obtener las direcciones de los ScriptPubKeys en cada transacción (cuando sea posible). Hasta ahora, conozco dos patrones de ScriptPubKeydónde se puede encontrar una dirección:

1. Pago a Pubkey

04e70a02f5af48a1989bf630d92523c9d14c45c75f7d1b998e962bff6ff9995fc5bdb44f1793b37495d80324acba7c8f537caaf8432b8d47987313060cc82d8a93 OP_CHECKSIG

En este script de bloqueo, el código anterior OP_CHECKSIGes una clave pública, por lo que se puede convertir en una dirección.

2. Hash de pago a clave pública

OP_DUP OP_HASH160 3d37cde30fdfcf29b2996a7ceefd220ba32c9f4b OP_EQUALVERIFY OP_CHECKSIG

En este, el código después OP_HASH160(y antes del siguiente OPcódigo) es el hash160 de una clave pública, por lo que también se puede convertir en una dirección.

Pregunta:

¿Existen otros patrones de ScriptPubKeydónde se pueden encontrar las direcciones?

O, en otras palabras, ¿podré capturar todas las direcciones trabajando en todos los códigos que no son de operación antes OP_CHECKSIG y en todos los códigos que no son de operación después OP_HASH160 ?

Respuestas (2)

Técnicamente, pay-to-pubkeyno tiene un tipo de dirección. Puede derivar una dirección como si fuera un pay-to-pubkeyhashscriptPubKey, pero hay una sutil diferencia.

El otro tipo que está olvidando es un pay-to-scripthashtipo. es del formato

OP_HASH160 <Hash160(redeemScript)> OP_EQUAL

Luego, obtiene una dirección p2sh anteponiendo el byte de la versión y agregando la suma de verificación a<Hash160(redeemScript)>

OP_1 [clave pública] OP_1 OP_CHECKMULTISIG