Estoy tratando de entender cómo funciona un script, pero tengo problemas para leer un script (la salida de un Tx... y la entrada de un segundo Tx) y averiguar cómo la computadora (bitcoin-qt) sabe qué entrada en el script es datos y cuál es un comando.
Por favor, corrija mi suposición:
El script se lee de izquierda a derecha y es la concatenación de la salida de una Transacción anterior a la entrada de una Transacción consumidora.
Una salida de secuencia de comandos solo puede tener una secuencia de comandos de transacción correspondiente que la consuma.
Hay varios comandos de script y varios están deshabilitados en la versión actual del cliente
El script no puede depender de información externa (ticker bursátil), pero puede confiar en un Oracle para estas dependencias.
Los comandos de script que son "comandos" requieren que ciertos datos estén en la pila para funcionar correctamente
Hay "scripts estándar" (pero no tengo claro si esto significa que los scripts no estándar nunca se incorporarán a un bloque)
Si la evaluación concatenada de una salida de Tx anterior y una entrada de Tx posterior se evalúa como verdadera, entonces la transacción es válida.
Pregunta
El script se lee de izquierda a derecha y es la concatenación de la salida de una Transacción anterior a la entrada de una Transacción consumidora.
Básicamente, aunque los scripts en realidad no están concatenados. Se ejecuta scriptSig y luego se ejecuta scriptPubKey en la pila resultante. Esta distinción es ocasionalmente importante.
Una salida de secuencia de comandos solo puede tener una secuencia de comandos de transacción correspondiente que la consuma.
Hay muchos posibles scriptSigs que podrían "resolver" cualquier scriptPubKey, pero cada salida solo se puede gastar una vez en una cadena de bloques válida.
pero no tengo claro si esto significa que es posible que los scripts no estándar nunca se incorporen a un bloque
Pueden entrar en bloques, aunque los mineros que usan el cliente estándar nunca los agregarán a sus bloques.
¿Cómo sabe el cuarto procesador la diferencia entre los datos en la pila y los comandos en la pila?
Los datos van precedidos por los bytes del 1 al 78, las operaciones pushdata.
pieter wuille