128 / 691OP

Opcode de Bitcoin Script

Un opcode es una instrucción de Bitcoin Script. Al verificar un gasto manipula la pila o comprueba una condición; su significado también depende de la versión del script.

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.

DOC · 001Bitcoin Core v29.0 — Script interpreterDocumentaciónDOC · 002Bitcoin Core v29.0 — Opcode definitionsDocumentaciónDOC · 003BIP 342 — Validation of Taproot ScriptsEspecificaciónDOC · 004Bitcoin Developer Guide — TransactionsDocumentaciónDOC · 005Bitcoin Core v29.0 — Standard script flagsDocumentaciónDOC · 006Bitcoin Core — Segregated Witness benefitsDocumentación
Fuentes primero · No es asesoramiento financiero