curso-sc-dc-26
Introducción a la Programación y Análisis de Smart Contracts
Ethereum (cuentas) vs Cardano (EUTXO)Cursada
Teóricas: Miércoles, 14 a 17hs, Aula 1205, 0+ Infinito.
Taller (cuando corresponda): Aula 1106, 0+ Infinito.
Idea central del curso
Cómo se escribe y cómo se rompe un contrato es consecuencia directa del modelo de cada blockchain. Las nueve clases van en pares (teoría + taller), alternando Ethereum y Cardano, y cierran auditando el mismo código que se escribió en los talleres.
El curso comprende clases téorico/prácticas y de taller. Adeás tendremos charlas invitadas con actores revelantes de los ecosistemas.
Programa
-
1 · Fundamentos y comparación de modelos
Qué resuelve una blockchain y cuándo no conviene usarla. Contraste: estado global mutable (Ethereum) vs estado distribuido en UTXOs (Cardano).
-
2 · Intro a Solidity
Programar en cuentas: mutar estado compartido persistente y costoso. Layout de datos, visibilidad, eventos y errores como consecuencia del modelo.
-
3 · Taller Solidity: Foundry taller
Construcción de
Vault.solpaso a paso con tests y deploy local. -
4 · Intro a Aiken: validators en EUTXO
El validator solo dice sí/no. La complejidad de armar la transacción vive off-chain.
-
5 · Taller Aiken: escrow con deadline taller
Similar al dela Clase 3 pero en EUTXO.
-
6 · Análisis en Ethereum: amenazas y herramientas análisis
Vulnerabilidades del modelo de cuentas y herramientas: análisis estático, fuzzing, verificación formal y LLMs.
-
7 · Taller de análisis: explotar y arreglar (Ethereum) [Javi] taller análisis
Auditoría basada en explotabilidad: romper
Vault.sol, escribir exploit, aplicar fix y verificar con tests. -
8 · Análisis en Cardano: amenazas EUTXO análisis
Otro modelo, otro catálogo: double satisfaction, validación insuficiente de outputs y datums no autorizados.
-
9 · Taller de análisis: double satisfaction + cierre [Ian] taller análisis
Auditoría del escrow de la Clase 5: exploit, fix y cierre comparando ambos modelos lado a lado.
Trabajo final
“Adoptá una vulnerabilidad” (grupos de 2–3): una vulnerabilidad en Ethereum y otra en Cardano que representen la misma idea de fondo. Deben incluir explicación, ejemplo que compile, test que demuestre el bug, fix con costo, y validación de herramientas ejecutadas realmente.
Consignas y catálogo de temas en docs/trabajo-final.md.
Repositorio público
Materiales, ejemplos y consignas de la materia en garbervetsky/curso-smartcontracts-publico.
Slides de cada clase
Iremos agregando las clases semana por semana.
Bibliografía base
Ambas disponibles gratis online.
También podés visitar el curso Fundamentos y Aplicaciones de Blockchains del Prof. Juan Garay; se puede entrar en modo invitado.