yaiza rubio @yrubiosec félix brezo @febrezo - cybercamp.es · ¿en qué se basa blockchain? a...
Post on 30-Jun-2020
4 Views
Preview:
TRANSCRIPT
#CyberCamp17
Blockchain y el gato de Schrödinger
Yaiza Rubio @yrubiosec
Félix Brezo @febrezo
2
¿Por qué Shrödinger?
Hasta que no miremos dentro del búnker, no sabremos si el gato está: vivo o muerto
3
¿Por qué Shrödinger?
Al final puede ser que nuestra curiosidad sea la que termine matando al gato
4
La tecnología como herramienta
Ahora podemos apoyarnos en la tecnología para reducir esa incertidumbre
5
El software libre y los sistemas descentralizados
La transparencia del software libre es una herramienta que afronta el problema de la desconfianza hacia actores de los que no nos fiamos.
Se tiene más control sobre lo que se ejecuta y se ponen trabas al control central.
6
¿En qué se basa blockchain?
A quiere mandar bitcoins a B. Alicia creará una transacción firmándola con su clave privada.
La información de la transacción es notificada al resto de nodos de la red.
Tras validarla, uno de los nodos será el encargado de añadirla en un nuevo bloque a la blockchain.
Los nuevos bloques serán encadenados con los anteriores y esta ampliación de la
cadena será notificada al resto de
nodos de la red. B podrá hacer uso de los bitcoins recibidos de A ahora que ya consta que los tiene.
Para entender blockchain hay que pensar en la tecnología como un registro contable y entender la figura de las transacciones, bloques y direcciones.
7
¿Cómo se dice quién añade el próximo bloque?
La prueba de trabajo (PoW)
Para añadir bloques, los nodos tienen que resolver un problema matemático. Por tanto, a más capacidad de cómputo para resolverlo, más probabilidades tenemos de añadir nuevos bloques.
¿Por qué es necesario? Para distribuir el proceso de generación de nuevas monedas en un entorno en el que no se confía en el resto de nodos.
Las alternativas
Proof of stake
La capacidad de añadir bloques no depende de la capacidad de cómputo y es proporcional a la cantidad de monedas que uno ya tiene acumuladas.
8
9
¿Por qué no intentamos minar nosotros mismos?
https://blockchain.info/address/1X7QiyHEwiKUycv58ibw7raNB9SvCwRwz
Pool 2Pool 1Nodo aislado
10
¿Por qué no intentamos minar nosotros mismos?
Ready?
Pool 2Pool 1Nodo aislado
11
¿Por qué no intentamos minar nosotros mismos?
Operación a resolver: buscar un número que sea divisible por 7 y por 5 y que sea superior a 1000 e inferior a 2000
Pool 2Pool 1Nodo aislado
12
¡Habemus ganador!
¿Cómo almacenar esas claves?
13
En carteras o eWallets
¿Cómo almacenar esas claves?
14
Tipos de carteras
https://pastebin.com/AwE2B52m
¿Cómo almacenar esas claves?
15
Tipos de carteras
¿Cómo almacenar esas claves?
16
Tipos de carteras
¿Cómo almacenar esas claves?
17
Malware que roba carteras
Bitcoin GOLD
18
Los incentivos de los mineros
19
Los incentivos de los mineros
Acuñación de nuevas monedas
Comisiones pagadas por usuarios
RECOMPENSA PARA EL MINERO
+
¿Qué recompensas existen para quienes colaboran en la red?
20
¿Qué pinta tiene un bloque?
Pa
La primera transacción registrada en la blockchain no vinculada a la generación de nuevas monedas fue realizada y atribuida originalmente a Satoshi Nakamoto y ‘Hal’ Finney tres días después.
La primera operación registrada en la blockchain de Bitcoin es la del bloque 1, registrado el 9 de enero de 2009, en la que se minaron los primeros 50 bitcoins.
21
La generación no es infinita
Cada 210000 bloques se divide la recompensa por generación. El límite son 21 millones
22
¿Pero qué alicientes habrá cuando se dejen de acuñar monedas?
¡Las comisiones!
Los usuarios pagarán comisiones más altas para conseguir que sus transacciones sean añadidas con
más rapidez.
23
¿Cuánto suponen las comisiones para un minero?
15%Desde el 1 de enero de 2017, las comisiones
suponen aprox. el 15% del total que recauda un
minero por añadir un nuevo bloque:
12,5 BTC por acuñar
2 BTC por comisiones
24
¡Viajemos al futuro!
Pero, ¿cuánto supondrían las comisiones si el próximo halving fuera mañana?
25
¿Cuánto supondrán esas comisiones para los mineros?
25%Si suponemos que las
circunstancias de mercado fueran
similares, el importe relativo a las comisiones
significaría una parte mayor:
6,25 BTC por acuñar
2 BTC por comisiones
26
¿Qué influye en el precio de unacomisión?
O
Espacio en cada bloque (Q)
Comisión a pagar
(P)
27
¿Qué influye en el precio de unacomisión?
O
Espacio en cada bloque (Q)
Comisión a pagar
(P)
¡La oferta es fija!Justo 1 MB
28
¿Qué influye en el precio de unacomisión?
O
Espacio en cada bloque (Q)
Comisión a pagar
(P)
¡La oferta es fija!Justo 1 MB
D
29
¿Qué influye en el precio de unacomisión?
O
Espacio en cada bloque (Q)
Comisión a pagar
(P)
¡La oferta es fija!Justo 1 MB
D
30
¿Qué influye en el precio de unacomisión?
O
Espacio en cada bloque (Q)
Comisión a pagar
(P)
¡La oferta es fija!Justo 1 MB
D
31
Tamaño medio de los bloques añadidos
32
¿Y si las importamos a la vez?
1Le4NbBwoV5AqMJ4R2SyyHceFPW1zouAhP
33
¿Y si las importamos a la vez?
1Le4NbBwoV5AqMJ4R2SyyHceFPW1zouAhP
34
Los forks
HARDFORK Vs. SOFTFORK 8 MB / bloque
35
Los hard forks
1 2 … n-2 n-1 n
Durante 8 años hubo consenso sobre las reglas que debían
regular el ecosistema de Bitcoin
36
Los hard forks
1 2 … n-2 n-1 n
n+1 n+2
n+1 n+2
Las discrepancias sobre cómo afrontar los problemas dan lugar a dos protocolos diferentes: los bitcoins ahora se pueden gastar
en dos cadenas
37
Los hard forks
1 2 … n-2 n-1 n
n+1 n+2 n+4 n+5 n+6
n+1 n+2 n+3 n+4 n+5 n+6
n+3
n+4 n+5 n+6
O incluso a nuevas soluciones basadas en las anteriores como
ocurre con Bitcoin Gold
38
Los soft forks
A diferencia de lo que ocurre en los hard forks, los nodos que no se actualizan siguen aceptando como
bloques válidos aquellos que contienen transacciones que siguen las nuevas reglas
39
Las diferentes implementaciones
El hecho de que el código sea libre facilita la proliferación de nuevas criptodivisas.
En junio de 2013 ya existían 82 criptodivisas basadas en solamente en el código de fuente de Bitcoin.
Coinmarketcap.com ya lista hoy 1167 distintas.
40
Los costes de la minería
La energía consumida por la red de Bitcoin
se dispara.
41
Regiones con menor consumo energético anual que la red de Bitcoin
42
¿Y si nos ahorramos la energía?
El malware que se dedica a la minería no es reciente aprovechando que el atacante no paga esa electricidad.
Ha habido diferentes familias que han implementado funcionalidades diferentes.
Photominer MoneroMiner MinerGate DiscordiaMiner CoinMiner
43
¿Y si nos ahorramos la energía?
44
¿Una nueva forma de financiación?
Existen proyectos destinados a cargar Javascript de minado de Monero que se ejecutan mientras el usuario visita una web
coinhive.min.js056914e579e9ecb82809850f5eff8265
30% de comisiónhttps://coinhive.com/lib/coinhive.min.js
miner.min.jsc0ee8328586ed8f4ee2ef954a28128aa
12% de comisiónhttps://crypto-loot.com/lib/miner.min.js
45
¿Una nueva forma de financiación?Extensiones como No Coin bloquean las conexiones a sitios asociados con
prácticas de minería disponible para Firefox, Google Chrome y Opera.
46
El caso de uso inicialPa<
SISTEMAS DE PAGO (también en el mundo real)
En mayo de 2010, el usuario de Bitcointalk Laszlo planteó que pagaría 10000 bitcoins a quien le enviara dos pizzas a su domicilio.
Existen cuentas de Twitter que siguen diariamente el valor de aquella operación.
Desde entonces algunos celebran el día 22 de mayo como el Bitcoin pizza day.
https://coinmap.org https://localbitcoins.com/buy_bitcoins
47
Más allá de los pagos:OP_RETURN
"scriptPubKey" : { "asm" : "OP_RETURN 636861726c6579206c6f766573206865696469", "hex" : "6a13636861726c6579206c6f766573206865696469", "type" : "nulldata" }
Es una funcionalidad incorporada en 2013 con el objetivo de almacenar una pequeña parte de información (80 bytes) en la cadena de bloques.
> bitcoind getrawtransaction 8bae12b5f4c088d940733dcd1455efc6a3a69cf9340e17a981286d3778615684 1
>>> deserialize(d){
"inputs": [ { "address": "1HnhWpkMHMjgt167kvgcPyurMmsCQ2WPgg", …
"outputs": [ { "address": "j\u0013charley loves heidi", "prevout_n": 0, "scriptPubKey": "6a13636861726c6579206c6f766573206865696469", "type": 2, "value": 0 }, { "address": "1HnhWpkMHMjgt167kvgcPyurMmsCQ2WPgg", "prevout_n": 1, "scriptPubKey": "76a914b8268ce4d481413c4e848ff353cd16104291c45b88ac", "type": 0, "value": 200000 }
],"version": 1
48
Anclaje en la blockchain de Bitcoin
En proyectos como coinsecrets.org se enumeran los mensajes que se incluyen en las
distintas transacciones registradas en la cadena de
bloques de Bitcoin.
También cuenta con un servicio para consultar la información de
la Testnet.
49
Otro proyecto que usa OP_RETURN
Herramienta que acredita ante terceros que algo ya fue ideado
anteriormente
https://poex.io/
Proof of Existence
50
¿Se podría utilizar esta persistencia con
fines maliciosos?
51
La historia de los C&C
Redes centralizadas
Con la aparición de las redes sociales, surgió otra forma de comunicarse con los nodos infectados.
La comunicación con el C&C queda oculta en el bosque de información legítima enviada a través de redes sociales.
Todos los nodos periféricos se comunican con el central. Su caída priva de comunicaciones al resto.
Este tipo de modelo cliente-servidor fue de los primeros en aparecer.
Se publican a través de chats IRC los comandos que deberán ejecutar los nodos infectados.
El uso de servidores web ha facilitado a los administradores el proceso de gestión de una botnet al proveerles de una interfaz desde la que controlar los equipos infectados.
Este tipo de modelo cliente-servidor también fue de los primeros en aparecer.
52
Un problema compartido tambiénpara quien difunde propaganda
PaLa agencia de noticias AMAQ ha estado utilizando extensiones de navegador para facilitar a sus seguidores el acceso a sus páginas web a modo de intermediario para localizar sus sitios web.
Usuario radicalizable
Administrador de propaganda
53
PaLa agencia de noticias AMAQ ha estado utilizando extensiones de navegador para facilitar a sus seguidores el acceso a sus páginas web a modo de intermediario para localizar sus sitios web.
Administrador de propaganda
Usuario radicalizable
Un problema compartido tambiénpara quien difunde propaganda
54
PaLa agencia de noticias AMAQ ha estado utilizando extensiones de navegador para facilitar a sus seguidores el acceso a sus páginas web a modo de intermediario para localizar sus sitios web.
Administrador de propaganda
Usuario radicalizable
Un problema compartido tambiénpara quien difunde propaganda
55
¿Cómo funcionaba su extensión?
Las extensiones de Firefox son ficheros .zip a los que se modifica la extensión a .xpi por lo que se pueden descomprimir.
Desde el punto de vista del atacante, el problema reside en si se intercepta el servidor al que se conecta la extensión ya que conllevaría la anulación de capacidades porque NO hay actualizaciones automáticas.
La extensión de navegador
56
El software de la PoC
El código está subido a Github
https://github.com/i3visio/blockchain_c2c
Una aplicación escrita en Python que permite generar transacciones con el código OP_RETURN para enviarla a la
cadena de bloques
Clientes en JavaScript y en Python que ejecutan las órdenes almacenadas en la
cadena de bloques
57
Los dos extremos
EL ADMINISTRADOR LA VÍCTIMA
El admin hace una transacción en la que una de las salidas contiene el OP_RETURN con la orden a ejecutar.
n4av4Y5AfGePBJFQzmzwhKbCnr2k4nJbDh
[cybercamp]
n4av4Y5AfGePBJFQzmzwhKbCnr2k4nJbDh
[cybercamp]
OP_RETURN: calc.exe1 XTN
Los nodos infectados se conectan a un proveedor de consultas de la cadena de bloques para conocer las órdenes a ejecutar.
58
59
¿No son suficientes 80 bytes?
Guardando punteros que se apoyen en otras tecnologías que también garanticen la descentralización.
Apoyándonos en IPFS, una tecnología P2P que se ha ganado fama últimamente tras ser utilizada por los organizadores del referéndum el 1 de octubre para evitar la censura.
¿Cómo almacenamos muchos datos?
60
¿No son suficientes 80 bytes?
Puedes acceder a la información siendo
nodo de la red o a través de pasarelas
como ipfs.io
https://ipfs.io/ipfs/QmNkCPtUqgixSNrzzxoibabPuiMLu41bwA4cXbgd8AFKHG
61
Otros proyectos
¡El primer fork! En su cadena de bloques se almacenan hasta 520 bytes de información y se pueden
registrar tanto dominios como usuarios.
https://namecha.in/
Plataforma de computación distribuida que complementa
funciones de contratos inteligentes. https://etherscan.io/
¿Una PoC? ¡Una porra!
Protocolo de comunicación descentralizado y cifrado. Permite la comunicación con otros miembros en el que para recibir un mensaje deberá
descifrar todos los mensajes de la red.
https://github.com/Bitmessage/PyBitmessage
62
Los casos de uso
Identidad digital
Cadena de suministro
Internet de las cosas
Smart contracts
Propiedad intelectual
63
Las ICO
Es la oferta inicial que se da a una moneda.
Los desarrolladores realizan un pre-minado y ofrecen la nueva moneda a cambio de otras a inversores iniciales.
Los desarrolladores hacen un pre-minado y ofrecen la moneda o token a inversores iniciales en condiciones ventajosas (¡siempre que la criptodivisa se consolide!).
Se equipara a una salida a bolsa desregulada y con riesgos:
● Inseguridad en la implementación de la divisa (DAO)● Declarado ilegal por gobiernos (China)● Las monedas no valgan nada
64
Para la mecánica cuántica…
El gatito está vivo y muerto al mismo tiempo
65
Una historia muy humana
Blockchain es la continuación de una historia muy humana: conseguir disminuir la incertidumbre
Las utilidades de blockchain son las que son: persistencia, trazabilidad, integridad de la información o eliminar intermediarios
Gracias por su atención
top related