Curso intensivo en español sobre criptografía programable. Consta de 3 módulos que exploran los fundamentos matemáticos, pruebas de conocimiento cero (ZKP), y los ecosistemas de Aztec con Noir y Starknet con Cairo, con un enfoque en escalabilidad de Ethereum y privacidad. Combina teoría, ejemplos prácticos y recursos de apoyo.
- Modalidad: Clases virtuales por Google Meet, serán grabadas.
- Duración del programa: 3 semanas/módulo. Las 2 primeras semanas son clases y estudio, última semana es el buildathon. Durante las 2 semanas de estudio, se tendrán las clases de 2hrs, 2-3 veces a la semana, aparte horas de oficina y keynotes de ponentes invitados del ecosistema.
- Pre requisitos por clase: Leer el material preliminar de apoyo para preparación.
- Sobre el buildathon: El programa incluye 3 buildathones donde los participantes pueden contribuir de diversas maneras según lo aprendido, como:
- Redactar un blog que explique un concepto teórico en detalle.
- Implementar circuitos ZK con Noir o Cairo.
- Desarrollar una aplicación parcial o end-to-end utilizando los conocimientos adquiridos.
- Implementar algún algoritmo criptográfico visto durante las clases en cualquier programa: Jupyter notebook, Sage, etc.
- Comunidad: Se manejará un servidor de Discord para notificaciones, discusiones, y comunicación durante el transcurso del programa.
- Idioma: Contenido y clases en español, con referencias y keynotes en inglés-español.
- Número de participantes: 10 - 20.
- Preselección de participantes: Se llevará una fase de preselección de los participantes con requisito mínimo el ser estudiante de Ingeniería o Ciencias desde 4to semestre en adelante o graduado/egresado en alguna carrera técnica. Se busca que los participantes tengan bases fuertes en matemáticas y/o programación.
- Certificado: Los participantes seleccionados podrán obtener la certificación si han culminado el curso exitosamente con contribuciones en los 3 buildathones y su asistencia a las clases virtuales.
📆 Semanas 1-2: Teoría y Aplicaciones
- Matemáticas para Criptografía Programable (Primitivas Esenciales)
- Teoría de números: Divisibilidad, números primos, y funciones aritméticas.
- Aritmética modular: Conceptos básicos, inversos multiplicativos, y exponentes.
- Extensiones de campos (Field Extensions): Introducción a campos finitos y su uso en criptografía.
- Grupos: Teoría de grupos y su aplicación en criptografía.
- Curvas elípticas (Elliptic Curves): Fundamentos y aplicaciones en criptografía moderna.
- Criptografía clásica y moderna: De cifrados simétricos a asimétricos (RSA, Diffie-Hellman).
- Recursos:
- Introducción a las Pruebas de Conocimiento Cero
- ¿Qué son y por qué son necesarias? (Escalabilidad y Privacidad).
- Tipos de ZK-Proofs: zk-SNARKs vs zk-STARKs.
- Aplicaciones prácticas en blockchain: transacciones privadas y verificación eficiente.
- Recursos:
📆 Semana 3: Buildathon 1
🛠 Proyecto:
- Escribir un artículo explicando un concepto matemático (por ejemplo, el algoritmo de Euclides o aritmética modular).
- Implementar un algoritmo criptográfico en Python (por ejemplo, RSA o un cifrado simétrico como AES).
- Crear una aplicación básica que demuestre una prueba de conocimiento cero (puede ser un ejemplo simple usando una librería como Libsnark).
📆 Semanas 4-5: Teoría y Aplicaciones
- SNARKs y Pruebas Recursivas
- SNARKs
- Compromisos KZG (Kate-Zaverucha-Goldberg).
- Sistemas de prueba: Plonk y Ultraplonk.
- Reducción de restricciones y pruebas recursivas.
- Aplicaciones en privacidad y descentralización: ejemplos como transacciones privadas y votaciones seguras.
- Recursos:
- Plonk: A Universal SNARK for Trusted Setup
- KZG Commitments Explained
- Aztec 101 - Programación con Noir y Sandbox de Aztec
- Introducción a Noir: sintaxis y estructura.
- ACIR (Abstract Circuit Intermediate Representation) y backend de Barrentenberg.
- Ejecución en navegadores con WebAssembly (WASM).
- Ejemplo de código en el ecosistema de Aztec
- Recursos:
📆 Semana 6: Buildathon 2
🛠 Proyecto:
- Desarrollar un contrato en Noir.
- Implementar una prueba recursiva (por ejemplo, para verificar múltiples transacciones).
- Caso de uso práctico: sistema de identidad digital ecuatoriana (verificación privada de identidad con Noir).
📆 Week 7-8: Theory & Applications
- Cairo y STARKs
- Conceptos fundamentales:
- Ciclo de vida de un STARK: declaración, LDE (Low-Degree Extension) y compromiso.
- Restricciones polinomiales.
- Protocolo de compromiso FRI (Fast Reed-Solomon Interactive Oracle Proofs).
- Generación y verificación de la prueba.
- Recursos:
- Conceptos fundamentales:
- Desarrollo en STARKNET
📆 Semana 9: Buildathon 3
🛠 Proyecto:
- Construir una dApp en Starknet (por ejemplo, un sistema de votación escalable).
- Implementar un sistema basado en STARKs (como una verificación eficiente de múltiples transacciones).