¿Cómo averiguar los requisitos para gastar un script de salida?

¿Cómo averiguas los requisitos para gastar un script de salida?

¿Decodificas el hash?

La pregunta no es muy precisa, tal vez alguna información de fondo aquí: bitcoin.stackexchange.com/questions/69062/… , y seguro en el libro de Andreas „Mastering Bitcoin“.

Respuestas (1)

Supongo que estás hablando de direcciones P2SH aquí, ya que esa es realmente la única vez que importa.

Para las direcciones P2SH estándar, no puede encontrar los requisitos de gasto con solo mirar la dirección. Veamos 3DzSVk4veMCkNbNT9CdETeE26uWxmNbBnD de un bloque reciente como ejemplo.

El script de salida de esta dirección es a91486ed17bfa7bd80cf87cf7e80abd9289079b78c5b87. Esto solo equivale a HASH160 PUSHDATA(20)[86ed17bfa7bd80cf87cf7e80abd9289079b78c5b] EQUAL. Esto significa que para gastar el tx, debe proporcionar alguna entrada, que una vez que se ejecuta a través de HASH160 es igual a 86ed17bfa7bd80cf87cf7e80abd9289079b78c5b.

Este es el formato general para cualquier script de salida P2SH. Para saber realmente qué tipo de secuencia de comandos es, necesita la secuencia de comandos de canje, que se puede encontrar en su billetera. Si la dirección no es la suya, el script de canje se revela cuando se gasta por primera vez una salida a esa dirección.

Mirando este tx para la dirección anterior, podemos encontrar el script redimido como 5221038934160de8ad1dd529329f5bf51e3086cc0f6d19e10fb4120385f23d871c0c1d21021659435e23e3891d39ec2b0266b3c14a68cb4e45adb8543f31508310c98722d952ae(el empuje final en el script para la entrada).

Ejecutar el script de redención anterior a través del decodescriptcomando nos da:

2 038934160de8ad1dd529329f5bf51e3086cc0f6d19e10fb4120385f23d871c0c1d 021659435e23e3891d39ec2b0266b3c14a68cb4e45adb8543f31508310c98722d9 2 OP_CHECKMULTISIG

Esto identifica el script como 2of2 multisig.

Esto podría haber sido muy fácilmente cualquier otra forma de secuencia de comandos, como 2of3 multisig, o no multisig en absoluto. Incluso podría ser una dirección segwit envuelta en una dirección p2sh. Sin embargo, con solo mirar la dirección, no puede determinar el tipo de script. Debe tener el script de redención para determinar los requisitos de gasto.