## Page 1
Tecnologías emergentes:
blockchain, aprendizaje federado
Grado en Ingeniería Informática
Universidad de Burgos <img>Universidad de Burgos logo</img>
José Ignacio Santos, José Manuel Galán
jisantos @ ubu.es, jmgalan @ ubu.es
---
## Page 2
# Contenidos
* Blockchain
* Cómo funciona
* SHA
* Blockchain distribuido
* Minado
* Tokens
* Utilización como libro mayor
* Aplicaciones
* Aprendizaje federado
* Arquitectura
* Dificultades
* Aplicaciones
---
## Page 3
# Referencias
* Anders Brownworth, live blockchain (MIT)
http://blockchain.mit.edu/how-blockchain-works
* Anders Brownworth, Blockchain demo https://andersbrownworth.com/blockchain/hash
* Blockchain business models, Duke University (Coursera)
* Xu, Jie, Benjamin S. Glicksberg, Chang Su, Peter Walker, Jiang Bian, y Fei Wang.
«Federated Learning for Healthcare Informatics». Journal of Healthcare Informatics Research 5, n.° 1 (1 de marzo de 2021): 1-19
---
## Page 4
# Motivación
En este tema se introducen tecnología que potencialmente pueden generar grandes cambios en productos/servicios, modelos de negocio, desde el ámbito de la gestión de la información
En algunas teorías de innovación a este tipo de tecnologías se las llama tecnología disruptiva (Christensen, 1995)
Como en todo aquello relacionado con la predicción de los cambios tecnológicos y sus consecuencias en la economía y la sociedad existe una gran volatilidad de tecnologías candidatas a ser “disruptivas” y blockchain es una de ellas. En este tema no se hacen predicciones de los cambios que blockchain generará, simplemente describimos sus características principales.
Clayton M. Christensen “Disruptive Technologies: Catching the Wave” 1995
---
## Page 5
# Blockchain
<img>A black background with five gold Bitcoin coins stacked vertically, each showing the Bitcoin symbol (a stylized "B") on its face.</img>
Photo by Jeremy Zero on Unsplash
---
## Page 6
# Definición de blockchain
Blockchain es una base de datos construida mediante bloques enlazados a través de claves criptográficas (hash)
* Cada bloque tiene su propio hash (resumen mediante una huella digital)
* Dentro del contenido de un bloque se encuentra el hash del bloque predecesor
<img>A diagram showing three blocks connected by arrows. Each block contains "hash n-2", "hash n-1" (in green), and "datos". The arrows point from "hash n-1" of one block to "hash n-2" of the next, illustrating how hashes link the blocks together.</img>
Este diseño garantiza (=hace muy difícil) la inmutabilidad de los datos de los bloques:
* Generar un hash lleva tiempo (minado)
* Cambiar un dato supone cambiar los hash del bloque que lo contiene y de todos los bloques sucesivos
---
## Page 7
¿Cómo funciona blockchain?
Blockchain demo
https://andersbrownworth.com/blockchain/hash
SHA256 Hash
Datos:
Hash: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
---
## Page 8
# Secure Hash Algorithm (SHA)
graph LR
A[mensaje] --> B[SHA]
B --> C[hash]
C -- X --> A
¿Cómo generar un hash de un conjunto de datos (mensaje)?
Mediante una función criptográfica basada en curvas elípticas que genera una clave digital (e.g. SHA-256 tiene una salida de 256 bits) de un argumento de entrada
* **One-way function**: es fácil generar una firma pero es muy muy difícil obtener el argumento a partir de la firma
* **Lost of information**: la firma digital contiene menos información que el argumento de entrada
* **Algoritmo determinista** (la probabilidad de colisión es muy muy pequeña)
https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm
---
## Page 9
# Ejemplo
Suponer que conozco a una persona de este grupo que ha cometido un delito “académico” y quiero chantajearle.
Publico el siguiente mensaje en redes sociales a través de un perfil falso:
Sé quién ha cometido un grave delito académico en la clase de Gestión de la Información del Grado en Ingeniería Informática de la UBU. Si esa persona no envía una transferencia en bitcoins por valor de 1000 euros a la cuenta de Samourai Wallet 123456789 haré pública su identidad. El SHA256 del nombre y apellidos de la persona es:
4d130effa2df045685d7c450931393a8abeaab11f9f3a5ea17891e34c6bb065a
---
## Page 10
# Blockchain distribuido
Blockchain puede implementarse como:
* En un sistema **privado centralizado/descentralizado**, e.g. [www.hyperledger.org](http://www.hyperledger.org)
* En un sistema **público descentralizado**, e.g. bitcoin, ethereum, ...
* No existe una autoridad centralizada que tome decisiones, sino que cualquiera puede incorporarse y participar en la red
* Todos los nodos guardan una copia (redundancia), participan en la verificación e incorporación de bloques (**algoritmos de consenso**)
Un sistema distribuido refuerza la inmutabilidad de la base de datos:
* A la dificultad de modificar un bloque-hash y todos los bloques-hash sucesivos se añade la de **difundir el cambio** en más del 50% de los nodos (**51% attack**)
---
## Page 11
# Minado
Al contenido de un bloque (mensaje + hash predecesor) se le añade un número (NONCE)
No vale cualquier número, se impone una dificultad tal que el bloque con el nonce genere un hash con un número inicial de ceros (e.g. 14 en bitcoin)
La búsqueda es por fuerza bruta, la dificultad determina el tiempo medio (e.g. 10 minutos en bitcoin)
En blockchain distribuidos la creación de bloques y su verificación la hacen los nodos
Los nodos toman un conjunto de transacciones para construir un bloque e intentan hallar un nonce que verifique la dificultad requerida (=minado)
Cuando un nodo encuentra un nonce lo publica en la red, el resto de nodos lo verifican y finalmente se incorpora a la cadena de bloques (quedando confirmadas todas las transacciones del nuevo bloque).
El nodo “minero” es recompensado (e.g. con tokens de una determinada moneda); es un incentivo para participar y mantener la red de blockchain
<img>A cartoon miner with a pickaxe in a mine shaft.</img>
MINADO
---
## Page 12
# Proof of Work
El sistema de minado por el que se exige un coste “moderadamente caro pero factible” (e.g. tiempo de computación para calcular el nuevo NOUNCE del bloque) a cada cliente cuya verificación es significativamente más sencilla se denomina “Proof of Work System”
Este sistema aumenta la robustez de la base de datos
Sin embargo, requiere de un consumo energético muy grande para su funcionamiento:
Cambridge Bitcoin Electricity Consumption Index (CBEC)
<img>A line chart titled "Historical Bitcoin network power demand" showing daily network power demand in gigawatts (GW) from 2017 to 2022. The y-axis ranges from 0 to 40 GW. The x-axis shows years 2017, 2018, 2019, 2020, 2021, and 2022. The data fluctuates significantly over time, with notable peaks around 2018, 2020-2021, and 2022. A horizontal timeline at the bottom indicates years 2014, 2018, and 2022.</img>
Fuente: CBEC
---
## Page 13
Bitcoin consume más electricidad que países enteros
Estimación del consumo anual de electricidad (teravatios/hora)*
Country
Electricity Consumption (TWh)
China 🇨🇳
6.543
Estados Unidos 🇺🇸
3.989
Alemania 🇩🇪
524
México 🇲🇽
267
España 🇪🇸
264
Centros de datos de todo el mundo 📊
205
Bitcoin 🪙
143
Noruega 🇳🇴
124
Chile 🇨🇱
74
Suiza 🇨🇭
56
Google 🌐
12
Bolivia 🇧🇴
9
Facebook 📱
5
Fuente: Statista
---
## Page 14
# Libro mayor
La estructura de un blockchain es ideal para almacenar un libro mayor (ledger)
Un libro mayor almacena operaciones contables (un activo se sustrae de una cuenta para añadirse en otra) que representan transacciones entre agentes
10/10/2021
Ana (-3€)
Rubén (+3€)
Si las transacciones han sido verificadas (Ana es dueña de los 3 euros) la incorporación en un bloque es garantía de permanencia sin cambios, en cualquier momento puedo conocer el estado de un agente, el propietario de un activo, ...
Blockchain “garantiza” la inmutabilidad del libro mayor. La inmutabilidad está garantiza por
(1) la estructura de bloques con hash criptográficos,
(2) si además es descentralizado, el mecanismo de consenso necesario para verificar y añadir transacciones
---
## Page 15
# Libro mayor
Peer A
Bloque: # 1
Nonce:
139358
Tx:
$
25.00
De:
Darcy
->
Bingley
$
4.27
De:
Elizabethr
->
Jane
$
19.22
De:
Wickham
->
Lydia
$
106.44
De:
Lady Catt
->
Collins
$
6.42
De:
Charlotte
->
Elizabethr
Anterior:
0000000000000000000000000000000000000000
Hash:
00000c52990ee86de55ec4b9b32beefd745d71675dc0eddf
Bloque: # 2
Nonce:
39207
Tx:
$
97.67
De:
Ripley
->
Lambert
$
48.61
De:
Kane
->
Ash
$
6.15
De:
Parker
->
Dallas
$
10.44
De:
Hicks
->
Newt
$
88.32
De:
Bishop
->
Burke
$
45.00
De:
Hudson
->
Gorman
$
92.00
De:
Vasquez
->
Apone
Anterior:
00000c52990ee86de55ec4b9b32beefd745d71675dc0eddf
Hash:
000078be183417844c14a9251ca246fb15df1074019873f5
---
## Page 16
# Tokens
Un token es una representación digital única de ALGO:
* Permisos para hacer, entrar, etc.: **UTILITY TOKENS**
* Derechos, participaciones en, valor fiduciario (e.g., moneda), etc.: **SECURITY TOKENS**
* Una obra digital (e.g., foto, dibujo, canción, vídeo,...): **NON FUNGIBLE TOKENS (NFT)**
<img>Screenshot of Jack Dorsey's first tweet on Twitter, posted at 9:50 PM · Mar 21, 2006, reading "just setting up my twttr". The tweet has 195.2K likes, a reply button, and a share button. Below the tweet, it says "Read 11.9K replies". To the right of the tweet, it says "Subastado en 2021 por $2.9M"</img>
Los tokens están siempre ligados a un blockchain que los crea y registra las transacciones
---
## Page 17
# Ejemplo: Contratos Inteligentes
Un contrato inteligente (Smart Contracts) es un código almacenado en un bloque de blockchain
El código describe un programa que ejecuta un **contrato** entre partes, si se cumplen determinadas condiciones entonces ejecuta una determinada decisión
graph TD
subgraph Bloque N-1
A[hash n-2 datos]
B[hash n-1]
end
subgraph Bloque N
C[hash n-1 datos]
D[hash n-1]
end
subgraph Bloque N+1
E[hash n+1 datos]
F[hash n+1]
end
A --> B
C --> D
E --> F
B -- "..." --> A
D -- "..." --> C
F -- "..." --> E
```solidity
pragma solidity >=0.4.22 <0.6.0;
/// @title Voting with delegation.
contract Ballot {
// This declares a new complex type which will
// be used for variables later.
// It will represent a single voter.
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
// This is a type for a single proposal.
struct Proposal {
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
}
---
## Page 18
# Tulip Mania
<img>A hand holding a gold Bitcoin coin.</img>
Foto de Pierre Borthiry - Peiobty en Unsplash
<img>A man with a beard and a black cap, smiling, with "TRADER" overlaid on his chest.</img>
https://youtu.be/OCSxJcX8VDk
<img>A close-up of pink and white tulips against a blue sky.</img>
Foto de Kwang Mathurosemontri en Unsplash
<img>A line graph showing Bitcoin price fluctuations from 2013 to 2022, with a sharp peak around 2021.</img>
Bitcoin price 2013-2022 (Statista)
Burbuja de tulipanes (1637):
https://en.wikipedia.org/wiki/Tulip_mania
<img>An illustration depicting the "Tulip Bubble" of 1637, showing a dramatic rise in tulip prices over time, with text indicating that tulip bulbs were worth over 100 times their weight in gold at the height of the bubble.</img>
Amsterdam Tulip Museum
---
## Page 19
# BBD tradicionales vs blockchain
Bases de datos relacionales
Blockchain
Estructura de datos en tablas relacionales
Estructura en bloques secuenciales ligados por un hash
Gestión centralizada
Gestión distribuida
"Fácilmente" modifiable
Inmutable
Más eficiente y rápida en accesos y consultas
Elevado consumo (proof of work) y lenta en consultas
Aplicaciones generales
Aplicaciones donde la inmutabilidad es clave y los datos tienen dimensión longitudinal (libro mayor)
---
## Page 20
# Resumen de características
Otra forma de ver blockchain es como un libro mayor distribuido:
* Conjunto de transacciones temporalmente ordenadas,
* Almacenados en bloques enlazados por un hash criptográfico (huella digital) con un patrón predefinido (que requiere un NOUNCE de complejidad suficiente)
* Distribuido (base de datos completa) en una red de computadores (nodos)
Y esto proporciona las siguientes características a los datos almacenados:
* Los datos son **inmutables** (en la medida en que cambiar un dato exige: (1) cambiar los hash de todos los bloques posteriores, y (2) cambiar las copias de la mayoría de nodos (mecanismo de consenso)
* Los datos no pueden **eliminarse** (cualquier cambio exige una nueva transacción) y son fácilmente **trazables** (desde su origen hasta el momento actual)
---
## Page 21
# Aplicaciones de blockchain
Campbell R. Harvey (2019):
* Votaciones
* Internet of things (IoT)
* Recetas de fármacos
* Estados financieros de las empresas
* Criptomonedas
* Historia Clínica
Blockchain permite gestionar la “memoria” de eventos, transacciones, intercambios, decisiones, etc. de forma segura, ágil, y sin necesidad de intermediarios que garanticen la veracidad de los cambios
---
## Page 22
# Ejemplo: NFTS
Un NFT (Non-Fungible Token) es un identificador digital que no puede ser copiado o alterado que se almacena asociado a un propietario en un bloque de blockchain
Pueden representar un activo real o virtual (cualquier archivo digital, foto, vídeo, música, ...)
El propietario puede transferir (transacción almacenada en blockchain) el token
<img>
A block diagram showing a "Block" with hex data.
The hex data includes:
01 01 00 00 00 01 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 FF FF
01 04 45 54 68 65 20 54
4A 61 6E 2F 32 30 30 39
01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 3B A3 ED FD
67 76 8F 61 7F C8 1B C3
4B 1E 5E 4A 29 AB 5F 49
01 01 00 00 00 01 00 00
01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 3B A3 ED FD
67 76 8F 61 7F C8 1B C3
4B 1E 5E 4A 29 AB 5F 49
01 01 00 00 00 01 00 00
FF FF 00 1D 1D AC 2B 7C
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
FF FF 4D 04 FF FF 00 1D
69 6D 65 73 20 30 33 2F
20 43 68 61 6E 63 65 6C
6F 72 20 62 61 6E 6B 73
2A 01 00 00 00 43 41 04
19 67 F1 A6 71 30 B7 10
79 62 E0 EA 1F 61 DE B6
F3 55 04 E5 1E C1 12 DE
A dashed box around the hex data shows:
Author: 0xc0ffec254729296a45a38B5639AC7E10F9d54579
Smart contract address: 0xA395b25755DB825Ba23eAE0ee76846a4A880888F
Smart contract's ID: 49214
Non-fungible token
getURLfromID(49214)
http://127.0.0.1:8080/protocol/kqUMyOAGQ8Wf7iEx07H0PktuBtEtahsdxv4n15fY2GzGrm1rAVzzzb1fkPpb1aX4eVrXr3i3UlArad4q9v
Art, assets, files, etc.
</img>
Fuente: Wikipedia
---
## Page 23
<img>An ornate library with tall arched windows, numerous bookshelves filled with books, and numerous people engaged in study and conversation.</img>
# Federated Learning
---
## Page 24
# Ejemplo de infrautilización de los datos clínicos
Uno de los principales retos en la gestión de la información en muchos sistemas:
Los datos están infrautilizados porque están dispersos en diferentes instituciones, nacionales e internacionales, y las preocupaciones por la privacidad limitan su acceso (Rieke et al, 2020)
* Por ejemplo, imagina el entrenamiento de una IA para la detección mutaciones genéticas asociadas a un mayor riesgo de cáncer ¿cómo recogemos los datos de entrenamiento? ¿un conjunto de hospitales? ¿todo un país? ¿toda la UE?
* Idealmente se podrían compartir los datos, pero existen importantes (y necesarios) requerimientos legales que dificultan/impiden un entrenamiento clásico
---
## Page 25
# Aprendizaje federado
Una solución es el aprendizaje federado (AF) que puede definirse como un paradigma de Machine Learning en el que múltiples entidades colaboran para entrenar un modelo compartido manteniendo los datos de entrenamiento localmente sin compartir
El AF es útil cuando existan problemas de:
1. Privacidad y seguridad en los datos: AF solo comparte el modelo
2. Soberanía de los datos: los datos no salen del ámbito local, respetando las normas y leyes locales
El AF es interesante en diversos ámbitos, por ejemplo en la gestión de la información clínica en la que diferentes entidades (hospitales, centros de investigación, institutos de salud pública, etc.) pueden beneficiarse de mejores modelos garantizando los requerimientos de privacidad, seguridad, y soberanía de los datos clínicos de los pacientes
---
## Page 26
# Arquitectura del aprendizaje federado
Se propone un modelo global (mismos parámetros para todos los nodos)
Se define una función de pérdida global, combinación ponderada de las pérdidas del modelo en los datos locales de cada nodo.
$F(w) = \sum_{k=1}^{K} \frac{n_k}{n} F_k(w)$
Algoritmo Federated Average (FedAvg):
1) El servidor central envía a los clientes los pesos actuales wt
2) Cada cliente ejecuta un SGD sobre sus propios datos durante varias epochs y envía la diferencia
$\Delta w^k = w^k_{final} - w_t$
3) El servidor calcula el nuevo modelo global
$w_{t+1} = w_t + \sum_{k=1}^{K} \frac{n_k}{n} (\Delta w^k)$
---
## Page 27
# Federated Average (FedAvg)
graph TD
subgraph Modelos de Clientes
client_k_1[CLIENTE K (Datos Privados $D_k$)]
client_k_2[CLIENTE K (Datos Privados $D_k$)]
client_k_3[CLIENTE K (Datos Privados $D_k$)]
client_k_4[CLIENTE K (Datos Privados $D_k$)]
client_k_5[CLIENTE K (Datos Privados $D_k$)]
end
subgraph Servidor Central
server_central[SERVIDOR CENTRAL (Modelo Global Actual $W_t$)]
end
agrega_agregado[AGREGACIÓN Y ACTUALIZACIÓN GLOBAL]
modelo_global_actualizado[W_{t+1}]
iterar[ITERAR]
estilo_grafico_azul[Azul: Modelo ($W$)] | estilo_grafico_verde[Verde: Gradiente ($\bm{g}$)] | estilo_tasa_aprendizaje[$\eta$: Tasa de aprendizaje]
g_global[Gradiente Local $\bm{g}_k$]
w_global_t[Modelo Global Actual $W_t$]
conexion_clientes_a_server --> g_local_gk[Gradiente Local $\bm{g}_k$]
server_central ---> g_global_directions {Arrows pointing to "Promedio"}
g_global --~{Arrows pointing from "Promedio"}~ ModeloGlobalAct[$\textbf{Promedio: }\bm{g}_{global} = \frac{1}{K}\sum_k (\bm{g}_k)$]
ModeloGlobalAct -- ModelosClient [Modelo Global Actualizado $W_{t+1}$] --> iterar
ModeloGlobalAct --> w_global_actualizada[Modelo Global Actualizado $W_{t+1}$]
ModeloGlobalAct -- agrega_agregado --> server_central
etiqueta_estilo_1[Azul: Modelo ($W$)]
etiqueta_estilo_2[Verde: Gradiente ($\bm{g}$)]
etiqueta_estilo_3[$\eta$: Tasa de aprendizaje]
texto_colores[Azul: Modelo ($W$) | Verde: Gradiente ($\bm{g}$) | $\eta$: Tasa de aprendizaje]
texto_matematico[Promedio: $\bm{g}_{global} = \frac{1}{K}\sum_k (\bm{g}_k)$]
texto_matematico2[Actualización:]
texto_matematico3[$W_{t+1} = W_t - \eta * \bm{g}_{global}$]
modelos_clientes --> server_central
servidor_central --> modelos_clientes
etiqueta_estilo_1
etiqueta_estilo_2
etiqueta_estilo_3
texto_matematico
texto_matematico2
texto_matematico3
<img>A yellow padlock icon.</img>
No es necesario compartir los datos locales que permanecen privados
Azul: Modelo ($W$)
Verde: Gradiente ($\bm{g}$)
η: Tasa de aprendizaje
---
## Page 28
# Dificultades del aprendizaje federado
Algunas de las dificultades de la implementación de modelos de AF son:
* **Heterogeneidad en los datos:** distribuciones muy sesgadas con datos de nodos no representativos del conjunto
* **Escalabilidad:** problemas de rendimiento al aumentar la complejidad del modelo, los tamaños de los datos de entrenamiento o el número de nodos participantes
* **Seguridad y privacidad:** en ocasiones se puede exigir cifrado de los datos para evitar quiebras de seguridad en el proceso de entrenamiento
* **Evaluación del grado de participación** de los nodos: si existen determinantes económicos puede ser necesario determinar la contribución de cada nodo para asignar costes o beneficios
---
## Page 29
# Ejemplos
“20 Hospitals in 20 Days Build AI Model that Predicts Oxygen Needs”
https://blogs.nvidia.com/blog/2020/10/05/federated-learning-covid-oxygen-needs/
The model **EXAM** is designed to predict oxygen requirements in COVID-19 patients, useful prior to PCR results, using objective, standardized imaging inputs
The global FL model, EXAM, outperformed local models
Participating in FL provides a significant advantage over using only local data
<img>A diagram showing the architecture of the model EXAM. It starts with a Chest X-ray (CXR) input, which goes through a ResNet 34 network to produce CXR Features. These features are then used by a Deep & Cross network. The EHR Data, which includes Blood Test, Oxygen Sat, Blood Pressure, Respiratory Rate, is also fed into the Deep & Cross network. The output of the Deep & Cross network predicts 24 Hr Post Chest X-Ray Oxygen Prediction, which can lead to outcomes such as Room Air, Low Flow O₂, High Flow O₂, Ventilator, Death, Under Observation, and Intensive Care.</img>
model EXAM
Dayan, I., Roth, H.R., Zhong, A. et al. Federated learning for predicting clinical outcomes in patients with COVID-19.
Nat Med 27, 1735–1743 (2021).
https://doi-org.ubu-es.idm.oclc.org/10.1038/s41591-021-01506-3