Definición
Bitcoin Script es un lenguaje de programación basado en pila, Turing-incompleto, que define las condiciones bajo las cuales se pueden gastar las transacciones de Bitcoin . Es un sistema de scripting sencillo pero potente, integrado en cada salida (script de bloqueo o scriptPubKey) y entrada (script de desbloqueo o scriptSig) de cada transacción de Bitcoin, lo que permite programar las condiciones de gasto sin exponer la red Bitcoin a los riesgos de una plataforma de contratos inteligentes Turing-completa. Bitcoin Script permite carteras multifirma , transacciones con bloqueo temporal, contratos con bloqueo hash, canales de pago e intercambios atómicos, todo ello sin necesidad de una cadena de bloques de propósito general.
Origen e Historia
| Fecha | Eventos |
| 2008 | Satoshi Nakamoto diseña Bitcoin Script como parte del diseño del libro blanco de Bitcoin |
| 2009 | Script de Bitcoin implementado en el bloque génesis de Bitcoin; Pago a clave pública (P2PK) es el primer tipo de script |
| 2012 | BIP 16: Se introduce Pay-to-Script-Hash (P2SH), que permite scripts de canje complejos |
| 2015 | Se agregó CHECKLOCKTIMEVERIFY (CLTV) que permite bloqueos de tiempo absolutos en las transacciones |
| 2016 | Se agregó CHECKSEQUENCEVERIFY (CSV) que habilita bloqueos de tiempo relativos para canales de pago |
| 2017 | SegWit presenta Pay-to-Witness-Public-Key-Hash (P2WPKH) y P2WSH |
| 2021 | La actualización de Taproot (BIP 340/341/342) introduce firmas Schnorr y MAST a través de Tapscript |
| 2023 | Los ordinales de Bitcoin aprovechan Script para inscribir datos en datos de testigos |
| 2023 | Se intensifica el debate sobre la reactivación de BIP 347 (OP_CAT) para posibles extensiones de script |
Bitcoin Script está deliberadamente limitado, y eso es una característica, no un error. La simplicidad es seguridad. — Greg Maxwell, desarrollador de Bitcoin Core
Cómo Funciona
EJECUCIÓN DE SCRIPT DE TRANSACCIÓN DE BITCOIN ═══════════════════════════════════════════════════════ SCRIPT DE BLOQUEO (scriptPubKey) — en la salida UTXO: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG (P2PKH estándar: pago al hash de clave pública)
DESBLOQUEO DE GUIÓN (scriptSig) — proporcionado por el gastador:
EJECUCIÓN (basada en pila): La pila comienza vacía
- Empujar → Pila: [sig]
- Empujar → Pila: [sig, pubKey]
- OP_DUP: duplicado superior → Pila: [sig, pubKey, pubKey]
- OP_HASH160: hash superior → Pila: [sig, pubKey, pubKeyHash]
- Empujar → Pila: [sig, pubKey, pubKeyHash, esperado]
- OP_EQUALVERIFY: comparar → Pila: [sig, pubKey] (si es igual)
- OP_CHECKSIG: verificar firma → Pila: [TRUE]
Resultado: VERDADERO = la transacción es válida y el UTXO se ha gastado.
TIPOS DE SCRIPT: P2PK → Pago a clave pública (legado) P2PKH → Pago a hash de clave pública (más común) P2SH → Pago a hash de script (multifirma, complejo) P2WPKH → SegWit nativo (bech32) P2TR → Pago a Taproot (más eficiente/privado) ═══════════════════════════════════════════════════════
| Tipo de script | Formato de dirección | Caso de uso | Privacidad |
| P2PK | (sin dirección estándar) | Bitcoin original, Monedas Satoshi | Bajo |
| P2PKH | 1… (Base58) | Pagos estándar con firma única | Bajo |
| P2SH | 3… (Base58) | Scripts complejos y multifirma | Media |
| P2WPKH | bc1q… (bech32) | SegWit nativo, tarifas más bajas | Media |
| P2WSH | bc1q… (bech32) | Scripts nativos de SegWit | Media |
| P2TR | bc1p… (bech32m) | Raíz principal, Tapscript, Ordinales | Alto |
En términos simples
- Cerradura y llave:Cada salida de Bitcoin tiene un bloqueo (script de bloqueo): para gastarlo, debes proporcionar la clave correcta (script de desbloqueo) que satisfaga las condiciones.
- Máquina apiladora:El script se ejecuta introduciendo valores en una pila y ejecutando operaciones: es simple, predecible y deliberadamente no Turing-completo para evitar bucles infinitos.
- Ejemplo de multifirma:Un script multifirma 2 de 3 requiere 2 de 3 firmas de clave privada designadas para desbloquear fondos, que se utilizan para tesorerías de equipo y billeteras seguras.
- Privacidad de Taproot: Taproot crea firmas múltiples complejas y scripts de contratos inteligentes parecen idénticas a las simples transacciones de firma única en la cadena de bloques, lo que mejora la privacidad.
- Límites deliberadosA diferencia de Solidity de Ethereum, Bitcoin Script no puede acceder a datos externos, realizar bucles ni llamar a otros contratos, lo que lo hace predecible y seguro.
Ejemplos del mundo real
| Escenario | Tipo de script | Beneficio |
| Intercambio de billetera caliente | P2SH 2 de 3 multifirma | Requiere 2 de 3 llaves para gastar: protege contra el robo de una sola llave |
| Canal de Lightning Network | HTLC (Contrato de tiempo bloqueado con hash) | Permite pagos instantáneos de BTC fuera de la cadena |
| Intercambio atómico BTC↔LTC | HTLC en ambas cadenas | Intercambio entre cadenas sin intermediarios y sin confianza |
| Herencia bloqueada en el tiempo | VERIFICAR BLOQUEO TIEMPO VERIFICAR | Los fondos solo se pueden gastar después de una fecha específica |
| Inscripción de ordinales | Datos de testigos de P2TR | Inscripción de NFT/datos en Taproot Witness |
Ventajas
| La Ventaja | Detail |
| Seguridad | El diseño incompleto de Turing impide posibles vectores de ataque complejos en contratos inteligentes |
| Previsibilidad | Cada script se ejecuta de forma determinista con computación acotada. |
| Expresividad | Permite múltiples firmas, bloqueos de tiempo y HTLC suficientes para Lightning Network |
| Eficiencia | Los scripts son compactos, lo que minimiza los datos de transacción y las tarifas. |
| Privacidad (Taproot) | Condiciones de gasto complejas indistinguibles de los pagos simples |
Desventajas y riesgos
| Supervisión | Detail |
| Funcionalidad limitada | No se puede implementar complejo DeFi oráculos o contratos inteligentes arbitrarios |
| Complejidad del guión | Los scripts multi-firma avanzados son complejos de implementar correctamente |
| Problemas de formato heredado | Los tipos de scripts más antiguos (P2PK, P2PKH) tienen menor privacidad que las alternativas modernas |
| Códigos de operación deshabilitados | Se deshabilitaron varios códigos de operación potentes (OP_CAT, OP_CHECKSIGFROMSTACK) por seguridad |
| Riesgos de errores de script | Los errores en scripts personalizados pueden bloquear fondos de forma permanente |
Consejos de gestión de riesgos:
- Pruebe siempre las implementaciones de scripts personalizados en la red de prueba antes de en la red principal
- Utilice direcciones P2TR (Taproot) para una mejor privacidad y compatibilidad futura
- Para billeteras multi-firma, utilice implementaciones establecidas (Bitcoin Core, Sparrow Wallet) en lugar de scripts personalizados
- Almacene los scripts de canje (P2SH) de forma segura: los necesita para gastar fondos
Preguntas Frecuentes
P: ¿Por qué Bitcoin Script no es Turing-completo?
R: La completitud de Turing permite bucles infinitos, lo cual es peligroso en una cadena de bloques donde todos los nodos deben ejecutar todos los scripts. La incompletitud deliberada de Bitcoin Script garantiza que los scripts terminen de forma predecible, lo que previene ataques de denegación de servicio y posibilita la verificación formal de los scripts.
P: ¿Qué es un HTLC en Bitcoin Script?
R: Un Contrato de Tiempo Bloqueado por Hash (HTLC) es un script que permite reclamar un pago al revelar un secreto (preimagen) que se convierte en un valor predeterminado, o reembolsarlo al remitente tras un tiempo de espera. Los HTLC son el componente fundamental de la Red Lightning.
P: ¿Cómo mejora Taproot Bitcoin Script?
A: Taproot (BIP 340/341/342) introduce firmas Schnorr que permiten la agregación de claves, MAST (árboles de sintaxis abstracta merklizados) a través de Tapscript, lo que permite scripts complejos al tiempo que revela solo las ramas ejecutadas y hace que todas las salidas de Taproot se vean idénticas externamente, lo que mejora significativamente la privacidad y la eficiencia.
Consejo de UPay: Al configurar una billetera de Bitcoin, utilice direcciones Taproot (bc1p…) para obtener la mejor combinación de privacidad, eficiencia y compatibilidad futura. La mayoría de las billeteras modernas, como Sparrow y Phoenix, son compatibles con Taproot de forma nativa.
Descargo de responsabilidad: este contenido es sólo para fines educativos y no constituye asesoramiento financiero o técnico.
UPay — Haciendo de las criptomonedas una enciclopedia









