Postgrado en Blockchain Engineering

Modalidad Live Streaming

Información: Alumno y profesor interactúan en directo a través de una plataforma de videoconferencia. Posteriormente, las grabaciones de las clases se publican en el campus virtual junto al resto de recursos.

Fecha de inicio y fin: 15 de Febrero del 2021 – 30 de Julio del 2021 

Horarios disponibles: lunes y miércoles de 18:30h a 21:00h (zona horaria UCT+1, Madrid)

Modalidad Online

Información: Los alumnos tienen acceso a las grabaciones de las clases y a los recursos. Participan periódicamente en tutorías por videoconferencia y pueden resolver dudas en cualquier momento vía email, llamada o videollamada.

Fecha de inicio: Inicio flexible

Duración: 7 meses

Horarios: De 7 a 10 horas semanales (Flexible)

Contenido del programa

Introducción a la tecnología

Tema 1 - Tecnología blockchain

El primer tema consiste en una introducción a la tecnología blockchain. Se explica el funcionamiento global, su propuesta de valor y sus principales aplicaciones.

  • Introducción a la tecnología
  • Aplicaciones
  • Criptografía básica del blockchain
  • Estructura de la tecnología
  • Firmas digitales y validaciones
  • Protocolo PoW y PoS
  • Otros protocolos de consenso
  • Hardfork y Softfork
  • Sidechains
  • Smart Contracts DApps y DAOs
  • Blockchain pública y privada

Blockchain pública (Ethereum)

Tema 2 – Ecosistema Ethereum

Se estudia el funcionamiento global de una blockchain pública. Concretamente se profundidad en la principal infraestructura pública para el desarrollo de DApps, Ethereum. Se ofrece una introducción y posteriormente se analizan los los distintos elementos que intervienen para asegurar el correcto funcionamiento de la tecnología y la generación de transacciones.

  • Origen de Ethereum 
  • Clientes Ethereum, Parity y Geth
  • Configuración de clientes para desarrollo de DApps
  • Exploradores de bloques
  • Ethereum Virtual Machine y opcodes
  • Gas, transacciones y cálculo de costes
  • Consulta de información de bloques y transacciones
  • Serialización de mensajes
  • Suscripción a eventos  
  • Instalación y uso en una Testnet propia  
  • Gestión de las claves
  • Ethereum networkss (Mainnet, Ropsten, Rinkeby)
Tema 3 - Configuración de nodos y minado

Instalación y configuración de nodos en una red pública y administración de un sistema de minado.

  • Introducción a la minería
  • Hardware e infraestructura
  • Instalación del nodo y minado
  • Análisis de rentabilidad
  • Conexión a Pool
Tema 4 - Solidity y desarrollo de Smart Contracts

Estudio del lenguaje de programación Solidity para el desarrollo de Smart Contracts en la blockchain de Ethereum.

  • Environment setup (Nodo + Web3 + Compilador + IDE)
  • Estructura de un Smart Contract
  • Tipos de almacenamiento
  • Tipos de datos
  • Operadores
  • Funciones
  • Gestión de la visibilidad
  • Eventos y logging 
  • Herencia y polimorfismo
  • Excepciones 
  • Seguridad
  • Mnemonic phrases
  • Manejo de errores
Tema 5 - Smart Contracts Avanzados y patrones de diseño

Se profundiza sobre funciones avanzadas de desarrollo de Smart Contracts, patrones de diseño y estándares de su programación.

  • Interface Pattern y llamadas entre contratos
  • Funciones especiales
  • Conversiones y Time Units
  • Strings y su manipulación
  • Solidity v.0.5 breaking changes
  • Patrones de diseño (withdrawl pattern, contract factory pattern, oraculos, etc.)
  • ERC-20 token standard
  • ERC-721 non-fungible tokens
Tema 6 - Herramientas de desarrollo de Smart Contracts

Se trabaja con las principales herramientas para el desarrollo, publicación y testing de Smart Contracts. Se implementan varios Smart Contract sencillos en la blockchain de desarrollo local y en una Testnet pública de Ethereum. Se desarrolla la primera aplicación y se interactúa con ella y además se realizarán prácticas de implementación y automatización de tests unitarios.

  • Web3 Object y promises
  • Remix
  • Solidity compiler 
  • Truffle
  • Node.js
  • Patrones de diseño (withdrawl pattern, contract factory pattern, oraculos, etc.)
  • ERC-20 token standard
  • ERC-721 non-fungible tokens
Tema 7- Arquitectura de aplicaciones descentralizadas (DApps)

Se estudia el desarrollo de DApps y su arquitectura. Se crean aplicaciones reales que permiten a los alumnos interactuar con los Smart Contracts implementados sobre la blockchain.

  • Arquitectura de una DApp
  • Ejemplos de arquitecturas y soluciones con casos reales
  • Componentes
  • Almacenamiento
  • Experiencia de usuario y sincronización
  • Gestión de wallets
Tema 8 - Web3 y librerías JS para desarrollo DApps sobre Ethereum

Se estudia en detalle la librería Web3,  componente principal para la comunicación de las DApp con la blockchain de Ethereum.

  • Web3
  • Ethereum JS Utils
  • Connexión con un nodo
  • Llamadas de consulta a un nodo
  • Firma de transacciones y llamadas de escritura
  • Creación de una Interfaz de usuario con Angular
  • Contract ABI Especification
Tema 9 – Desarrollo de DApps con Ionic y Embark compatibles con Android e IOs

En este tema se estudian dos tecnologías distintas para desarrollar DApps  que sean compatibles con Android e IOs. La primera es el SDK Ionic que permite el desarrollo de DApps híbridas y multiplataforma. Se desarrollan y compilan tanto para Android como para IOS. También se muestran distintas formas de gestionar las wallets y se utiliza firebase para el almacenamiento de los seeds de la DApp desarrollada.

Posteriormente se trabaja con el entorno de desarrollo ágil Embark. Se muestran las ventajas y funcionalidades mientras se construye una DApp. También se dan a conocer las posibilidades de integración con servicios off-chain como IPFS o Swarm. Estos servicios son útiles cuando se requiere almacenar grandes cantidades de información.

  • Creación proyecto Ionic
  • Creación DApp híbrida
  • js/Ethereumjs
  • Compilación DApp Android
  • Compilación DApp IOS
  • Firebase y gestión de seeds
  • Embark, Ionic y Smart Contracts
  • Creación proyecto Embark
  • Whisper
  • Integración con IPFS
  • Desarrollo casos prácticos
Tema 10 - Auditoria y Seguridad

Este tema es uno de los más importantes del curso. Se dan las pautas para evitar errores que podrían poner en jaque al sistema y se enseña a aumentar la seguridad del mismo. Estas pautas son útiles para cualquier desarrollo basado en blockchain independientemente de si es sobre Ethereum o cualquier otra tecnología.

La programación de Smart Contracts requiere una mentalidad ingenieril distinta a la que estamos acostumbrados. El coste de un fallo puede ser muy elevado y cualquier cambio trivial puede resultar fatal para el proyecto. Consecuentemente, no es suficiente con defenderse contra vulnerabilidades conocidas, es necesario un cambio de filosofía y seguir las buenas practicas y recomendaciones de seguridad mostradas en este capítulo.

  • Detectar vulnerabilidades de código
  • Actualización de contratos
  • Reentrancy Attacks
  • Overlow y underflow
  • Exception disorder
  • Generación de números aleatorios
  • Herramientas de seguridad

Blockchain Permisionada (Hyperledger)

Tema 11 - Redes permisionadas, Hyperledger y planificación de proyectos

Se analiza el concepto de blockchain permisionada y la tecnología iniciada por la Fundación Linux que está siendo usada como marco principal en la mayoría de proyectos permisionados. Se instala Hyperledger Fabric en los servidores, el conjunto de herramientas y archivos que conforman el entorno de trabajo. Finalmente se explica los recursos y herramientas necesarios para poder llevar a cabo un proyecto basado en Hyperledger Fabric, como planificar su implementación y como gestionar la ejecución.

  • Introducción y funcionamiento
  • Cuándo y cómo aplicarlo
  • Aplicaciones y proyectos reales
  • Framework y sus características funcionales: Iroha, Sawtooth, Fabric, Indy, Burrow, Besu, Grid
  • Instalación de Hyperledger Fabric, herramientas y archivos
  • Actualizaciones del entorno de trabajo
  • Planificación de proyectos basados en Hyperledger
  • Gestión y ejecución de proyectos
Tema 12 - Gestión de sistemas y redes

En este tema se aprende a diseñar e instalar la infraestructura necesaria para la implementación de una blockchain privada  en un entorno de pruebas . El objetivo es  organizar una red que cumpla con las necesidades de la cadena de valor del cliente.

  • Estructura de redes Hyperledger
  • Tipos de nodos y ordering service
  • Dimensionamiento de infraestructura
  • Diseño de red
  • Creación máquina virtual
  • Instalación sistema operativo Ubuntu
  • Microsoft Visual Studio Code
  • Configuración VirtualBox 
  • Creación y configuración de red
  • Configuración del conjunto de nodos 
  • Principales plataformas cloud (AWS, IBM y Azure)
  • Producto mínimo viable
Tema 13 - Arquitectura de Hyperledger Fabric

Se explica la estructura de la tecnología y la arquitectura de las soluciones basadas en Hyperledger Fabric. Se muestran esquemas optimizados para mejorar el funcionamiento global de las aplicaciones y se analizan las diferentes soluciones de infraestructura para el despliegue de una red de negocio con Hyperledger Fabric.

  • Arquitectura global
  • Composer Modeling Language
  • APIs
  • Tecnología REST
  • Modelado de clases
  • Consenso
  • Gestión de contenedores Docker
  • Configurar los canales
  • Docker Swarm
Tema 14 – Desarrollo de aplicaciones descentralizadas con Hyperledger

Se estudian las herramientas y lenguajes necesarios para programar soluciones en una red de negocio descentralizada con Hyperledger. Se entra en detalle en el desarrollo de los Chaincodes (Smart Contracts para entornos privados) y en la construcción del conjunto de la DApp.

  • Hyperledger Composer Playground
  • Hyperledger Composer REST
  • Modelado de lógica de negocio
  • Generación de certificados y transacciones
  • Queries
  • Desarrollo e instalación de Chaincode
  • Desarrollo de DApps para entonro permisionado
  • Transaction Processor Functions
  • Creación de esqueleto web en Angular
Tema 15 - Despliegue de Hyperledger Explorer

En este tema se estudia en profundidad la herramienta Hyperledger Explorer, el explorador de bloques oficial de Hyperledger.

  • Introducción y propuesta de valor
  • Funcionamiento
  • Instalación y  puesta en marcha
  • Comunicación Hyperledger Fabric con Hyperledger Explorer
Tema 16 - Desarrollo avanzado de Chaincodes y DApps

Se estudian conceptos de desarrollo de DApps de nivel avanzado y se plantean diferentes retos al alumno relacionados con la programación de aplicaciones descentralizadas. Tiene como objetivo consolidar un nivel alto de desarrollo de DApps y la experiencia necesaria para programar de manera eficaz soluciones con Hyperledger Fabric. Se comparten mejores prácticas para optimizar el código y evitar errores.

  • Transaction Processor Functions
  • Programación con el SDK de Fabric (Go)
  • Blockchain as a service
  • Apificiación de servicios
  • Desarrollo de Chaincode (avanzado)
  • Desarrollo de DApps (avanzado)
  • Ejercicios prácticos con Hyperledger
Tema 17 – Construcción de la infraestructura blockchain en entorno real

Se enseña  a instalar y configurar la tecnología Hyperledger en un conjunto de servidores privados . El objetivo es construir y poner en marcha una infraestructura de blockchain permisionada en un entorno real con todas sus prestaciones. Se utilizan servidores independientes para conseguir replicar un escenario típico en el que diferentes empresas participan en la red, cada una con un nodo. Además se instala la DApp desarrollada por el alumno sobre esta misma blockchain y se ejecuta.

  • Diseño de red (avanzado)
  • Instalación y configuración de herramientas y archivos
  • Configuración de servidores y despliegue de nodos
  • Comunicación y consenso
  • Gestión avanzada de sistemas
  • Instalación y ejecución de Chaincodes en la red creada previamente

Proyecto final

El objetivo del proyecto es que el alumno adquiera suficiente experiencia práctica como para para poder empezar a trabajar con estas tecnologías a nivel profesional.

Los alumnos estarán acompañados por un docente a lo largo de todo el desarrollo, con quien podrán resolver dudas, corregir código y compartir mejores prácticas

Docentes

Bernat Aguadé Estivill

Antonio Gonzalo

Josep Oriol Aguadé Estivill

Diego Torres

Ferran Figueredo

Solicite información o su admisión

¿Qué trámite desea realizar?

Le enviamos por correo electrónico la revista del programa

*Incluir el prefijo telefónico del país
Puede encontrar toda la información sobre nuestras políticas de privacidad en el acceso situado en el pié de página

Para iniciar los tramites de matriculación