Un opcode es un byte de instrucción, no una clave privada ni una transacción independiente. Un gasto válido exige el contexto completo de script y transacción, no solo el nombre de una operación.
Script se decodifica en instrucciones y datos. OP_PUSHDATA indica insertar bytes; los bytes de los datos insertados no se reinterpretan como otros opcodes. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]
OP_DUP duplica la cima de la pila y OP_DROP la elimina. Un argumento ausente puede provocar fallo; orden y codificación de elementos forman parte de la condición. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
OP_EQUAL compara dos elementos e inserta el resultado. OP_EQUALVERIFY falla si difieren y elimina el resultado si coinciden; ninguna operación verifica por sí sola el control de una clave. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]
OP_CHECKSIG verifica una firma frente a una clave pública y un mensaje derivado de la transacción. Legacy y SegWit v0 usan ECDSA; las claves habituales de 32 bytes de Tapscript usan Schnorr. sighash también determina el alcance del compromiso. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]
OP_IF y OP_ELSE eligen una rama usando la pila. Script carece de bucles generales; las reglas de ramas no ejecutadas siguen dependiendo del opcode y la versión. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]
OP_CHECKLOCKTIMEVERIFY comprueba un bloqueo absoluto y OP_CHECKSEQUENCEVERIFY una condición relativa de la entrada correspondiente. No esperan, envían pagos ni sustituyen la condición de firma. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
Tapscript cambia las reglas de firma, añade OP_CHECKSIGADD y rechaza OP_CHECKMULTISIG al ejecutarse. Una lista sin versión no es una guía completa de validación. [BIP 342 — Validation of Taproot Scripts]
BIP 342 reserva OP_SUCCESSx para ampliaciones futuras: encontrar uno al decodificar Tapscript permite éxito según esas reglas. No significa que una operación propuesta esté activada ni imponga de forma segura la condición deseada. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core — Segregated Witness benefits]
La política de red puede negarse a retransmitir una transacción admitida por consenso en un bloque. Bitcoin Core v29.0 desaconseja OP_SUCCESSx por defecto; la política de un nodo no es una nueva regla de consenso. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core v29.0 — Standard script flags]
Al leer un script identifique versión, pila inicial, mensaje firmado y todas las rutas de fallo. Una sintaxis válida o un nombre atractivo no garantiza custodia correcta; importa el uso completo. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
Para obtener la imagen más completa, lee esta entrada junto con Bitcoin Script, CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY, Taproot.