Simplicity compone programas a partir de un conjunto pequeño de combinadores y puede sustituir subexpresiones conocidas por jets rápidos con significado idéntico, uniendo capacidad de análisis y rendimiento práctico.
Su núcleo es un conjunto pequeño de combinadores tipados con semántica denotacional y operacional definida matemáticamente. Un modelo formal en Rocq permite comprobar por máquina pruebas sobre el lenguaje, su implementación y las propiedades de un programa concreto. [1]
El lenguaje no tiene bucles sin límite ni recursión general, de modo que antes de ejecutar pueden derivarse cotas máximas de cálculo, memoria y datos. Por ello, un programa no debería detenerse ante un gasto de gas desconocido ni ejecutarse para siempre. [1]
El programa es un árbol merklizado de expresiones y, al gastar, las ramas no utilizadas pueden sustituirse por su Merkle root. El validador comprueba el compromiso con el programa completo, pero en chain solo se revelan la ruta necesaria y los witness data. [1]
Un jet reconoce una expresión Simplicity concreta y la ejecuta mediante una función nativa optimizada. La seguridad del consenso exige que su resultado coincida exactamente con la semántica de referencia; el jet no añade un significado nuevo oculto. [1]
libSimplicity contiene un runtime mínimo y sensible al consenso en C, componentes de referencia y generación en Haskell, y un modelo formal en Rocq. Las capas se comprueban entre sí, aunque el repositorio afirma expresamente que lenguaje e implementación siguen en desarrollo. [2]
SimplicityHL es un lenguaje más legible, parecido a Rust, que compila a bytecode de Simplicity. El propio proyecto lo califica como work in progress y no production-ready; auditar un contrato exige revisar fuente, compilador, bytecode, witness y jets. [3]
Simplicity se desplegó en la mainnet de Liquid en 2025. Liquid es una sidechain federada con varios activos y Confidential Transactions, por lo que ese despliegue no activa nada en el consenso de la mainnet de Bitcoin; harían falta otra propuesta y un soft fork. [4]
La semántica formal no garantiza una intención económica correcta, claves seguras ni una contraparte fiable. Al verificar hay que distinguir programa de bajo nivel, herramientas SimplicityHL, conjunto concreto de jets, versión de Liquid e integración hipotética en Bitcoin. [2]
Para obtener la imagen más completa, lee esta entrada junto con Bitcoin Script, Miniscript, Taproot, Soft Fork, Reglas de consenso, Sidechain.
01¿Está Simplicity disponible en la mainnet de Bitcoin?+
No. Está desplegado en la mainnet de Liquid, cuyo consenso es distinto; usarlo como lenguaje de script de Bitcoin exigiría otra propuesta y un soft fork.
02¿Es Simplicity lo mismo que Miniscript?+
No. Miniscript es una estructura analizable sobre el Bitcoin Script actual; Simplicity es otro lenguaje de bajo nivel definido formalmente.