Asignatura 1 Introducción al blockchain (6 ECTS)
• horas lectivas: 20h
• horas practica: 25h
1. Primera aproximación a una solución blockchain
2. Historia del blockchain y aplicabilidad en el mundo real
• historia de las primeras divisas digitales descentralizadas
• principales soluciones de blockchain
3. Arquitectura de soluciones blockchain
• gestión de las colas de bloques
• algoritmos de consenso
• sistemas de recompensa
• transacciones
Asignatura 2 Criptografía aplicada a las soluciones de blockchain (3 ECTS)
• horas lectivas: 18h
• ejercicios durante la asignatura: 9h
1. Principios básicos de criptografía
2. ¿Que es un sistema criptográfico?
• propiedades de un sistema criptográfico
• llaves y su distribución
• criptografía simétrica y criptografía asimétrica
• modelos de criptoanálisis
3. funciones hash
• principales soluciones de funciones hash
• colisiones
4. curvas elípticas
• criptosistemas de curvas elípticas
• algoritmos de ataque a curvas elípticas
Asignatura 3 Sistemas distribuidos aplicados a las soluciones de blockchain ( 3 ECTS)
• horas lectivas: 18h
• ejercicios durante la asignatura: 9h
1. Tipos de comunicación
• peer to peer
• modelos de publicación y anuncio de nodos
• sistemas de colas
2. Sistemas de ficheros
• tolerancia de fallos
3. Sincronización
• distribución y acuerdo
• latencia
• transacciones y concurrencia
Asignatura 4 Escenario actual de las implementaciones de blockchain ( 6 ECTS)
• horas lectivas: 20h
• horas practica: 25h
1. Tipos de soluciones de blockchain
• centralizados VS descentralizados
• públicos y privados
2. Principales soluciones de blockchain
• soluciones clásicas
• soluciones emergentes
• soluciones empresariales
• hyperledger y la red alastria
Asignatura 5. teoría de juegos ( 3 ECTS)
• horas lectivas : 12h
• ejercicios durante la asignatura : 6h
1. análisis de juegos
• combinatoria
• juegos de suma zero
• equilibrio de NASH
2. diseño de juegos
• juegos cooperativos
• reglas de puntuación
Asignatura 6. Implementación de nuestro propio sistema de blockchain ( 9 ECTS)
• horas lectivas: 30h
• practica: 51h
1. Diseño de componentes
• estructura de datos de un bloque
• Wallets y transacciones
• colas de bloques
2. Criptografía
• implementación de nuestra función hash
• implementación de nuestro criptosistema de curva elíptica
• Proof of Work
3. Definición de métodos
• gestión de bloques
• gestión de transacciones
4. Generar nuestro sistema descentralizado
• anuncio y gestión de nodos
• modos de intercomunicación entre nodos
• envió y tipos mensajes
• tolerancia a fallo
5. Sincronización
• sincronización de información
• validación de bloques
• algoritmos de consenso
6. Pruebas de integración
• integración de componentes
• pruebas de minado
• desarrollo de una interfaz blockexplorer
Asignatura 7. Desarrollo sobre la plataforma Ethereum (6 ECTS)
• horas lectivas: 18h
• practicas durante la asignatura: 27h
1. Entorno de desarrollo
• SDK Ethereum
• Compilación
2. Componentes de carteras / wallets
• metamask
• web3
3. Lenguaje de solidity con ejemplos y practicas
• definición del global message
• estructuras de datos y variables
• funciones privadas
• métodos de sincronización
• definición de eventos
• definición de bucles
• excepciones
• modificadores y herencia
4. Pruebas de integración
• truffle reactbox
• desarrollo de casos unitarios
5. Seguimiento de componentes
6. Gestión de eventos
Asignatura 8 Desarrollo de DAPPS sobre la plataforma Ethereum (6 ECTS)
• horas lectivas: 18h
• practica: 27h
1. Que es un contrato inteligente
• definición
• diseño de operativas
2. Desarrollo de una DAPP
• gestión y balance de una cartera con metamask
• transferencias de un contrato
3. Compilando y desplegando DAPPs
• compilando nuestro codigo con solc
• desplegando la DAPP mediante web3
4. Empleo del framework truffle
• generar un sistema descentralizado
• desarrollar y testar pruebas de integración