Cuando envías bitcoin a alguien, no estás moviendo monedas de un bolsillo a otro. Estás creando una serie de condiciones que el receptor tendrá que cumplir para poder gastar esos fondos. Esas condiciones las escribe un lenguaje de programación llamado Script, y está presente en cada transacción de la red desde el primer bloque.
Script no es un lenguaje de propósito general. No puede hacer bucles infinitos, no conecta con servidores externos y no guarda estado entre ejecuciones. Es deliberadamente limitado. Esa limitación es una decisión de diseño: reduce la superficie de ataque y hace que cada transacción sea predecible y verificable en microsegundos por cualquier nodo.
Cómo funciona Script: la pila
Script trabaja con una estructura de datos llamada pila (stack). Las instrucciones se ejecutan de izquierda a derecha, apilando y consumiendo valores. No hay variables con nombres, no hay funciones propias. Solo operaciones atómicas: empuja un dato, extrae un dato, compara, verifica una firma.
Cada transacción tiene dos partes que trabajan juntas:
- scriptPubKey (también llamado locking script): se escribe en el output y establece las condiciones para gastar esos fondos. Es el "candado".
- scriptSig (también llamado unlocking script): lo proporciona quien quiere gastar los fondos en el input de la siguiente transacción. Es la "llave".
El nodo que verifica la transacción concatena ambos scripts y los ejecuta. Si la pila termina con un valor verdadero, la transacción es válida. Si no, se rechaza. Sin excepciones, sin negociación.
Los tipos de Script más comunes
Aunque Script puede expresar condiciones bastante complejas, en la práctica casi todas las transacciones usan uno de cuatro formatos estándar. Los nodos solo propagan transacciones con scripts reconocidos como estándar, lo que limita los experimentos en la cadena principal.
P2PKH: el formato clásico
Pay-to-Public-Key-Hash es el formato que usó Bitcoin durante años y que aún mueve una parte significativa del volumen. El locking script exige que el receptor demuestre dos cosas: que conoce la clave pública correspondiente al hash de la dirección, y que posee la clave privada capaz de firmar esa transacción. Las direcciones P2PKH empiezan por "1".
P2SH: mover la lógica al receptor
Pay-to-Script-Hash invierte la responsabilidad. En lugar de que el emisor escriba las condiciones completas, solo incluye el hash de un script. El receptor, cuando quiere gastar los fondos, tiene que revelar el script original y satisfacerlo. Esto permite condiciones más complejas, como las firmas múltiples (multisig), sin cargar con ese peso al emisor. Las direcciones P2SH empiezan por "3".
P2WPKH y P2WSH: la versión SegWit
Con la actualización SegWit de 2017, Bitcoin separó la información de firma del cuerpo principal de la transacción. Pay-to-Witness-Public-Key-Hash y Pay-to-Witness-Script-Hash funcionan igual que sus equivalentes anteriores, pero la firma va en un campo separado llamado "testigo" (witness). Las direcciones nativas SegWit empiezan por "bc1". El resultado es un uso más eficiente del espacio en cada bloque.
P2TR: Taproot y la nueva era
Taproot, activado en noviembre de 2021, introdujo Pay-to-Taproot. Usa criptografía de firmas Schnorr y permite que una transacción con condiciones complejas (multisig, timelocks, contratos) parezca en la cadena idéntica a una transacción simple. Esto mejora la privacidad y reduce el coste de los casos de uso avanzados. Las direcciones Taproot también empiezan por "bc1p".
Opcodes: las instrucciones que ejecuta la pila
Cada operación en Script se llama opcode. Hay algo más de 100 definidos, aunque muchos están desactivados o reservados. Los más relevantes para entender el funcionamiento cotidiano son:
OP_DUP: duplica el elemento superior de la pila.OP_HASH160: aplica SHA-256 seguido de RIPEMD-160 al elemento superior.OP_EQUALVERIFY: compara los dos elementos superiores y falla si no son iguales.OP_CHECKSIG: verifica que la firma del input es válida para la clave pública y el mensaje dados.OP_CHECKMULTISIG: verifica varias firmas contra varias claves. Base del multisig.
Un script P2PKH estándar no tiene más de seis opcodes. Su simplicidad es su virtud: cualquier nodo lo verifica en tiempo constante sin importar cuántas transacciones haya en la cola del mempool.
Multisig: cuando hacen falta varias firmas
Una de las aplicaciones más prácticas de Script es el multisig, abreviatura de "múltiples firmas". Permite crear una dirección que solo puede gastarse si un número mínimo de partes distintas firman la transacción.
El formato más habitual es 2-de-3: existen 3 claves privadas y hacen falta 2 de ellas para mover los fondos. Se usa en custodias compartidas, en exchanges para proteger carteras calientes y en acuerdos entre varias partes. También es la base técnica de algunas soluciones de segunda capa como Lightning Network, donde los canales de pago se abren con transacciones multisig. Si quieres entender cómo Lightning Network escala Bitcoin, el multisig es el punto de partida.
Timelocks: fondos que no se pueden gastar antes de tiempo
Script incluye dos tipos de bloqueo temporal. OP_CHECKLOCKTIMEVERIFY (CLTV) impide que una salida se gaste hasta que la cadena alcance un bloque o una marca de tiempo determinados. OP_CHECKSEQUENCEVERIFY (CSV) bloquea los fondos durante un número de bloques relativo a cuando se creó la transacción.
Estos opcodes tienen usos concretos. Los canales de Lightning los usan para garantizar que, si una parte intenta cerrar el canal con un estado antiguo, la otra tiene tiempo de responder y reclamar los fondos. Sin timelocks, los contratos de segunda capa no serían seguros.
Por qué Script no es Turing completo, y por qué eso importa
Script no puede hacer bucles. No tiene acceso al estado de la cadena. No puede llamar a contratos externos. Estas limitaciones no son accidentes: son la razón por la que Bitcoin no sufre ciertos tipos de ataques que afectan a otras redes.
Un lenguaje Turing completo puede ejecutar cualquier programa computable, pero también puede entrar en bucles infinitos. En una red donde cada nodo verifica cada transacción, un script que no termina paralizaría la red entera. Ethereum resuelve esto con el concepto de gas: cada operación tiene un coste, y si el gas se agota, la ejecución se detiene. Bitcoin tomó otro camino: limitar el lenguaje para que el tiempo de verificación sea siempre acotado y predecible.
La consecuencia es que los contratos inteligentes complejos no viven en la capa base de Bitcoin. Viven en capas superiores o en otras redes. La capa base de Bitcoin optimiza para una cosa: transferencias de valor verificables, irreversibles y resistentes a la censura.
Riesgos y consideraciones
Entender Script ayuda a evitar errores concretos. Enviar fondos a una dirección con un script malformado puede hacerlos inaccessibles para siempre: nadie puede forzar la red a devolverte un output que no puedes desbloquear. La red no tiene administrador, no hay soporte técnico y no existe mecanismo de reversión.
Los scripts no estándar, aunque técnicamente válidos, pueden no propagarse por la red de nodos: muchos nodos los filtran antes de llegar a los mineros. Usar formatos estándar (P2PKH, P2SH, P2WPKH, P2TR) garantiza que la transacción llegue a un bloque sin fricciones.
Script también es la razón por la que una dirección de Bitcoin no es simplemente un identificador estático: es el resumen de un conjunto de condiciones que alguien tendrá que satisfacer. Conocer esa diferencia cambia cómo piensas en la custodia y en la seguridad de tus fondos.
⚠ Riesgo: los fondos enviados a un script incorrecto o a una dirección no válida son irrecuperables. Verifica siempre la dirección de destino antes de firmar cualquier transacción.
Conclusión
Script es la gramática silenciosa de Bitcoin. Cada transacción que has enviado o recibido ha pasado por él. No es visible en ninguna interfaz de usuario, pero determina si los fondos se mueven o no, quién puede gastarlos y cuándo. Comprender su funcionamiento te da una imagen más precisa de cómo Bitcoin garantiza su seguridad sin depender de ningún intermediario.
La información de este artículo tiene fines educativos y no constituye asesoramiento financiero, fiscal ni legal. Las criptomonedas son activos volátiles y puedes perder todo el capital invertido. Consulta con un profesional antes de tomar decisiones.



