UP

Tecnologías Blockchain

Máster Presencial.

Contenidos

UPC School

Materias

Introducción a la Blockchain, consenso, cloud y P2P
4 ECTS. 30 horas lectivas.

Introducción a las tecnologías Blockchain

Sistemas distribuidos y consenso

 - Consenso en sistemas fail-stop: PAXOS y RAFT

 - Consenso en sistemas Bizantinos: PBFT

 - Los ataques sybil y el consenso con pruebas de trabajo

Redes y aplicaciones

 - Arquitecturas de protocolos

 - TCP/IP

 - HTTP, websockets y servicios Web

Virtualización, cloud y contenedores Docker

 - Virtualización de sistemas operativos

 - Virtualización de redes

 - Servicios Cloud

 - Contenedores Docker

Redes peer-to-peer (P2P)

 - Overlays p2p

 - Tablas de hash distribuidas (DHTs)

 - Kademlia

 - Almacenamiento distribuido con el InterPlanetary File System  (IPFS)

Bases de criptografía
6 ECTS. 45 horas lectivas.

Criptografía clásica

 - César

 - Playfair

 - Vigenère

 - Escítalo

Criptografía teórica

Criptografía simétrica

 - Algoritmos: DES y AES

 - Modos de funcionamiento

Aritmética modular

 - Congruencias

 - Teorema de Euler

 - Algoritmo de Euclides

 - Exponenciación modular rápida

 - Teorema chino de los restos

Criptografía moderna de clave pública o asimétrica

 - RSA

 - Diffie-Hellman

 - Elgamal

Firma digital

 - Funciones de hash

 - La paradoja del cumpleaños

 - Ejemplos y aplicaciones

Curvas elípticas

 - Definición y propiedades de las curvas elípticas

 - Emparejamientos bilineales

Firmas en curvas elípticas

 - ECDSA

 - BLS

Complejidad

 - Tipos de problemas

 - Problemas NP-completos

Seguridad demostrable

 - Modelos de atacante

 - Pruebas de seguridad

Otros paradigmas criptográficos

 - Criptografía homomórfica

 - Criptografía umbral

 - Criptografía basada en atributos y en identidad

Pruebas de conocimiento nulo o ZKP (Zero Knowledge Proofs)

 - Definición

 - ZK-SNARKS

Firmas con propiedades adicionales

 - Firmas ciegas

 - Firmas en anillo

 - Firmas con conocimiento nulo

 - Firmas proxy

 - Firmas de grupo

Esquemas de re-encriptado e intercambio de claves

Computación cuántica y criptografía postcuántica
2 ECTS. 15 horas lectivas.

Elementos básicos de mecánica cuántica

- El qubit

- Medidas cuánticas generalizadas

- Entrelazamiento

- Puertas lógicas

Protocolos básicos cuánticos

- Tele-transporte

- Codificación densa

- Desigualdades de Bell

Protocolos de computación cuántica

- Deutsch-Josza

- Búsqueda en un registro no estructurado (algoritmo de Grover)

- Factorización de números primos (algoritmo de Shor).

Distribución cuántica de claves 

Criptografía post-cuántica basada en retículos (lattices)

- Integer lattice

- q-ary lattice

- Dual lattice

Problemas con lattices

- SVP (Shortest Vector Problem)

- CVP (Closest Vector Problem)

- LWE (Learning With Errors)

- SIS (Short Integer Solution)

- ISIS (Inhomogeneous Short Integer Solution)

Ideal lattices

- ring-LWE

- ring-SIS

Ejemplos de sistemas de cifrado, firmas y commitments con lattices

ZKP con lattices

- Sigma-protocols

- Fiat-Shamir with aborts

- Stern code-based protocols

Bitcoin
4 ECTS. 24 horas lectivas.
Descripción general del sistema Bitcoin

- Tecnología Blockchain y Bitcoin

- Visión general de la tecnología Bitcoin

- Cuentas, llaves y direcciones

Transacciones de Bitcoin

- Definiciones básicas

- Formato de transacción Bitcoin

- Lenguaje de scripting de Bitcoin

- Repositorios de transacciones

Bloques de Bitcoin

- Estructura de bloques de Bitcoin

- La Blockchain

- El proceso de minería

La red Bitcoin P2P

- Propiedades de red

- Descubrimiento de red y conexión

- Mecanismos de transmisión de datos

Soluciones de segunda capa de Bitcoin

- Canales de micropago

- Lightning network
Herramientas para el desarrollo de Dapps Web
7 ECTS. 48 horas lectivas.

Introducción a Javascript

- Orientación a objetos

- Funciones y programación funcional

Control de versiones GIT

nodejs

- Gestión de paquetes

- Programación asíncrona

Aplicaciones cliente/servidor

- Desarrollo de una aplicación cliente/servidor

- JSON-RPC: definición y aplicaciones a Blockchain

Aplicaciones Web

- Frontend/backend versus aplicaciones cliente/servidor

- Express

- AJAX y server push

- Websockets

Despliegue de servicios Web en cloud

- Arquitecturas de microservicios

- Despliegue de un servicio con docker

Testeo de aplicaciones Javascript

- Tipos de test y los test unitarios y test de integración

- Testeo con mochajs y las librerías de assertion

- Introducción al testeo de smart contracts desde Javascript

Interfaces de aplicación (APIs)

- APIs REST

- graphQL

- gRPC

Programación de aplicaciones que usan APIs en Javascript

- APIs con Callbacks

- APIs con Promises

- APIs con Async/await

Desarollo de Frontend

- Typescript para el frontend

- Webpack

- React

Seguridad
8 ECTS. 54 horas lectivas.

Critpografía aplicada a redes

Infraestructura de clave pública (PKI)

Criptografía híbrida

Autenticación

- Protocolos de autenticación

- Gestión de contraseñas

Protocolos de seguridad

- TLS y ataques MITM

- SSH y VPNs

Seguridad Web

- CSRF (Cross-site Request Forgery)

- XSS (Cross-site Scripting)

- CORS (Cross-origin Requests)

- JWT (JSON Web Tokens)

- Seguridad en Web Storage y aplicación a crypto wallets

Sistemas avanzados para seguridad/privacidad

- eCash

- Identidad anónima

- Compartición de secretos

- Onion Routing

- Computación multiparte: DC networks

Estructuras con hash

- Cadenas de hash

- Árboles de Merkle

- Firmas de lamport

Sistemas de votación electrónica

- Secreto del voto y anonimato de los votantes

- Eligibilidad de los votantes

- Integridad de los votos y las urnas

- Auditoría transparente

- Privacidad e integridad del voto y privacidad a largo plazo

- Protocolos para garantizar privacidad: Pollsterless, dos agencies, mix-nets, homomorphic Tally

- Protocolos para facilitar la verificabilidad: pruebas de verificabilidad individual, pruebas de verificabilidad universal, recibo del voto y bulletin Board

-Ejemplos de sistemas de votación electrónica: Suiza, Estonia y Australia

Programación segura

- Security by design

- SSDLC (Secure Software Development Life Cycle) y el common criteria

- Aplicación a nivel básico con github

- Mecanismos de verificación de software: formales, semi-formales y manuales

- Derivación, SMT, KEVM, reviews de código y el reversing

- Thread modelling y un catálogo de buenas prácticas

- Ejemplos de fallos con prácticas de análisis de seguridad

Ethereum
8 ECTS. 54 horas lectivas.

Bases de Ethereum

- Transacciones y bloques en Ethereum

- El patricia tree

- El minado: ethash, DAG y uncles

Devops: despliegue de una red privada con Ethereum

- Despliegue automatizado con Puppeth

- Uso de diferentes nodos: Geth, Parity y Quorum

- Alastria y casos de uso

La máquina virtual Ethereum o EVM (Ethereum Virtual Machine)

- El Ether, el gas y el gasprize

- Eventos y el filtro de bloom

- Códigos básicos (Opcodes)

Smart Contracts

- Programando con Solidity

- Patrones de implementación con Solidity

- Mappings, Arrays y Estructuras

- Propiedades inteligentes (Smart Properties)

- Librerías, contratos e interacciones entre contratos

Desarrollo de una DApp

- Interacción con los Smart Contracts desde nuestra DApp con Web3

- Metamask

- Gestion de eventos

- Testing de contratos

- Desarrollo con Truffle

- Servicios Off-chain: Swarm/IPFS & Whisper

Análisis de seguridad de contratos inteligentes

- Análisis de fallos típicos

- Buenas prácticas

Aplicaciones y casos de Uso

- DAPPs (redes sociales, mercados de predicción, identidad, ¿)

- DAOs

- Los Ethereum Request for Comments (ERCs)

- Estudio de ERCs: ERC-20, ERC-223, ERC-721, ERC-777

- Identidad Digital

Escalabilidad

- Plasma

- Micro-raiden

- Sharding

- Simuladores para escalabilidad

Altcoins y otros proyectos Blockchain
7 ECTS. 42 horas lectivas.

Hyperledger

- El ecosistema Hyperledger

- Hyperledger Fabric, conceptos teóricos de la plataforma: consenso, mecanismos criptográficos, tipología de la red, etc.

- Cómo crear una testnet de Hyperledger Fabric desde cero

- Implementar contratos en golang

- El SDK de go para interactuar con Hyperledger

R3 Corda

- La red y el ledger

- Identidades

- Estados y contratos

- Transacciones y flujos

- Algoritmos de consenso utilizados

- Notarios

- Ventanas temporales

- Oráculos

IOTA

- Descripción del proyectos

- Tangle versus Blockchain

Sesiones invitadas de otros proyectos de la comunidad

 

Aplicaciones, casos de uso, negocio y aspectos legales
4 ECTS. 33 horas lectivas.

Cryptourbanomics

- Principios de Blockchain aplicados a ciudades y territorios

- Garantizando las principales características Blockchain en proyectos: disrupción, distribución y des-centralización

- Caso de uso: auto-consumo energético compartido

- Como las soluciones basadas en Blockchain cambian el rol de los actores de proyectos

- Caso de uso en políticas urbanas

- Las connotaciones físicas de la distribución como incremento de la resiliencia

- Caso de uso: planificación urbana

- Reglas de gobernanza comunes y democráticas en los sistemas distribuidos

- Caso de uso: regulaciones y estándares urbanos

Economía y negocio

- Tokenomics

- Cryptonomics

Aspectos legales y de contratación pública

Iniciativas institucionales para el impulso de la tecnología Blockchain

- Declaración europea para el impulso de las tecnologías Blockchain

- Convocatorias de ayudas nacionales y europeas

- Estado del arte de la estandarización: ISO, UIT, ETSI, CEN/CENELEC y UNE

- Casos de uso. GDPR, identidad digital, energía, salud, automoción, logística

- Quien es quien en Blockchain en España, actores.

Proyecto final de máster
10 ECTS. 15 horas lectivas.
Desarrollo de un proyecto basado en la Blockchain

Los proyectos podrán ser desarrollados sobre Alastria.
Inicia la preinscripción
Solicita información
Enviar
(34) 93 112 08 83

Créditos:
60 ECTS
(360 horas lectivas)

Fechas de realización:
Inicio clases:22/10/2018 Fin clases:06/11/2019Fin programa: 20/11/2019
Horario:
Lunes  18:30 a 21:30Miércoles  18:30 a 21:30Jueves  18:30 a 21:30
Lugar de realización:
Tech Talent Center
C/ de Badajoz, 73-77
Barcelona
mapa y accesos

Importe de la matrícula:
9.200 €

Idioma de impartición:
Español

Inscripción abierta hasta el inicio del curso o hasta el agotamiento de plazas.

Imprime todo el curso