¿Cómo crear una transacción p2sh con un scriptsig de OP_true?

¿Cómo puedo crear una transacción p2sh con un scriptsig que solo contenga OP_TRUE, eliminando la necesidad de una firma digital, que se transmitirá y extraerá?

¿También podría alguien proporcionar un ejemplo de tal transacción?

@Michael Folkson Veo que bitcoin-core-developmentusted agregó la etiqueta, pero no entiendo cómo se relaciona con la pregunta, ¿puede explicarlo?
@VojtěchStrnad: No estoy seguro, ¡fue hace un tiempo! Creo que pensé que estaba relacionado con la prueba funcional, pero lo eliminé ahora :)

Respuestas (1)

Aquí tiene un ejemplo de un gasto de transacción de una salida P2PKH y la creación de una salida P2SH con un OP_1.

Y aquí tienes la contraparte , una transacción gastando desde la primera (con un script de entrada '0151') y generando una salida P2PKH.

Creé ambos usando una biblioteca de Python de la que soy coautor. Puedes comprobarlo aquí .

Agregué nuevas transacciones que incluyen tarifas para garantizar que terminen en un bloque.
¿El script de salida que usa para financiar la transacción p2sh siempre tiene que ser OP_HAS160 (hash) OP_EQUAL?
Sí, esa es la estructura de cualquier script de salida P2SH.
¿Se podría crear una transacción como esa en la red principal?
Seguro. Sin embargo, debe tener cuidado, cualquiera podrá canjearlo.
¿La transacción con scriptsig 0151 se consideraría estándar o no estándar?
AFAIK estándar, es solo un empujón de datos.
Entonces, una vez que el script de salida que está utilizando como entrada es OP_HASH160 (hash) OP_EQUAL, ¿puede crear una transacción p2sh con scriptsig OP_TRUE que no requiere una firma digital?
Estás jugando un poco con los conceptos. Si está gastando un UTXO de tipo P2SH que encapsula el hash de un OP_True, puede crear una transacción P2SH que lo gaste simplemente presionando un 1 en la pila.
Entonces, ¿cómo puede saber si encapsula el hash de OP_TRUE y cómo se ve un hash de OP_TRUE?
has160(A) = hash_Ano importa cuántas veces lo calcules. Entonces el hash de OP_True siempre seráda1745e9b549bd0bfa1a569971c77eba30cd5a4b
Entonces, si el utxo no encapsula OP_TRUE, ¿hay algún otro código de operación o combinación de códigos de operación que pueda usarse para crear una transacción que pueda transmitirse y extraerse?
Sí, no importa la combinación op_code. Puede crear, por ejemplo, un P2SH que encapsule un OP_2 OP_EQUAL y luego canjearlo con un impulso de 2. Hay muchas combinaciones que no implican una firma.
Entonces, ¿hay algún código de operación o combinación de códigos de operación que haga que una transacción sea válida independientemente de lo que encapsule el script de salida y, de no ser así, cómo puede determinar qué encapsula el script de salida para crear un scriptsig con los códigos de operación necesarios?
Enlaces actualizados a blockstream.info ya que los enlaces anteriores del explorador de bloques se han eliminado