Puntos clave
- Haskell utiliza programación funcional y un sistema de tipos expresivo.
- Plinth, antes Plutus Tx, conecta Haskell con validadores de Cardano.
- El rigor de los tipos complementa las pruebas; no elimina los errores de negocio.
¿Qué es Haskell?
Haskell es un lenguaje funcional con tipos estáticos que permite expresar reglas mediante funciones y estructuras de datos explícitas. En el ecosistema Cardano está relacionado con el desarrollo del protocolo y con Plinth, el lenguaje anteriormente llamado Plutus Tx, que utiliza un subconjunto de Haskell para crear validadores.
Un validador decide si una transacción cumple determinadas condiciones. La aplicación que construye esa transacción realiza otro trabajo: selecciona entradas, calcula cambios, añade datos y solicita firmas. Distinguir ambas capas evita atribuir al contrato responsabilidades que pertenecen a la integración.
Cómo funciona
En Cardano, el modelo EUTXO representa el estado mediante salidas de transacciones que pueden consumirse si se satisfacen sus condiciones. Un validador recibe información relevante de la transacción, junto con datos como datum y redeemer, y comprueba las reglas del gasto. Su ejecución se evalúa dentro de un presupuesto de recursos.
Los tipos ayudan a modelar estados y transiciones de forma explícita. Por ejemplo, una operación puede admitir apertura, cancelación o liquidación bajo condiciones distintas. Diseñar esas alternativas permite discutir el comportamiento antes de conectarlo a una wallet o a un sistema de pagos.
Qué aporta Haskell
Haskell puede resultar útil cuando el equipo necesita trabajar con reglas complejas y dispone de experiencia funcional. En un contrato de depósito, un modelo de referencia puede describir qué participantes autorizan cada transición y cómo se conservan los importes. Las pruebas comparan las transacciones construidas con esas reglas y exploran combinaciones de entradas.
La verificación formal requiere una especificación y una demostración sobre propiedades concretas. Usar Haskell o compilar un validador no equivale a haber completado ese proceso. El alcance de las pruebas debe incluir también la construcción de transacciones, el tratamiento de errores y la integración con componentes externos.
Limitaciones y criterios de elección
Haskell no es obligatorio para desarrollar cualquier producto sobre Cardano. Existen otros lenguajes y herramientas, como Aiken, y el frontend puede utilizar un stack distinto. La decisión depende del código existente, del soporte del entorno de compilación y de la capacidad del equipo para revisar y mantener los validadores.
Antes de elegirlo conviene prototipar la operación más exigente: tamaño de transacción, presupuesto de ejecución y acceso concurrente al estado compartido. Un modelo elegante puede resultar poco práctico si concentra todas las operaciones en una misma salida. La arquitectura del producto y la de sus transacciones deben diseñarse juntas.
También conocido como
- GHC
- Plutus
- functional Web3





