Cairo es un lenguaje de programación diseñado específicamente para crear aplicaciones verificables en blockchain, especialmente en Starknet.
Piensa en Cairo como un lenguaje que permite escribir programas que no solo se ejecutan, sino que también pueden "demostrar matemáticamente" que se ejecutaron correctamente sin necesidad de volver a ejecutarlos. Esta característica lo hace ideal para soluciones de escalabilidad de blockchain basadas en zero-knowledge proofs (pruebas de conocimiento cero).
Cairo es un lenguaje de programación de alto nivel con tipado estático, similar en algunos aspectos a Rust. Está optimizado para generar pruebas criptográficas eficientes, lo que permite a Starknet procesar miles de transacciones y condensarlas en una única prueba que se envía a Ethereum.
Actualmente, Cairo está en su versión 2.11.2, que representa una evolución significativa desde Cairo 0 (la primera versión). Cairo 2 incorpora muchas mejoras inspiradas en Rust, haciéndolo más amigable para los desarrolladores.
Una de las particularidades de Cairo es su modelo de memoria de "un solo uso". A diferencia de lenguajes tradicionales donde puedes modificar variables libremente, en Cairo:
Esto puede parecer extraño al principio, pero está diseñado para facilitar la generación de pruebas criptográficas eficientes.
Cairo es completamente determinista, lo que significa que dado el mismo input, siempre producirá el mismo output. Esto es esencial para blockchain, donde todos los nodos deben llegar al mismo estado final.
Los contratos en Cairo deben ser conscientes de los recursos que utilizan: