Skip to main content

Tapscript | Bitcoin Glossary | Mapping Bitcoin

Tapscript

Protocolo

Also known as: BIP342

Scripting BIP342 para la ruta de script de Taproot. Introduce OP_CHECKSIGADD y opcodes OP_SUCCESS que permiten futuras actualizaciones del protocolo.

Descripción General

Tapscript (BIP342) define las reglas de scripting utilizadas dentro de los gastos por ruta de script de Taproot. Si bien se basa en la base del Script de Bitcoin, Tapscript introduce modificaciones importantes que mejoran la flexibilidad, eficiencia y capacidad de actualización futura. Se aplica exclusivamente a los scripts ejecutados a través de la ruta de script de una salida P2TR.

Cambios Clave Respecto al Script Heredado

Tapscript realiza varias modificaciones notables al sistema de scripting:

  • Validación de firma basada en Schnorr: Reemplaza la semántica de OP_CHECKSIG y OP_CHECKMULTISIG con equivalentes basados en Schnorr. El nuevo opcode OP_CHECKSIGADD reemplaza OP_CHECKMULTISIG con un diseño más eficiente y verificable en lote.
  • Tamaño de firma: Todas las firmas Schnorr en Tapscript tienen exactamente 64 bytes (o 65 con un indicador sighash), simplificando la estimación de tarifas.
  • Opcodes OP_SUCCESSx: Los opcodes anteriormente indefinidos se designan como OP_SUCCESS, haciendo que cualquier script que los contenga tenga éxito automáticamente. Esto proporciona un mecanismo limpio para que futuras actualizaciones de bifurcación suave asignen nueva funcionalidad a estos opcodes.
  • Opcodes eliminados: OP_CHECKMULTISIG y OP_CHECKMULTISIGVERIFY están deshabilitados en Tapscript en favor de OP_CHECKSIGADD.

Ejecución por Ruta de Script

Salida Taproot
      |
  Gasto por ruta de script:
      |
  ┌───────────────────────────┐
  │ 1. Revelar el script      │
  │ 2. Proporcionar prueba    │
  │    de Merkle              │
  │ 3. Ejecutar Tapscript     │
  │ 4. Validar contra reglas  │
  └───────────────────────────┘

Cuando se usa un gasto por ruta de script, el gastador revela la hoja de script específica y proporciona una prueba de Merkle que muestra que es parte del árbol de script comprometido. El script se ejecuta luego bajo las reglas de Tapscript en lugar de las reglas del Script de Bitcoin heredado.

Capacidad de Actualización Futura

Una de las características de diseño más importantes de Tapscript es el mecanismo OP_SUCCESS. Debido a que cualquier script que contenga un opcode OP_SUCCESS tiene éxito incondicionalmente, una futura bifurcación suave puede redefinir estos opcodes para agregar nuevas condiciones. Esto proporciona una ruta de actualización mucho más limpia que el mecanismo de extensión OP_NOP heredado, que solo podía agregar nuevas restricciones.

Conceptos Erróneos Comunes

Tapscript no es un lenguaje de scripting completamente nuevo — es una versión modificada del Script de Bitcoin con cambios de reglas específicos para el contexto de Taproot. La mayoría de los opcodes existentes se comportan de manera idéntica en ambos sistemas.