Presentación para el I workshop de ciencia de datos en redes sociales. Método robusto de consenso en redes complejas que detecta y corrige desviaciones. Aplicación a 3 escenarios: votación distribuida, ataques adversarios y blockchain
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Detección de nodos tramposos en procesos de consenso en redes
1. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Detecci´on de nodos tramposos en procesos de
consenso en redes
M. Rebollo1, R.M. Benito2, J.C. Losada2, J. Galeano2
1Grupo de Tec. Inform´atica – Inteligencia Artificial
Universitat Polit`ecnica de Val`encia
2Grupo de Sistemas Complejos
Universidad Polit´ecnica de Madrid
CIDRES, CAEPIA - Granada 2018
c b a
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
2. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Contenidos
1 Introducci´on: proceso de consenso
2 Detecci´on de nodos tramposos
3 Escenarios
Votaci´on distribuida
Ataques adversarios
Problema de los generales bizantinos
4 Conclusiones
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
3. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
¿qu´e es el consenso?
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
4. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
5. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
6. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
7. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
8. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
¿para qu´e sirve?
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
9. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
10. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
11. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
12. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
13. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Algoritmo de consenso (Olfati, 2007)
Dados
grafo no dirigido
G = (V , E)
conjunto de valores
iniciales x = (x1, . . . , xn)T
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
14. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Algoritmo de consenso (Olfati, 2007)
1 cada nodo tiene un valor
inicial
1 2
3 4
x1 = 0.4 x2 = 0.2
x3 = 0.3 x4 = 0.9
x1 = 0.4
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
15. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Algoritmo de consenso (Olfati, 2007)
1 cada nodo tiene un valor
inicial
2 pasa su valor a sus vecinos
1 2
3 4
x1 = 0.4 x2 = 0.2
x3 = 0.3 x4 = 0.9
x1 = 0.4
x1 = 0.4
x1 = 0.4
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
16. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Algoritmo de consenso (Olfati, 2007)
1 cada nodo tiene un valor
inicial
2 pasa su valor a sus vecinos
3 recibe los valores de los
vecinos
1 2
3 4
x1 = 0.4 x2 = 0.2
x3 = 0.3 x4 = 0.9
x2 = 0.2
x4 = 0.9
x3 = 0.3
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
17. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Algoritmo de consenso (Olfati, 2007)
1 cada nodo tiene un valor
inicial
2 pasa su valor a sus vecinos
3 recibe los valores de los
vecinos
4 calcula el nuevo valor con
1 2
3 4
x1 = 0.45 x2 = 0.425
x3 = 0.325 x4 = 0.6
x1 = 0.4
x(t + 1) = x(t) + ε
j∈Ni
[xj(t) − xi (t)]
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
18. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Algoritmo de consenso (Olfati, 2007)
La red converge al valor medio
lim
t→∞
xi (t) =
1
n i
xi (0)
0 5 10 15 20 25 30
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
x = 0.45
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
19. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Problema
Detecci´on de fallos en procesos de consenso
Si al menos uno de los agentes no sigue el algoritmo, la red
converge a un valor distinto
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
20. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Alteraci´on del consenso
xi (t + 1) = xi (t) + ε
j∈Ni
[xj(t) − xi (t)] + ui (t)
1
23
4
5
6
7 8
9
10
0 10 20 30 40 50
time
0
2
4
6
8
10
xi
Consensus with Malicious Agent
10 agentes, x = (1, 2, . . . , 10)T , ∆x5 = 4
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
21. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Alteraci´on del consenso
xi (t + 1) = xi (t) + ε
j∈Ni
[xj(t) − xi (t)] + ui (t)
1
23
4
5
6
7 8
9
10
0 10 20 30 40 50
time
0
2
4
6
8
10
xi
Consensus with Malicious Agent
10 agentes, x = (1, 2, . . . , 10)T , ∆x5 = 4
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
22. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Detecci´on de trampas
De
xi (t + 1) = xi (t) + ε
j∈Ni
[xj(t) − xi (t)]
despejando
0 = xi (t + 1) + (εdeg(i) − 1)xi (t) − ε
j∈Ni
xj(t)
dvi (t)
y el proceso debe cumplir
dvi (t) = 0 ∀t > 0
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
23. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Correcci´on de desviaciones
xi (t + 1) = xi (t) + ε
j∈Ni
[xj(t) − xi (t)] + ui (t), with ui (t) > 0
ui (t) se reparte entre los vecinos
el nodo ”se guarda” (1 − εdeg(i))ui (t)
cada vecino recibe εui (t)
luego, dvi (t) = εui (t) → ui (t) = dvi (t)
ε
en general dvi (t)
ε = j∈Ni
uj(t)
desviaci´on total Di (t) = t
s=0 dvi (s)
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
24. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Correcci´on de desviaciones
Consenso sobre (Di |wi )
Di desviaci´on acumulada
wi n´umero de desviaciones detectadas
Valor corregido
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
25. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Voto distribuido
1
23
4
5
6
7 8
9
10
red aleatoria con 10 nodos
x(0) =
{3, 3, 1, 3, 2, 1, 1, 2, 3, 3}
resultado: {3, 2, 5}
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
26. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Votaci´on por consenso
m opciones para votar
(xi |yi ) = (x1
i , . . . , xm
i | yi )
xk
i = 1 y xj
i = 0 ∀j = k
yi = 0 variable de conteo
nodo extra
(x0|y0) = (0, . . . , 0
m
| 1)
resultado xi (t)
yi (t)
Ejemplo
x1
i x2
i x3
i yi
x0 0 0 0 1
x1 0 0 1 0
x2 0 0 1 0
x3 1 0 0 0
x4 0 0 1 0
x5 0 1 0 0
x6 1 0 0 0
x7 1 0 0 0
x8 0 1 0 0
x9 0 0 1 0
x10 0 0 1 0
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
27. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Votaci´on por consenso
m opciones para votar
(xi |yi ) = (x1
i , . . . , xm
i | yi )
xk
i = 1 y xj
i = 0 ∀j = k
yi = 0 variable de conteo
nodo extra
(x0|y0) = (0, . . . , 0
m
| 1)
resultado xi (t)
yi (t)
0 20 40 60 80 100
time
0
2
4
6
8
10
xi
Voting by Consensus
xi (t) = (0.3, 0.2, 0.5 | 0.1)
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
28. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Votaci´on por consenso
m opciones para votar
(xi |yi ) = (x1
i , . . . , xm
i | yi )
xk
i = 1 y xj
i = 0 ∀j = k
yi = 0 variable de conteo
nodo extra
(x0|y0) = (0, . . . , 0
m
| 1)
resultado xi (t)
yi (t)
0 20 40 60 80 100
time
0
2
4
6
8
10
xi
Cheating in the Voting Process
∆x7(t) = (−2, 0, 1)
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
29. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Votaci´on por consenso
m opciones para votar
(xi |yi ) = (x1
i , . . . , xm
i | yi )
xk
i = 1 y xj
i = 0 ∀j = k
yi = 0 variable de conteo
nodo extra
(x0|y0) = (0, . . . , 0
m
| 1)
resultado xi (t)
yi (t)
0 20 40 60 80 100
time
-0.2
-0.1
0
0.1
0.2
0.3
0.4
dv
i
Evolution of the values for correction
dv(t) = (0.1320, 0, −0.0660)
c(t) = (2, 0, −1)
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
30. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Ataques adversarios
Manipulaci´on de im´agenes a˜nadiendo ruido para enga˜nar a los
algoritmos de visi´on artificial
+ 0.007 × =
La imagen, despu´es de a˜nadirle el ruido se clasifica como un mono
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
31. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Transmisi´on de im´agenes por consenso
imagen formada por p
pixeles
(x1|y1) = (x1
i , . . . , xp
i | 1)
(xi |yi ) = (0, . . . , 0 | 0) el
resto
resultado xi (t)
yi (t) 0 20 40 60 80 100
time
0
0.5
1
1.5
2
2.5
x
i
10
6Consensus value of the sum of the pixels
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
32. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Resultado
Original Alterada Corregida
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
33. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Comparaci´on de algoritmos
Google Net Res–Net 50 Alex Net VGG-16
original 0.9873 0.9844 0.7479 0.5715 (panda)
alterada 0.9313 0.9429 0.6887 0.4439 (gib´on)
corregida 0.9986 0.9863 0.9220 0.8302 (panda)
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
34. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Causas de los fallos en redes distribuidas
parada: el nodo deja de mandar informaci´on
fallos bizantinos: comportamiento err´atico inesperado o
errores deliberados
comportamiento injusto, pero admitido por racionalidad,
autointer´es o pol´ıticas de incentivos.
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
35. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Problema de los Generales Bizantinos
General
Teniente 1
Teniente 2
Teniente 3
(traidor)
atacar
atacar
atacar
atacar
atacar
atacar
atacar
retirarse
retirarse
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
36. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
PGB por consenso
red aleatoria de 50
agentes
general (x1|y1) = (8 | 1)
resto (xi |yi ) = (0 | 0)
hora del ataque xi (t)
yi (t)
0 50 100 150 200
iter
0
5
10
15
20
x
i
/y
i
BGP with one Traitor
agente i = 48 traidor - suma +1 a la hora
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
37. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
PGB por consenso
red aleatoria de 50
agentes
general (x1|y1) = (8 | 1)
resto (xi |yi ) = (0 | 0)
hora del ataque xi (t)
yi (t)
0 50 100 150 200
iter
0
0.01
0.02
0.03
0.04
0.05
dv
i
Correction for BGP with One Traitor
la desviaci´on converge a dvi (t) = 0.0074 con
wi (t) = 0.06 → ci (t) = −1 .
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
38. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Diferencias con el resultado correcto
Test sobre redes
aleatorias
si m hacen
trampas
n ≥ 3 + 1
la mitad de
los vecinos
confiables
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
39. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Correcciones con ´exito
1,000
repeticiones
correcciones
del 100%
siguen una
ley de
potencias con
γ = −0.44
0 20 40 60 80 100
#cheating nodes
200
400
600
800
1000
freq.
Successful corrections
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes
40. Introduction Detecci´on de trampas Voto distribuido Adversarial Example Generales Bizantinos Error en correcciones Conclusion
Conclusiones
Extensi´on del algoritmo de consenso:
algoritmo de consenso en redes robusto
detecci´on de desviaciones de los valores esperados
correcci´on de la desviaci´on sobre el resultado final
Aplicado a escenarios de inter´es
Limitaciones
el primer intercambio debe ser correcto
correcci´on posible si m < n
3 y m < |Ni |
2
los nodos tramposos no pueden ser detectados si solo hacen
trampas una vez
@mrebollo UPV-UPM
Detecci´on de nodos tramposos en procesos de consenso en redes