cairo language

⚡ Definición Rápida
Cairo (CPU Algebraic Intermediate Representation) es un lenguaje de programación Turing completo diseñado específicamente para crear programas verificables mediante STARK proofs (pruebas de conocimiento cero escalables). Es el lenguaje nativo para escribir smart contracts en Starknet, un ZK-Rollup de Ethereum, y también se utiliza para construir sistemas criptográficos, máquinas virtuales y aplicaciones de machine learning verificables fuera de la cadena.
Términos relacionados: Starknet • ZK-Rollup • Rust language • smart contracts • Ethereum
❓ ¿Qué es Cairo y por qué está revolucionando la escalabilidad de Ethereum?
Imagina que quieres demostrarle a alguien que resolviste un Sudoku extremadamente complejo, sin tener que mostrarle todo el proceso ni cada uno de los números que colocaste. Solo quieres darle una prueba breve que pueda verificar en segundos y que le garantice que tu solución es correcta. Eso es lo que permiten las pruebas STARK (Scalable Transparent Arguments of Knowledge). Y Cairo es el lenguaje que te permite escribir estos «programas demostrables».
Cairo nació en 2020 de la mano de StarkWare (la compañía fundada por el científico computacional Eli Ben-Sasson, co-inventador de STARKs). Su nombre, Cairo, es un acrónimo recursivo: «Cairo AIR». AIR significa Algebraic Intermediate Representation, y es la representación matemática que utiliza el CairoVM (Cairo Virtual Machine) para generar pruebas STARK de manera eficiente.
El caso de uso más visible de Cairo es Starknet, un ZK-Rollup de Ethereum donde los desarrolladores escriben smart contracts en Cairo que se ejecutan en el CairoVM, generan una prueba STARK de su correcta ejecución, y esa prueba se verifica en la capa base de Ethereum. Esto permite a Starknet procesar cientos de transacciones por segundo con costes mínimos, heredando la seguridad de Ethereum.
Pero Cairo también se utiliza fuera de la cadena: para construir máquinas virtuales (como la zkVM de Risc Zero), sistemas de machine learning verificables (Giza), y aplicaciones de lógica de negocio compleja que requieren pruebas criptográficas de correctitud.
Para entender el contexto de Starknet donde Cairo opera, te recomendamos leer nuestro artículo sobre ¿Qué son los Layer 2? y ¿Qué es Blockchain? para los fundamentos.
📖 Definición Técnica
Cairo es un lenguaje de programación de alto nivel que compila a una representación intermedia llamada Sierra (Safe Intermediate Representation), y luego a Cairo Assembly (CASM), el lenguaje de máquina del Cairo Virtual Machine (CairoVM). El CairoVM es una máquina virtual de arquitectura RISC especialmente diseñada para ser «zk-friendly»: cada instrucción está diseñada para ser representada como una restricción algebraica dentro de un circuito STARK. Esta propiedad permite que la ejecución de un programa Cairo genere una prueba de conocimiento cero (STARK proof) que puede ser verificada exponencialmente más rápido que ejecutar el programa original.
Cairo soporta hints (ejecución no determinista), que permiten a los programadores «ayudar» al prover con valores que serían costosos de calcular dentro del circuito, manteniendo la verificabilidad. El lenguaje está fuertemente inspirado en Rust, con un sistema de tipos robusto, traits, generics y ownership.
🏗️ La arquitectura del ecosistema Cairo
| Componente | Función |
|---|---|
| Cairo (lenguaje) | Lenguaje de alto nivel, inspirado en Rust, para escribir programas verificables |
| Sierra | Safe Intermediate Representation. Capa intermedia que garantiza que el programa no falle inesperadamente y mejora la seguridad |
| Cairo Assembly (CASM) | Lenguaje de máquina del CairoVM. Instrucciones de bajo nivel que se ejecutan en la VM |
| CairoVM | Máquina virtual que ejecuta CASM y genera trazas que pueden ser probadas con STARKs |
| STARK Prover | Genera la prueba criptográfica a partir de la traza de ejecución |
| STARK Verifier | Verifica la prueba en Ethereum (o cualquier otro entorno) en milisegundos |
🖊️ Características del lenguaje Cairo
Inspiración en Rust
Cairo está fuertemente inspirado en Rust, lo que lo hace familiar para los desarrolladores que vienen del ecosistema Solana o de sistemas. Incorpora ownership, borrowing, traits, generics y un sistema de tipos robusto. La sintaxis es limpia y moderna.
Tipos de datos nativos
- felt252: El tipo fundamental de Cairo. Representa un entero en el campo finito de la curva STARK (un número entre 0 y 2^251 – 1).
- u8, u16, u32, u64, u128, u256: Enteros sin signo del tamaño especificado.
- ByteArray: Para manejo de strings y datos.
- ContractAddress, ClassHash: Tipos específicos para Starknet.
Sintaxis de smart contracts en Starknet
Los smart contracts en Cairo se definen con el atributo #[starknet::contract]. La interfaz pública se define con #[starknet::interface]. Un ejemplo de interfaz ERC20:
#[starknet::interface]
pub trait IERC20<TState> {
fn total_supply(self: @TState) -> u256;
fn balance_of(self: @TState, account: ContractAddress) -> u256;
fn transfer(ref self: TState, recipient: ContractAddress, amount: u256) -> bool;
}Composability vs. Herencia
A diferencia de Solidity, Cairo no tiene herencia. En su lugar, promueve la composición mediante componentes. Un componente es una unidad lógica que tiene su propio storage, eventos y lógica, y puede ser incrustado en cualquier contrato. Este diseño es más modular y seguro.
Upgradabilidad nativa
Gracias a la separación entre declaración de clases (contract class) e instancias (contract instance), Cairo permite actualizar la lógica de un contrato mediante la syscall replace_class. Esto elimina la necesidad de proxies complejos como en EVM.
Account Abstraction nativa
Starknet tiene account abstraction desde su génesis. Las cuentas son smart contracts escritos en Cairo que pueden implementar cualquier lógica de validación de firmas. Esto permite wallets con autenticación biométrica (WebAuthn), multisigs, sesiones de alta seguridad, y transacciones multicall en una sola operación.
🛠️ El stack de desarrollo Cairo (2026)
El ecosistema de herramientas alrededor de Cairo ha madurado significativamente y ahora ofrece una experiencia de desarrollo comparable a la de Rust o Solidity:
- Scarb: El package manager y build system para Cairo (análogo a Cargo para Rust). Maneja dependencias, compilación y testing.
- scarbs.xyz: El registro de paquetes Cairo (equivalente a crates.io), donde los desarrolladores publican librerías reutilizables.
- Starknet Foundry: El framework de testing líder, similar a Foundry para Solidity, con soporte para fuzzing, profiling y ejecución local.
- Cairo Profiler: Herramienta para analizar el rendimiento del código Cairo, identificar cuellos de botella y optimizar costes de prueba.
- Starknet Devnet: Entorno de simulación local de Starknet para pruebas de integración sin coste.
- cairovm.codes: Playground web para experimentar con Cairo/Sierra sin instalación local.
Para desarrolladores que llegan de Solidity, la curva de aprendizaje es moderada. La sintaxis es diferente y el concepto de «campo finito» (felt252) es único, pero el tooling está bien documentado y la comunidad es activa.
📚 OpenZeppelin para Cairo: Librerías estandarizadas
OpenZeppelin, la empresa líder en seguridad de smart contracts, mantiene una versión completa de sus librerías para Cairo. Estas librerías incluyen implementaciones estándar de:
- ERC20, ERC721, ERC1155: Tokens fungibles y no fungibles.
- Account: Implementaciones estándar de cuentas con diferentes esquemas de firma
- Governance: Componentes para DAOs
- Access Control: Ownable, Roles, y más
- Upgrades: Componentes de upgradabilidad.
Además, OpenZeppelin ofrece un Wizard Interactivo para Cairo (https://wizard.openzeppelin.com/cairo), que genera código listo para desplegar de contratos ERC20, ERC721, ERC1155, cuentas y multisigs, permitiendo configurar parámetros como nombre, símbolo, mintable, burnable, pausable y upgradable.
🌐 Casos de uso de Cairo más allá de Starknet
1. Verifiable Machine Learning (zkML)
Proyectos como Giza permiten ejecutar modelos de machine learning dentro del CairoVM y generar pruebas STARK de su correcta ejecución. Esto permite que blockchains confíen en resultados de ML sin ejecutar el modelo completo.
2. Interoperabilidad cross-chain
Hyperlane, un protocolo de interoperabilidad, ha añadido soporte para CairoVM, permitiendo que aplicaciones en Starknet se comuniquen con más de 60 blockchains.
3. Lógica de negocio verificable
Cairo se utiliza para construir sistemas off-chain que requieren pruebas criptográficas de correctitud, como sistemas de votación verificable, subastas privadas, o procesamiento de datos confidenciales.
4. Máquinas virtuales personalizadas (zkVMs)
El CairoVM sirve como base para otras zkVMs, como la de Risc Zero, que permiten ejecutar código arbitrario con pruebas STARK.
🆚 Cairo vs. Solidity vs. Rust
| Característica | Cairo | Solidity | Rust (Solana/Arbitrum Stylus) |
|---|---|---|---|
| Paradigma principal | STARK-proof generation / Starknet | EVM smart contracts | Alto rendimiento / Solana SVM |
| Modelo de ejecución | CairoVM con pruebas STARK verificables | Máquina virtual EVM | Múltiples (SVM, WASM, EVM+) |
| Account Abstraction | Nativa desde el origen | Limitada, requiere EIPs (4337, 3074) | Variable según implementación |
| Upgradabilidad | Nativa (replace_class) | Requiere proxies (patrón complejo) | Depende del framework |
| Curva de aprendizaje | Moderada (con inspiración Rust) | Baja (más extendido) | Alta (ownership, borrowing) |
⚠️ Limitaciones y desafíos de Cairo
- Ecosistema más joven: Aunque crece rápidamente, el ecosistema Cairo es más pequeño que el de Solidity o Rust. Menos librerías, menos herramientas y menos desarrolladores.
- Curva de aprendizaje: El concepto de campos finitos (felt252) y las restricciones de probar eficientemente pueden ser confusos para desarrolladores nuevos.
- Depuración compleja: Depurar programas que generan pruebas STARK es más complejo que depurar código EVM tradicional, aunque las herramientas mejoran cada versión.
- Documentación en evolución: Aunque hay buena documentación oficial, algunos tutoriales y ejemplos se basan en versiones antiguas de Cairo (pre v2).
🔮 El futuro de Cairo: Expansión y adopción
En 2026, el ecosistema Cairo está en plena expansión. Starknet se ha consolidado como uno de los ZK-Rollups líderes, y la demanda de desarrolladores Cairo está creciendo. La integración con Hyperlane promete conectar Starknet con docenas de otras blockchains, aumentando la utilidad de los smart contracts escritos en Cairo. Las librerías de OpenZeppelin han madurado, ofreciendo componentes de seguridad probados para la mayoría de casos de uso estándar.
El CairoVM está siendo adoptado por otros proyectos más allá de Starknet, incluyendo rollups modulares y blockchains de capa 1 que buscan aprovechar la eficiencia de las pruebas STARK. Cairo se está posicionando como un lenguaje de propósito general para computación verificable, no solo para smart contracts.
Para aquellos interesados en desarrollo blockchain, aprender Cairo es una inversión estratégica. A medida que la computación verificable (ZK) se convierta en estándar en la industria, la demanda de programadores que dominen este paradigma solo aumentará.
🎯 Conclusión: Cairo, el lenguaje que hace verificable lo computable
Cairo no es solo otro lenguaje de smart contracts. Es un cambio de paradigma: la capacidad de ejecutar cualquier programa y generar una prueba criptográfica de que se ejecutó correctamente, una prueba que puede ser verificada mucho más rápido que el programa original. Esta propiedad es revolucionaria para blockchain, donde la verificación por parte de todos los nodos es el cuello de botella histórico.
Para los desarrolladores, Cairo ofrece una sintaxis moderna inspirada en Rust, un tooling robusto, y acceso al creciente ecosistema de Starknet. Aunque la curva de aprendizaje es mayor que la de Solidity, las ventajas en escalabilidad, seguridad y verificación son sustanciales. Para cualquiera que construya el futuro descentralizado, Cairo es una herramienta que merece atención.
❓ Preguntas Frecuentes sobre Cairo
📚 Recursos para profundizar en Cairo
📖 ¿Qué son los Layer 2? – El contexto de Starknet
⚖️ ¿Qué es MiCA? – Regulación europea para ZK-Rollups
🛡️ Guía de Seguridad Crypto – Seguridad en smart contracts Cairo
🔧 Tutorial de wallets – Configura wallets para Starknet (Argent X, Braavos)
💻 ¿Qué es Web3? – El ecosistema donde Cairo opera
📋 ¿Por qué confiar en esta definición? Cada término de la Cryptopedia sigue una metodología de verificación con fuentes primarias, whitepapers y legislación oficial. Conoce nuestro proceso →
⚠️ Disclaimer: Este artículo es exclusivamente educativo e informativo. Cairo es un lenguaje en evolución activa; las versiones y herramientas pueden cambiar rápidamente. La información aquí presentada refleja el estado del ecosistema en mayo de 2026. No constituye asesoramiento de desarrollo ni financiero. Siempre consulta la documentación oficial antes de desplegar contratos en producción.
📅 Actualizado: Mayo 2026
📖 Categoría: Infraestructura Blockchain / Ejecución y EVM
