Entiendo que cuando estoy haciendo una transacción, estoy bloqueando esos bitcoins a quien proporcione la solución a un script que tiene el hash que publiqué.
Pero, ¿dónde se escribe el hash?
Supongo que no está en la cadena de bloques, ya que este sistema de pago se realiza para que podamos ahorrar espacio. Puedo imaginar que los nodos almacenan una base de datos de hash de scripts previamente escritos en la cadena de bloques, de modo que cuando ven un hash de script, pueden encontrar el script correcto para él. Otra opción era que el destinatario proporcionaría el script en el momento de la transacción, pero luego los otros nodos no podrían verificar el resultado final del script, porque el script no estaría en la cadena de bloques.
El guión es mantenido por el destinatario previsto; él es el responsable de conservarlo y no perderlo. Los nodos no almacenan ninguna base de datos de los scripts.
El usuario proporciona el script al gastar el p2sh como parte de los datos de scriptSig. Para conocer la especificación exacta de cómo se estructuran estos datos, consulte BIP 16 de Gavin Andresen . Esto permite que los otros nodos validen que el script se canjeó correctamente.
El propósito de p2sh no es limitar los datos en la cadena de bloques, eso sigue siendo el mismo. Es, según el BIP, "trasladar la responsabilidad de proporcionar las condiciones para canjear una transacción del remitente de los fondos al redentor".
muro