SlideShare una empresa de Scribd logo
In crypto we trust
Santiago Márquez Solís
UPM - 2017 1
Master en Sistemas Empotrados y
Distribuidos
SMARQUEZSOLIS@GMAIL.COM
@SMARQUEZSOLIS
WWW.SANTIAGOMARQUEZSOLIS.COM
WWW.BITCOINFORDEVELOPERS.COM
2
3
ANTES DE EMPEZAR, TOCA HACER LA PREGUNTA…
4
DE BITCOIN SE DICEN MUCHAS COSAS…
5
6
La prensa publica algo casi todos los
meses ….
7
8
9
Sin contar lo que se dice “por ahí”
Bitcoin es una exhibición de fuerza tecnológica. El mayor invento
después de Internet.
Bill Gates
¿Eso no es una estafa?
Comercial de un banco
No entiendo lo de los bitcoins, aunque tampoco entiendo a las
mujeres y estoy casado.
Trader de Bitcoin
Bitcoin es malo.
Paul Krugman (profesor economía de Princeton)
10
El valor del Bitcoin es cercano a cero.
Xavier Sala-i-Martín (profesor economía de Harvard)
Bitcoin es un activo [digital] que se está monetizando.
Juan Ramón Rallo (Economista)
Bitcoin es un esquema Ponzi. El Dinero de la Deep Web.
Nouriel Roubini (presidente de RGE Monitor)
Bitcoin es un experimento. No pongáis todos vuestros
ahorros ahí.
Jeff Garzik (core developer del protocolo)
11
INTENTEMOS ACLARAR LAS COSAS
12
DATOS IMPORTANTES PARA SITUARNOS
13
DOS “VISIONES”
14
BITCOIN
NUEVO MODELO
ECONOMICO
BLOCKCHAIN
BLOCKCHAIN
DISTRIBUTED LAYER
TECHNOLOGY o DLT
(Public / Private)
¿MARTILLO DE
ORO?
"When the wise man points at the Bitcoin, the idiot
looks at the Blockchain" – (Quasi-)Confucius.
15
Inversión Empresas Internet vs
Inversión Empresas Bitcoin
16
Evolución del Precio de Bitcoin
1 BTC aprox unos 820 dólares (17/01/2017)
Capitalización Total Actual: 13.214.808.150 dólares
(16 millones de BTCs) (más o menos) (17/01/2017)
17
¿Quién acepta Bitcoin?
www.coinmap.org
EN ESPAÑA…
• Bitcoin está reconocido como medio de pago y es
equiparable a otra divisa (consulta vinculante V1029-15 de
Hacienda)  no se cobra IVA
• Todas las empresas que cobran en Bitcoin están obligadas a
tener un libro contable con las direcciones y transacciones
que realizan
• Si eres minero tienes que registrarte como autónomo y
pagar la cuota mensual (Consulta V3625-16)
18
¿BITCOIN ES DINERO?
19
¿QUÉ ES EL DINERO?
• Activos que son valiosos por su escasez
• Sirven para intercambiarlos por bienes y servicios
• Los bienes escasos se empezaron a usar como dinero: Oro
• Se crea la Moneda Fiducidaria: Oro respalda un título de cambio
• Nadie viene a reclamar ese oro con su título, ¿Emitimos títulos sin
respaldo a cambio de oro?
• 1971, Nixon dice que se acabó reclamar el oro y convierte la Moneda
Fiducidaria en Moneda FIAT, basada en la deuda.
• Se obliga a la población a utilizar una moneda, con autoridad central.
El dinero pasa a ser IMAGINARIO, sin respaldo físico.
20
“Si el dinero es bueno y la gente lo acepta voluntariamente,
¿qué necesidad hay de leyes de curso forzoso? Si el dinero
no es bueno, ¿cómo se puede en una democracia obligar al
pueblo a utilizarlo?” Larry Parks
PRINCIPIOS DE LAS MONEDAS
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
21
PROBLEMAS ECONÓMICOS
• Al ser un sistema basado en la deuda, puede crecer
indefinidamente.
• Empobrecimiento del Ahorro
• Un modelo de crecimiento ilimitado en un contexto de
recursos limitados no es sostenible
• Al menos no solo con los recursos del planeta Tierra
• Nanotecnología??
• Conquista Espacial??
22
¿QUÉ ES BITCOIN?
23
¿QUÉ ES BITCOIN? (1)
24
• Es una moneda electrónica.
• No tiene autoridad central (sistema descentralizado)
• Se transfiere de persona a persona de forma irreversible.
• Está limitada, no se pueden crear más de 21M de BTC.
• Se puede dividir en 100.000.000 millones de unidades
(mBTC o uBTC)
• Cada subunidad recibe el nombre de Satoshi
• 1 BTC = 100.000.000 de Satoshis
¿QUÉ ES BITCOIN? (2)
25
• Bitcoin funciona como una red P2P (BitTorrent/eMule)
• Procesa Transacciones 24x7x365
• Cualquiera puede ser un nodo en la Red
• Una transacción es un pago entre dos entes (casi
anónimo)
• Las transacciones se agrupan en Bloques
• Los Bloques forman una larga cadena o Blockchain
• Los bloques los crean los Mineros
¿QUÉ ES BITCOIN? (Y 3)
26
• VENTAJAS:
• Hacer un pago con Bitcoin es como enviar un correo
electrónico.
• Las comisiones son mínimas.
• La transferencia tarda 5-10 min vs p.ej. transferencia SEPA
(sólo en la UE) es de 1-3 días laborables (escalabilidad)
• Es casi anónimo
• Reserva de Valor
• Bancarización Mundial
• Micropagos: donaciones, propinas
PROBLEMAS
27
PROBLEMAS QUE AFRONTA BITCOIN
28
• La moneda es un instrumento de control de los gobiernos.
Impuestos. Control de capitales y aumento de patrimonio.
Actividades ilegales.
• Desafía a gente muy poderosa. Cuánto más gente utiliza Bitcoin,
menos vale el trabajo de un banquero.
• Actualmente es muy volátil.
• Cuesta de entender para el gran público.
• Cuesta creer que el Bitcoin sea moneda. Es moneda virtual.
• Eventualmente podría sufrir ataques (DoS), fallos por bugs de
programación en el protocolo, etc.
• Problema de Escalabilidad
ESCALABILIDAD (1)
29
• Probablemente es el problema más importante a futuro de Bitcoin
• Se debe al tamaño original de 1 Mb por bloque
• En 1 bloque caben aproximadamente entre 2048 a 6200 transacciones (la media
es 0,5kb x transacción aprox.) y es capaz de procesar en torno a las 300.000
transacciones diarias (VISA procesa 150 millones al día)
• O lo que es lo mismo en el mejor de los casos 7 transacciones/sg
• Si la transacción no cabe en este bloque, tiene que esperar hasta que se
resuelvan otro
• Puede estar:
• Indefinidamente esperando o
• Tener que aumentar la tarifa de transacción
ESCALABILIDAD (2)
30
• La cadena de bloques se almacena completa en disco (90Gb)
• Para soportar 2000 tps (VISA) se necesitaría un bloque de 600 Mg
• No es un problema de proceso de CPU
• Es un problema de propagación por la red cada 10 minutos
• Es un problema de espacio
• Si toda la población del planeta usara Bitcoin 6.5 TB al día y 2.32
Petabytes al año
• ¿Soluciones?:
• ¿Aumentar el tamaño del bloque? (BIP102 / Jeff Garzik)
• ¿Aumentar la velocidad de minado? (Sergio Lerner)
ES UN PROBLEMA PARA HABLAR LARGO Y
TENDIDO
ESCALABILIDAD (Y 3)
31
• Soluciones
• Lightning Network (Lightning Labs)
• Bloques dinámicos
• Invertible Bloom Lookup Table (IBLTS) / Weak blocks
• Cadenas Laterales
• Testigos Segregados
• Alternativas:
• Bitcoin Core (0.13.2)
• Bitcoin XT (0.11.0F)
• Bitcoin Classic (1.2.0)
• Bitcoin Unlimited (0.12.1)
LA RED BITCOIN
32
LA RED BITCOIN (1)
33
• La Red Bitcoin es un supercomputador que a finales de 2013 era 210 veces más
potente que los 500 mayores supercomputadores juntos (comparando FLOPS vs
hashes/s). En abril de 2014, la potencia computacional de la red era de más de
50 petahashes/s o 50.000 billones de hashes/s.
Potencia computacional de la Red Bitcoin.
LA RED BITCOIN (2)
34
Más de 5000 nodos soportan la Red Bitcoin
LA RED BITCOIN (3)
35
• Hay diferentes tipos de nodos:
• Broadcast Only Node
• Solo emiten transacciones (dispositivos móviles y carteras simples)
• Son los que menos capacidad de cómputo tienen
• Puerta de entrada a la Red Bitcoin de la mayor parte de los usuarios
domésticos
• Relay Node
• Retransmiten y propagan transacciones
• Verifican el formato de la transacción
• firmas correctas y que el dinero que se está transfiriendo está en la
cuenta de origen, validándolo contra la versión más actualizada de
la cadena de bloques.
• deberemos abrir el puerto 8333
LA RED BITCOIN (4)
36
• Hay diferentes tipos de nodos:
• Mining Node
• A parte de las funciones Relay Node realizan el proceso de mineria
• Actualmente equipos ASIC (Application Specific Integrated Ciurcuit)
• Funcionan agrupándose en pools de minería para aumentar su poder de
computación
LA RED BITCOIN (5)
37
Circuitos ASIC (Application Specific Integrated Ciurcuit), diseñados específicamente
para resolver los problemas criptográficos del protocolo Bitcoin. Y “minero”
Terraminer.
LA RED BITCOIN (6)
38
• Bitcoin tiene tres redes de operación:
• Elegimos cambiando “bicoin.conf”
• MainNet
• La red principal
• Puerto 8333
• Puerto RPC 8332
• Cabecera de bloque 0xF9BEB4D9
• La dificultad se incrementa en función de la
potencia de la red
LA RED BITCOIN (7)
39
• Bitcoin tiene tres redes de operación:
• TestNet (testnet = 1)
• Se utiliza para testing de Bitcoin o pruebas de integración
• Ha habido tres generaciones (TestNet1, TestNet2, TestNet3)
• TestNet3  Es la versión actual (Bitcoin 0.7)
• 21 de Diciembre 2015  Testigos Segregados
• http://tpfaucet.appspot.com/
• Puerto 18333 / Puerto RPC 18332 / Las direcciones empiezan por m o 2
• Diferente Bloque Génesis
• Diferente cabecera de bloque 0x0B110907 (0xF9BEB4D9)
• La dificultad funciona de un modo diferente
• Por defecto es 1 (cada 20 minutos si no se encuentra un bloque)
LA RED BITCOIN (Y 8)
40
• Bitcoin tiene tres redes de operación:
• RegNet(-regtest)
• Se utiliza para desarrollo (Bitcoin 0.9 en 2014)
• No necesita interactuar con otros pares
• No es necesario una gran potencia para usarla
• Tenemos control total para generar monedas en segundos
• Tiene su propio bloque genesis
• A partir del bloque 101 quedan confirmadas
• Solo los primeros 150 bloques pagan 50 BTCs
SATOSHI NAKAMOTO
41
¿QUIÉN HA CREADO BITCOIN? (1)
• El artículo original y el software se creó bajo el pseudónimo
de un tal Satoshi Nakamoto en 2008
• Bitcoin. A Peer-to-Peer Electronic Cash System
42
¿QUIÉN HA CREADO BITCOIN? (1)
• El artículo original y el software se creó bajo el pseudónimo
de un tal Satoshi Nakamoto en 2008
• Bitcoin. A Peer-to-Peer Electronic Cash System
• La Red Bitcoin se puso en marcha el día 3 de Enero de
2009, creando los primeros Bitcoin
• La tecnología que hay detrás de Bitcoin, la Blockchain o
Cadena de Bloques, utiliza conceptos criptográficos y
matemáticos que tienen más de 30 años.
43
¿QUIÉN HA CREADO BITCOIN? (1)
• El artículo original y el software se creó bajo el pseudónimo
de un tal Satoshi Nakamoto en 2008
• Bitcoin. A Peer-to-Peer Electronic Cash System
• La Red Bitcoin se puso en marcha el día 3 de Enero de
2009, creando los primeros Bitcoin
• La tecnología que hay detrás de Bitcoin, la Blockchain o
Cadena de Bloques, utiliza conceptos criptográficos y
matemáticos que tienen más de 30 años.
• Motivación:
• The Times, 03 / Ene / 2009 Al borde del segundo plan de rescate para los
bancos
44
¿QUIÉN HA CREADO BITCOIN? (2)
• ¿Quién es Satoshi Nakamoto? (1)
• Nadie lo sabe exactamente
• El último mensaje de Satoshi Nakamoto se publicó a finales de 2010
(www.bitcoin.org) y cedió el liderazgo a Gavin Andresen
• Según la revista Newsweek es un ingeniero japonés llamado Satoshi
Dorian Nakamoto
45
¿QUIÉN HA CREADO BITCOIN? (3)
• ¿Quién es Satoshi Nakamoto? (3)
• Según Wired el caradura de Craig Wright
• Según los lingüistas el criptógrafo Nick Szabo
• La realidad es que: solo Satoshi Nakamoto puede descubrir a
Satoshi Nakamoto
46
¿QUIÉN HA CREADO BITCOIN? (Y 4)
• ¿Quién es Satoshi Nakamoto? (y 4)
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.7 (MingW32)
mQGiBEkJ+qcRBADKDTcZlYDRtP1Q7/ShuzBJzUh9hoVVowogf2W07U6G9BqKW24rpiOxYmErjMFfvNtozNk+33cd/sq3gi05O1IMmZzg2rbF4ne5t3iplXnNuzN
h+j+6VxxA16GPhBRprvnng8r9GYALLUpo9Xk17KE429YYKFgVvtTPtEGUlpO1EwCg7FmWdBbRp4mn5GfxQNT1hzp9WgkD/3pZ0cB5m4enzfylOHXmRfJKBMF
02ZDnsY1GqeHv/LjkhCusTp2qz4thLycYOFKGmAddpVnMsE/TYZLgpsxjrJsrEPNSdoXk3IgEStowmXjTfr9xNOrB20Qk0ZOO1mipOWMgse4PmIu02X24OapWt
yhdHsX3oBLcwDdke8aEgAh8A/sHlK7fL1Bi8rFzx6hb+2yIlD/fazMBVZUe0r2uo7ldqEz5+GeEiBFignd5HHhqjJw8rUJkfeZBoTKYlDKo7XDrTRxfyzNuZZPxBL Tj+k
eY8WgYhQ5MWsSC2MX7FZHaJddYa0pzUmFZmQh0ydulVUQnLKzRSunsjGOnmxiWBZwb6bQjU2F0b3NoaSBOYWthbW90byA8c2F0b3NoaW5AZ214LmNvb
T6IYAQTEQIAIAUCSQn6pwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBjAnoZeyUihXGMAnjiWJ0fvmSgSM3o6Tu3qRME9GN7QAKCGrFw9SUD0e
9/YDcqhX1aPMrYue7kCDQRJCfqnEAgA9OTCjLa6Sj7tdZcQxNufsDSCSB+yznIGzFGXXpJk7GgKmX3H9Zl4E6zJTQGXL2GAV4klkSfNtvgsSGJKqCnebuZVwutyq1
vXRNVFPQFvLVVo2jJCBHWjb03fmXmavIUtRCHoc8xgVJMQLrwvS943GgsqSbdoKZWdTnfnEq+UaGo+Qfv66NpT3Yl0CXUiNBITZOJcJdjHDTBOXRqomX2WSg
uv+btYdhQGGQiaEx73XMftXNCxbOpqwsODQns7xTcl2ENru9BNIQMEI7L9FYBQUiKHm1k6RrBy1as8XElS2jEos7GAmlfF1wShFUX+NF1VOPdbN3ZdFoWqsUj
Kk+QbrwADBQgA9DiD4+uuRhwk2B1TmtrXnwwhcdkE7ZbLHjxBfCsLPAZiPh8cICfV3S418i4H1YCz2ItcnC8KAPoS6mipyS28AU1B7zJYPODBn8E7aPSPzHJfud
MKMqiCHljVJrE23xsKTC0sIhhSKcr2G+6ARoG5lwuoqJqEyDrblVQQFpVxBNPHSTquO5PoLXQc7PKgC5SyQuZbEALEkItl2SL2yBRRGOlVJLnvZ6eaovkAlgsbGdl i
eOr0UwWuJCwzZuBDruMYAfyQBvYfXZun3Zm84rW7Jclp18mXITwGCVHg/P5n7QMbBfZQA25ymkuj636Nqh+c4zRnSINfyrDcID7AcqEb6IhJBBgRAgAJBQJJC
fqnAhsMAAoJEBjAnoZeyUihPrcAniVWl5M44RuGctJe+IMNX4eVkC08AJ9v7cXsp5uDdQNo8q38RHwN4Gk8w== =3FTe
-----END PGP PUBLIC KEY BLOCK-----
47
QUIERO CONSEGUIR BITCOIN
48
COMO CONSIGO BITCOIN
49
• Me hago minero
• Los cambio por otra divisa Euros/Dólar/Yen…
• Brokers (Coinbase / Bitstamp / Kraken )
• Cajeros
• Me pagan por mi trabajo con él
• Coinality.com / Cryptogrind.com / Bitcoin-
Vacancy.com
• Consigo fracciones en Pay per View
• Faucets (Btcclicks / Bitsforclicks )
Cajero Lamassu. Pagando en fiat y
escanenado un código QR se obtienen
BTC.
Cajero RoboCoin. Primer cajero
bidireccional del mundo
50
VEAMOS BITCOIN “POR DENTRO”
51
¿QUÉ NECESITO COMO USUARIO?
• Para usar Bitcoin solo necesito:
• Saber cómo funciona una billetera o monedero
digital.
• Que es una dirección Bitcoin
• Como asegurar nuestro dinero (probablemente el
paso más importante para evitar que nuestro dinero
pueda verse comprometido)
• Y saber cómo enviar y recibir pagos.
52
BILLETERAS
53
DEMO BITCOIN CORE
54
SIGAMOS VIENDO BITCOIN “POR DENTRO”
55
¿QUÉ NECESITO PARA ENTENDERLO?
• Recordar:
• La teoría que hay detrás tiene más de 30 años
• Entender lo que hay por detrás necesitamos:
• Saber que son las funciones Hash
• Como funciona la criptografía de clave pública (firmas
digitales)
• Para qué sirven las Curvas Elípticas
• Números aleatorios y nonces
• Transacciones
• Minería (Cadena de Bloques y Prueba de Trabajo)
56
FUNCIONES HASH (1)
• Algoritmo que toma como entrada unos datos de longitud
cualquiera (el mensaje) y devuelve una cadena de bits de
longitud fija (el hash).
• El propósito de un hash no es ocultar información sino
garantizar la integridad
• Características
• Eficiencia en la computación. Rapidez de cálculo
• Resistencia a preimagen. Debe ser computacionalmente
muy difícil generar el mensaje a partir del cual se ha
derivado el resumen.
• Resistencia a colisión. Debe ser computacionalmente muy
difícil generar dos mensajes diferentes y que el hash de
ellos sea el mismo. 57
FUNCIONES HASH (2)
• Bitcoin usa: SHA-256 y RIPEMD-160
• Bitcoin los usa para:
• Generar las direcciones Bitcoin
• En el proceso de minería (prueba de trabajo)
• Identificador de transacciones
• Por regla general Bitcoin siempre aplica dos veces el algoritmo
de hash:
SHA-256 ( SHA-256 ( “perro” ) )
2efe5fccbc3639fe5fd4582926c84d2e456a58033096cc1d
554701d3474f95e9
58
FUNCIONES HASH (3)
59
Las colisiones existen siempre, no importa la función Hash…
Si probamos 2130 entradas aleatorias, existe una probabilidad del 99,8%
de que dos colisionaran
“Solo” es una cuestión de tiempo
FUNCIONES HASH (4)
60
“Solo” es una cuestión de tiempo
Se ha comprobado que encontrar una colisión de SHA-256
Se necesitan una complejidad temporal de 2253.5
Con los ordenadores actuales se tardaría varios miles
de años en encontrar la colisión
FUNCIONES HASH (5)
• SHA-256 (Secure Hash Algorithm)
• Pertenece a la familia SHA-2
• Diseñado por la NSA
• Pero validado por el NIST (National Institute of Standards and
Technology)
• Acepta entradas de 264
• Genera una salida es de 256 bits
• Para jugar:
• http://passwordsgenerator.net/sha256-hash-generator/
61
FUNCIONES HASH (Y 6)
• RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest
• Creado en 1996 por una comunidad académica abierta:
• Hans Dobbertin, Antoon Bosselaers y Bart Preneel
• Genera una salida de 160 bits (tiene versiones 128, 256 y 320)
• Bitcoin lo utiliza cuando necesita crear salidas más cortas de 256
bits
• No hay una razón aparente por el cual se eligió la combinación
SHA-256 + RIPEDM-160
• Se suele aceptar que fue porque es la combinación que genera
los hashes más cortos que se pueden considerar seguros
62
CRIPTOGRAFÍA DE CLAVE PUBLICA (1)
• Criptografía Asimétrica / Criptografía de Dos Claves
• Se basa en el uso de dos claves para el envío de un
mensaje:
• Ambas claves pertenecen a la misma persona
• Una clave es pública (todo el mundo la conoce)
• Otra clave es privada (solo la conoce el emisor del
mensaje)
• Son complementarias
• Una de sus aplicaciones es la Firma Digital
• Bitcoin usa las firmas digitales para verificar quien está
autorizado a transferir las monedas 63
Tres tipos de problemas matemático en el que basan su seguridad:
• El Problema de Factorización Entera: RSA y Rabin Williams (RW)
• El Problema del Logaritmo Discreto: Diffie Hellman (DH) y el
sistema DSA
• El Problema del Logaritmo Discreto Elíptico: DSAE, NRE, MQV y
por supuesto las curvas elípticas (CEE).
Lectura recomendada:
http://www.uv.es/~ivorra/Libros/Elipticas.pdf
CRIPTOGRAFÍA DE CLAVE PUBLICA (2)
64
1. Ana redacta un mensaje
2. Ana cifra el mensaje con la clave pública de David
3. Ana envía el mensaje cifrado a David a través de Internet
4. David recibe el mensaje cifrado y lo descifra con su clave privada
5. David ya puede leer el mensaje original que le mandó Ana
CRIPTOGRAFÍA DE CLAVE PUBLICA (3)
65
1. David redacta un mensaje
2. David firma digitalmente el mensaje con su clave privada
3. David envía el mensaje firmado digitalmente a Ana a través de Internet
4. Ana recibe el mensaje firmado digitalmente y comprueba su autenticidad
usando la clave pública de David
5. Ana ya puede leer el mensaje con total seguridad de que ha sido David el
remitente
Integridad
Se puede detectar si el mensaje original fue modificado.
No repudio
El autor del mensaje no puede decir que no lo hizo.
Autenticidad
El emisor del mensaje queda acreditado, y su “firma
electrónica” tendrá la misma validez que una firma
autógrafa.
Confidencialidad
La información contenida en el mensaje puede ser cifrada
o codificada, para que sólo el receptor pueda descifrarla.
CRIPTOGRAFÍA DE CLAVE PUBLICA (Y 4)
66
• El tamaño de las claves importa:
• A mayor tamaño de clave más resistente es a un criptoanálisis
• Más difícil es aleatoriamente generar dos claves iguales
• Bitcoin:
• Utiliza tamaños de clave de 256 bits
• Para generarlas utiliza Curvas Elípticas
CURVAS ELÍPTICAS (1)
67
• Propuestas por Neal Koblitz y Victor Miller en 1985
• Se basan en las matemáticas de las curvas elípticas
• Es un sistema muy seguro de generación de claves:
• Pero es más eficiente, rápida y escalable
• Genera claves más pequeñas con el mismo nivel de seguridad
• Se utiliza por Bitcoin para obtener las claves públicas (las direcciones Bitcoin) y
firmar/verificar las transacciones
RSA
CURVAS
ELIPTICAS
TAMAÑO
CLAVE
2048 256
120 120 120
CURVAS ELÍPTICAS (Y 2)
68
• Supongamos el siguiente escenario:
• Otros sistemas suelen usar números primos muy grandes y realizar operaciones
con ellos
• Las curvas elípticas en vez de números primos usan coordenadas en una curva
elíptica, que en general se corresponden con esta ecuación:
y2 = x3 + ax + b
CLAVE
PRIVADA
456 645 835 2345
ALGORITMO 4*5*6 6*4*5 8*3*5 2*3*4*5
CLAVE
PUBLICA
120 120 120 120
Irreversibilidad
¿A quien pertenece 120?
Según los valores de a y b la forma de la curva es diferente
Bitcoin usa los valores a = 0 y b = 7
BITCOIN ADDRESSES (1)
• Sirve para reclamar la posesión del dinero, el dinero se asocia a ella.
• Tienen una longitud de 34 caracteres y diferencias mayúsculas de minúsculas
• Comienzan por 1 o por 3 (multifirma)
• Está compuesta por un par de claves: Criptografía de clave pública.
• Se pueden generar por cualquier persona y sin conexión
• Esto es debido a que no hay constancia de su existencia hasta que recibe un
pago
• Se basa en la criptografía de Curva Elíptica que acabamos de ver
• Llamamos Monedero a un fichero donde almacenamos varias direcciones.
• Pueden ser impresas en papel con códigos QR.
• El proceso de generación lleva 10 pasos
• Ejemplo: bitaddress.org
69
Se permite del 1 al 9, de la A a la Z y de la a a la z,
y se omiten los caracteres siguientes: 0 (cero), O
(o mayúscula), I (i mayúscula) y l (L minúscula)
BITCOIN ADDRESSES (2)
• Paso 1: Tener una clave privada del tipo ECDSA de 65 bytes (de estos 32 bytes se
corresponden a la coordenada X y otros 32 bytes corresponden a la coordenada
Y)
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
• Paso 2: Generar la clave pública a partir de la anterior, obtendríamos una
ristra de datos como los siguientes (Satoshi podría haber decidido usarla
como la dirección Bitcoin, sin embargo por motivos obvios no lo hizo):
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352
2CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
70
BITCOIN ADDRESSES (3)
• Paso 3: Hacer un hash con SHA-256 sobre la clave pública anterior:
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
• Paso 4: Aplicamos un hash con RIPEMD-160 sobre el resultado anterior:
010966776006953D5567439E5E39F86A0D273BEE
• Paso 5: Añadir un byte adicional al hash de antes para obtener una versión RIPEMD-
160 extendida. Este byte es el denominado byte de versión, y permite distinguir una
dirección Bitcoin del de otras criptomonedas. Si estamos usando la red principal de
Bitcoin será un 0x00 (formato hexadecimal):
00010966776006953D5567439E5E39F86A0D273BEE
71
BITCOIN ADDRESSES (4)
• Paso 6: Toca hacer otro hash 256 sobre el RIPEMD-160 extendido:
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
• Paso 7: Y otro hash adicional SHA-256 sobre el anterior que nos va a servir para
crear los dígitos de control de la dirección:
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
• Paso 8: Seleccionar los primeros 4 bytes del último hash, este será el identificativo
checksum de la dirección pública:
D61967F6 (igual es más fácil ver los 4 bytes de esta forma D6-19-67-F6)
72
BITCOIN ADDRESSES (5)
73
• Paso 9: Añadir los 4 bytes del checksum del punto anterior al hash
extendido RIPEMD-160 del punto 4, obteniendo una dirección Bitcoin de 25
bytes binaria:
00010966776006953D5567439E5E39F86A0D273BEED61967F6
• Paso 10: Convertir el resultado de la cadena anterior a una cadena con
Base58 utilizando el codificado Base58Check (crea los 34 caracteres)
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
BITCOIN ADDRESSES (6)
74
• Todo esto afecta a los tipos de Billetera. Dos clases:
• No deterministas
• Cada clave privada se asocia a una clave publica
• Si pierdo la clave privada no puede restaurar la dirección
• Deterministas
• para generar las direcciones públicas la curvas elípticas tienen como entrada
una semilla que usan en sus cálculos
• Si conozco la semilla puedo restaurar mi billetera si la pierdo
• Hay dos tipos:
• Billetera Determinista de Tipo 1
• Billetera Determinista Jerárquica de Tipo 2
BITCOIN ADDRESSES (Y 7)
75
• Billetera Determinista de Tipo 1
• Es el modelo más simple
• Para generar la clave privada se parte de ejecutar la función SHA256
(cadena conocida + n), donde n es un código ASCII que comienza en 1 y
se va incrementando según se van necesitando nuevas claves.
• Billetera Determinista Jerárquica de Tipo 2
• Se describe en la BIP 0032 (Gregory Maxwell)
• La semilla es un valor aleatorio de 128 bits (o 12 palabras comunes en
inglés para ayudarle a recordar.
• La semilla es usada después de realizar 100.000 pasadas sobre SHA256 a
fin de mejorar la fortaleza y reducir los ataques contra palabras usadas
por el usuario que puedan resultar fáciles de atacar.
DIRECCIONES DE VANIDAD
76
• Es un caso particular de las direcciones Bitcoin
• Aumentan el riesgo de ser identificado
• Son direcciones que intentan que la secuencia de caracteres que forma la
dirección tenga un formato más amigable y amable, como una forma de
personalizarla
1LibroBitcoi8ALj6mfBsbifRoD4miY36v
1SantiagoFVj8ALj6mfBsbifRoD4miY36v
• Una vez generadas se pueden importar dentro de las billeteras
importprivkey
NÚMEROS ALEATORIOS Y NONCES
77
• nonces son números aleatorios “especiales” que, en
principio, sólo se utilizan una vez (number used only
once)
• Bitcoin los utiliza para la generación de los bloques en la
prueba de trabajo
• Las curvas elípticas también los usan en sus
operaciones internas
TRANSACCIONES (1)
78
• Son registros firmados digitalmente que cambian el propietario de fondos
asignándolos a otra dirección
• Se componen de:
• entradas: registros que referencian los fondos (direcciones) de
transacciones previas
• salidas: registros que determinan el nuevo propietario de los fondos
transferidos (direccion)
• Las salidas actúan como entradas de otras transacciones
• Siempre se utiliza todo el dinero que hay en la entrada aunque la
cantidad a pagar sea menor
• La diferencia se asocia a una salida en una dirección de vuelta (el
equivalente a que nos den el cambio)
TRANSACCIONES (2)
79
• Cada entrada (input) de una transacción es firmada digitalmente por el pagador,
lo que desbloquea los fondos contenidos en la dirección asociada a la clave
privada utilizada para firmar
• Si la firma no es válida la transacción se invalida y se desecha
• Esto lo hace el primer nodo que la recibe
• Si Bitcoin(entrada) > Bitcoin (salida)
• se considera tasa de transacción
• quien incluya esa transacción en la cadena de bloques puede disponer de
esa cantidad
• Transacciones con tasas mayores son procesadas más rápido
• Hay transacciones especiales que suponen la creación de nuevo Bitcoin que son
generadas a través de la minería por lo que no tienen entradas
TRANSACCIONES (3)
80
• Tipos de transacciones (1):
Normales
TRANSACCIONES (4)
81
• Tipos de transacciones (2):
Transacciones de agregación de fondos
TRANSACCIONES (5)
82
• Tipos de transacciones (y 3):
Transacciones de distribución de fondos
TRANSACCIONES (6)
83
• 1 . El usuario firma la transacción y la envía a un minero.
TRANSACCIONES (7)
• 1 . El usuario firma la transacción y la envía a un minero.
• 2 . La transacción es cacheada por todos los mineros en activo.
84
TRANSACCIONES (8)
• 1 . El usuario firma la transacción (se valida por un nodo) y la envía a un minero.
• 2 . La transacción es cacheada por todos los mineros en activo.
• 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en
que se llevará a cabo (la cadena mas larga prevalece).
85
TRANSACCIONES (9)
• 1 . El usuario firma la transacción y la envía a un minero.
• 2 . La transacción es cacheada por todos los mineros en activo.
• 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en
que se llevará a cabo (la cadena mas larga prevalece).
• Pero… ¿Y si alguien controla el 51% de la red?
86
TRANSACCIONES (10)
• 1 . El usuario firma la transacción y la envía a un minero.
• 2 . La transacción es cacheada por todos los mineros en activo.
• 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en
que se llevará a cabo (la cadena mas larga prevalece).
• Pero… ¿Y si alguien controla el 51% de la red?
• Existe algo llamado “Cadena de Bloques”. Funciona como un libro de cuentas de
todas las transacciones hechas hasta ahora en BitCoin.
87
TRANSACCIONES (Y 11)
• 1 . El usuario firma la transacción y la envía a un minero.
• 2 . La transacción es cacheada por todos los mineros en activo.
• 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en
que se llevará a cabo (la cadena mas larga prevalece).
• Pero… ¿Y si alguien controla el 51% de la red?
• Existe algo llamado “Cadena de Bloques”. Funciona como un libro de cuentas de
todas las transacciones hechas hasta ahora en BitCoin.
• Cuando un minero descubre un nuevo bloque (similar a una nueva página de
este libro de cuentas), graba en él las nuevas transacciones.
Sólo entonces podemos garantizar la transacción.
88
PERO NO TODO ES TAN FACIL
89
BTSL – BITCOIN TRANSACTION SCRYPT (1)
90
• El movimiento del dinero no es tan simple como cambiar un
dato en una base de datos distribuida
• El movimiento de dinero se hace previa a la ejecución de un
script que determina las reglas que debe seguir ese
movimiento de dinero
• Ese script está programado en BTSL o Bitcoin Transaction
Scrypt Language
• Opera con una estructura tipo LIFO
• Las operaciones se ejecutan de izquierda a derecha
• No es Turing Completo (no tiene bucles)
P3 P1
m=“P3 envia 3 monedas a
P1”
s=Sig(sk3,m)
If
Ver(pk3,m,s) = OK
and
P3 tiene un balance
de 3
then
return accept
BTSL – BITCOIN TRANSACTION SCRYPT (2)
BTSL – BITCOIN TRANSACTION SCRYPT (Y 3)
92
CADENA DE BLOQUES (1)
• Es un libro de cuentas con todos los movimientos de BTC.
• Su elemento constituyente es el Bloque
• Crear el siguiente bloque de la cadena requiere mucho tiempo y
computación, los mineros trabajan buscando el siguiente bloque.
• Los mineros almacenan temporalmente las transacciones y las
distribuyen entre ellos, cuando uno encuentra un nuevo bloque
válido graba las transacciones en el nuevo bloque y quedan
validadas.
• Puede haber varias cadenas, pero los mineros escuchan la mas larga
y descartan las más cortas.
• Generar una cadena más larga que la que ya existe sería improbable
en tiempo y esfuerzo (ataque del 51%)
93
CADENA DE BLOQUES (2)
94
• Un bloque es un registro que contiene transacciones que se
encontraban pendientes
• Se generan aproximadamente cada 10 minutos
• En función del poder computacional se ajusta la dificultad de la
red para que tienda a 10 minutos
• Al resolver un bloque el minero recibe la recompensa (12,5
BTCs). Esta recompensas recibe el nombre de coinbase
• Cada 4 años (210.000 bloques) se produce un halving que
reduce la recompensa a la mitad (la recompensa tiende a 0
asintóticamente - año 2140)
• A medida que se añaden bloques, las transacciones son más
seguras (esto se denomina confirmación)
CADENA DE BLOQUES (3)
95
• Un bloque es una estructura de datos como la siguiente:
CADENA DE BLOQUES (4)
96
• Cada minero compite con el resto para resolver un problema
criptográfico y añadir su bloque a la cadena de bloques.
• Es un problema tipo de prueba y error (fuerza bruta) que recibe el
nombre de Prueba de Trabajo
• Consiste en calcular el valor de un Hash con un número de 0’s
por delante usando los datos del bloque anterior
• Recalcula el valor del Nonce (usando los datos de la cabecera)
• La dificultad del problema se mide en hashes/s (número de
combinaciones/s), y se regula automáticamente cada 2016 bloques
(aprox. 2 semanas) con la potencia computacional de la red.
• Esto se hace para evitar un hackeo del double spending.
• Un atacante entraría en una carrera con el resto de nodos para
romper la integridad de la cadena de bloques.
BLOQUE GENESIS
El 3 de enero de 2009, a las 18:15:05 horas, la Red Bitcoin se pone en marcha
con el primer bloque: El Bloque Genesis (Altura 0)
Todos los nodos tienen su propia copia codificada que no puede ser alterada
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
CADENA DE BLOQUES (5)
97
• Bloques Caducados y Bloques Huérfanos
• Todos los mineros compiten contra todos
• ¿Pueden dos mineros resolver el mismo bloque a la vez?
• Puede suceder
• Pero solo uno cobrará la recompensa
• ¿Quién la cobrará?
• Gana el que anexe su bloque a la cadena más larga
• EL bloque perdedor estará caducado
• Un bloque que no tiene padre se llama bloque huérfano
• Orphan block pool
CADENA DE BLOQUES (6)
98
Minero A Minero B
Bloque
B1
Bloque
B2
B1 y B2 son válidos
B1 y B2 generados simultáneamente
B1 y B2 se propagan por la Red
Dos opciones
...
... Bloque
B1
Bloque
B3
Longitud: N+2
Bloque
B2
Longitud: N+1
B2 es válido pero no pertenece a la cadena
más larga. Se desecha. Caducado
OTROS USOS PARA BITCOIN
99
OTROS USOS DE BITCOIN
100
• Al igual que con la aparición de Internet aparecieron conceptos
nuevos como:
• web
• correo electrónico
• comercio online
• mensajería instantánea
• redes sociales
• Cloud Computing
• Etc…
• Estamos en una situación muy similar…
OTROS USOS DE BITCOIN
101
• Coloured coins: registro de la propiedad en la red bitcoin. Consiste en asociar a
una unidad de cuenta en la red (1 Satoshi) no al valor monetario de esa unidad
de cuenta, sino a un activo o a información. Permitiría comerciar con cualquier
tipo de activo (acciones, inmuebles, oro, etc.) o gestionar información sensible
(votos, etc). Por ejemplo, si dos empresas A y B firman un contrato legal donde
se comprometen a confíar en esa red automatizada, podría llegar a tener validez
jurídica.
• Smart contracts: es un contrato programable. Se programa un contrato con unas
reglas, se sube el contrato a la red, y la transacción queda pendiente hasta que
se verifiquen las reglas del contrato. Automatizaría muchos procesos en finanzas
(derivados) y economía (contratos legales, crowdfunding, etc.).
• Smart property: la propiedad reconoce al dueño al estar en un registro de la
propiedad en Internet (coloured coins). Mediante identificación biométrica, se
podrían usar con smart contracts. Ejemplo: Yo te presto 3.5 BTC, y tú pones
como aval tu coche. Si no me devuelves el dinero, el coche ya no te reconoce
como dueño.
OTROS USOS DE BITCOIN
102
• Internet de las cosas: sensores que ofrezcan datos a cambio de fracciones de
bitcoin o dispositivos con monederos integrados.
Ejemplo: frigorífico inteligente que
nos permita hacer la compra a través
de Internet con Bitcoin.
Ejemplo: una estación meteorológica, mantenida
por un particular, que se autosostenga
ofreciendo sus datos a cambio de fracciones de
Bitcoin.
¿PREGUNTAS?
“BitCoin is the largest socio-economic experiment the world has never seen”
(Charlie Shrem, BitCoin Foundation)
103

Más contenido relacionado

PDF
Informe de Inteco sobre BITCOIN: Una moneda criptográfica
PDF
Bitcoin 3.0
PPTX
Presentación bitcoin slideshare
PPTX
Que es bitcoin katherin abiantun y daniella andrade 11b
PDF
Presentación sobre Bitcoin - Bootcamp Incutex
PPTX
Bitcoin
PPTX
Bitcoins, Introduccion
PPTX
La mejor Presentación de Bitcoin y las criptomonedas.
Informe de Inteco sobre BITCOIN: Una moneda criptográfica
Bitcoin 3.0
Presentación bitcoin slideshare
Que es bitcoin katherin abiantun y daniella andrade 11b
Presentación sobre Bitcoin - Bootcamp Incutex
Bitcoin
Bitcoins, Introduccion
La mejor Presentación de Bitcoin y las criptomonedas.

La actualidad más candente (20)

PPTX
Bitcoins La moneda del futuro
PPTX
Por qué comprar bitcoins?
PDF
Bitcoin introduction, El Corte Inglés
PDF
Bitcoin lab @runroom
PPTX
Que es bitcoin
PPTX
Presentación sobre Bitcoin
 
PDF
La unión del bitcoin y las APIs
PDF
Bitcoin micropagos en internet
PPTX
PPTX
Dossier bitcoin
PDF
Kryptonbit presentation & compensation plan spanish fase 2.ppt
PPTX
Bitcoin: cuando los ordenadores emiten moneda
 
PPTX
Bitcoin: La moneda del Futuro
PPT
Moneda P2P: ¿Hay vida más allá de Bitcoin?
PDF
Bitcoin no se está dividiendo en dos se está actualizando
PPTX
฿Itcoin La Moneda Virtual
PDF
Bitcoin Development - Desarrollo con Bitcoin
PPTX
las criptomonedas
PDF
Presentacion Criptomonedas
PPTX
Bitcoin
Bitcoins La moneda del futuro
Por qué comprar bitcoins?
Bitcoin introduction, El Corte Inglés
Bitcoin lab @runroom
Que es bitcoin
Presentación sobre Bitcoin
 
La unión del bitcoin y las APIs
Bitcoin micropagos en internet
Dossier bitcoin
Kryptonbit presentation & compensation plan spanish fase 2.ppt
Bitcoin: cuando los ordenadores emiten moneda
 
Bitcoin: La moneda del Futuro
Moneda P2P: ¿Hay vida más allá de Bitcoin?
Bitcoin no se está dividiendo en dos se está actualizando
฿Itcoin La Moneda Virtual
Bitcoin Development - Desarrollo con Bitcoin
las criptomonedas
Presentacion Criptomonedas
Bitcoin
Publicidad

Destacado (20)

PDF
Sunstone Capital, Avalanche 2014 - Bitcoin: Primer, State of Play, Discussion
PPTX
Expert Briefing - State of Bitcoin
PPT
Bitcoin
PDF
An Introduction to BitCoin and Cryptocurrency Ecosystem
PPTX
Introduction Bitcoin
PDF
What is Bitcoin? How Bitcoin works in under 5 minutes.
PDF
Bitcoin: Today and Future
PPTX
Bitcoin technology
PPTX
Bitcoin (Global Digital Currency)
PDF
What is Bitcoin? - A guide for beginners
PPTX
Bitcoin and Blockchain Technology Explained: Not just Cryptocurrencies, Econo...
KEY
Introduction to bitcoin
PPT
El_Bitcoin
PDF
Bitcoin: The Internet of Money
PPTX
Colegio naional nicolas esguerra
PPTX
Computacion basica dinero electronico
PPTX
PPTX
PPTX
Introduction to Bitcoin & Blockchain - Societing Summer School 2015
Sunstone Capital, Avalanche 2014 - Bitcoin: Primer, State of Play, Discussion
Expert Briefing - State of Bitcoin
Bitcoin
An Introduction to BitCoin and Cryptocurrency Ecosystem
Introduction Bitcoin
What is Bitcoin? How Bitcoin works in under 5 minutes.
Bitcoin: Today and Future
Bitcoin technology
Bitcoin (Global Digital Currency)
What is Bitcoin? - A guide for beginners
Bitcoin and Blockchain Technology Explained: Not just Cryptocurrencies, Econo...
Introduction to bitcoin
El_Bitcoin
Bitcoin: The Internet of Money
Colegio naional nicolas esguerra
Computacion basica dinero electronico
Introduction to Bitcoin & Blockchain - Societing Summer School 2015
Publicidad

Similar a Bitcoin. In Crypto we Trust (20)

PDF
Más allá del dinero: Bitcoin
PDF
Bitcoin, Blockchain y más allá: Riesgos y Oportunidades
PPTX
CLASIFICACION DE CRIPTOMONEDAS
PDF
Cuando las maquinas deciden por nosotros: introducción a los contratos inteli...
PDF
Bitcoin: El TCP/IP de las finanzas
PPTX
Bitcoins en Costa Rica y el mundo
PDF
Bitcoin y Blockchain.pdf
PDF
Coinx ppt spain
PDF
Invierte en Criptomonedas
PDF
Bitcoin en español
PDF
BITCOIN: EL EXPERIMENTO
PPTX
The blockchain disruption
PDF
Bitcoins: Introducción
PPTX
CRIPTOMONEDAS.pptx Todo lo que debería saber sobre las Criptomonedas
PPTX
Unidad 1_Introducción y contexto coments.pptx
PDF
Economía Digital.pdf
PDF
PPTX
Daniel González González
Más allá del dinero: Bitcoin
Bitcoin, Blockchain y más allá: Riesgos y Oportunidades
CLASIFICACION DE CRIPTOMONEDAS
Cuando las maquinas deciden por nosotros: introducción a los contratos inteli...
Bitcoin: El TCP/IP de las finanzas
Bitcoins en Costa Rica y el mundo
Bitcoin y Blockchain.pdf
Coinx ppt spain
Invierte en Criptomonedas
Bitcoin en español
BITCOIN: EL EXPERIMENTO
The blockchain disruption
Bitcoins: Introducción
CRIPTOMONEDAS.pptx Todo lo que debería saber sobre las Criptomonedas
Unidad 1_Introducción y contexto coments.pptx
Economía Digital.pdf
Daniel González González

Más de Santiago Márquez Solís (15)

PPTX
Administración básica de ubuntu server parte 1
PPTX
Administración básica de ubuntu server parte 3
PPTX
Administración básica de ubuntu server parte 2
PPT
Tecnologia Moviles para Pymes
PPT
Fundamentos del Desarrollo de Aplicaciones para Android
PPT
Spring Security
PDF
20000801 Ericsson WAPIde
PDF
20000828 Motorola Mobile ADK
PDF
20010315 WAP Lite Gateway
PDF
20000725 UMTS y GPRS
PDF
20001231 Ericsson Gateway
PDF
20001130 Fundamentos de las Redes GSM
PDF
20001121 Introducción a VoxML
PDF
20001020 Programación ASP y WML
PDF
20001215 Programación de Servlets y WML
Administración básica de ubuntu server parte 1
Administración básica de ubuntu server parte 3
Administración básica de ubuntu server parte 2
Tecnologia Moviles para Pymes
Fundamentos del Desarrollo de Aplicaciones para Android
Spring Security
20000801 Ericsson WAPIde
20000828 Motorola Mobile ADK
20010315 WAP Lite Gateway
20000725 UMTS y GPRS
20001231 Ericsson Gateway
20001130 Fundamentos de las Redes GSM
20001121 Introducción a VoxML
20001020 Programación ASP y WML
20001215 Programación de Servlets y WML

Último (20)

PDF
prg2_t01_p01_Fundamentos POO - parte1.pdf
PDF
presentacion sobre los polimeros, como se conforman
PPTX
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
PDF
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
PDF
Pensamiento Politico Siglo XXI Peru y Mundo.pdf
PPTX
Curso Corto de PLANTA CONCENTRADORA FREEPORT
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PPTX
leyes de los gases Ideales. combustible refinación
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
DOC
informacion acerca de la crianza tecnificada de cerdos
PPTX
Gestion de seguridad y salud ocupacional.pptx
PDF
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
PPT
TRABAJOS EN ALTURA PARA OBRAS DE INGENIERIA
PDF
Módulo-de Alcance-proyectos - Definición.pdf
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PDF
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PPTX
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
DOCX
Cumplimiento normativo y realidad laboral
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
prg2_t01_p01_Fundamentos POO - parte1.pdf
presentacion sobre los polimeros, como se conforman
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
Pensamiento Politico Siglo XXI Peru y Mundo.pdf
Curso Corto de PLANTA CONCENTRADORA FREEPORT
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
leyes de los gases Ideales. combustible refinación
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
informacion acerca de la crianza tecnificada de cerdos
Gestion de seguridad y salud ocupacional.pptx
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
TRABAJOS EN ALTURA PARA OBRAS DE INGENIERIA
Módulo-de Alcance-proyectos - Definición.pdf
Sustancias Peligrosas de empresas para su correcto manejo
HISTORIA DE LA GRÚAA LO LARGO DE LOS TIEMPOSpdf
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
Cumplimiento normativo y realidad laboral
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL

Bitcoin. In Crypto we Trust

  • 1. In crypto we trust Santiago Márquez Solís UPM - 2017 1 Master en Sistemas Empotrados y Distribuidos
  • 3. 3
  • 4. ANTES DE EMPEZAR, TOCA HACER LA PREGUNTA… 4
  • 5. DE BITCOIN SE DICEN MUCHAS COSAS… 5
  • 6. 6 La prensa publica algo casi todos los meses ….
  • 7. 7
  • 8. 8
  • 9. 9 Sin contar lo que se dice “por ahí”
  • 10. Bitcoin es una exhibición de fuerza tecnológica. El mayor invento después de Internet. Bill Gates ¿Eso no es una estafa? Comercial de un banco No entiendo lo de los bitcoins, aunque tampoco entiendo a las mujeres y estoy casado. Trader de Bitcoin Bitcoin es malo. Paul Krugman (profesor economía de Princeton) 10
  • 11. El valor del Bitcoin es cercano a cero. Xavier Sala-i-Martín (profesor economía de Harvard) Bitcoin es un activo [digital] que se está monetizando. Juan Ramón Rallo (Economista) Bitcoin es un esquema Ponzi. El Dinero de la Deep Web. Nouriel Roubini (presidente de RGE Monitor) Bitcoin es un experimento. No pongáis todos vuestros ahorros ahí. Jeff Garzik (core developer del protocolo) 11
  • 13. DATOS IMPORTANTES PARA SITUARNOS 13
  • 14. DOS “VISIONES” 14 BITCOIN NUEVO MODELO ECONOMICO BLOCKCHAIN BLOCKCHAIN DISTRIBUTED LAYER TECHNOLOGY o DLT (Public / Private) ¿MARTILLO DE ORO? "When the wise man points at the Bitcoin, the idiot looks at the Blockchain" – (Quasi-)Confucius.
  • 15. 15 Inversión Empresas Internet vs Inversión Empresas Bitcoin
  • 16. 16 Evolución del Precio de Bitcoin 1 BTC aprox unos 820 dólares (17/01/2017) Capitalización Total Actual: 13.214.808.150 dólares (16 millones de BTCs) (más o menos) (17/01/2017)
  • 18. EN ESPAÑA… • Bitcoin está reconocido como medio de pago y es equiparable a otra divisa (consulta vinculante V1029-15 de Hacienda)  no se cobra IVA • Todas las empresas que cobran en Bitcoin están obligadas a tener un libro contable con las direcciones y transacciones que realizan • Si eres minero tienes que registrarte como autónomo y pagar la cuota mensual (Consulta V3625-16) 18
  • 20. ¿QUÉ ES EL DINERO? • Activos que son valiosos por su escasez • Sirven para intercambiarlos por bienes y servicios • Los bienes escasos se empezaron a usar como dinero: Oro • Se crea la Moneda Fiducidaria: Oro respalda un título de cambio • Nadie viene a reclamar ese oro con su título, ¿Emitimos títulos sin respaldo a cambio de oro? • 1971, Nixon dice que se acabó reclamar el oro y convierte la Moneda Fiducidaria en Moneda FIAT, basada en la deuda. • Se obliga a la población a utilizar una moneda, con autoridad central. El dinero pasa a ser IMAGINARIO, sin respaldo físico. 20 “Si el dinero es bueno y la gente lo acepta voluntariamente, ¿qué necesidad hay de leyes de curso forzoso? Si el dinero no es bueno, ¿cómo se puede en una democracia obligar al pueblo a utilizarlo?” Larry Parks
  • 21. PRINCIPIOS DE LAS MONEDAS ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION 21
  • 22. PROBLEMAS ECONÓMICOS • Al ser un sistema basado en la deuda, puede crecer indefinidamente. • Empobrecimiento del Ahorro • Un modelo de crecimiento ilimitado en un contexto de recursos limitados no es sostenible • Al menos no solo con los recursos del planeta Tierra • Nanotecnología?? • Conquista Espacial?? 22
  • 24. ¿QUÉ ES BITCOIN? (1) 24 • Es una moneda electrónica. • No tiene autoridad central (sistema descentralizado) • Se transfiere de persona a persona de forma irreversible. • Está limitada, no se pueden crear más de 21M de BTC. • Se puede dividir en 100.000.000 millones de unidades (mBTC o uBTC) • Cada subunidad recibe el nombre de Satoshi • 1 BTC = 100.000.000 de Satoshis
  • 25. ¿QUÉ ES BITCOIN? (2) 25 • Bitcoin funciona como una red P2P (BitTorrent/eMule) • Procesa Transacciones 24x7x365 • Cualquiera puede ser un nodo en la Red • Una transacción es un pago entre dos entes (casi anónimo) • Las transacciones se agrupan en Bloques • Los Bloques forman una larga cadena o Blockchain • Los bloques los crean los Mineros
  • 26. ¿QUÉ ES BITCOIN? (Y 3) 26 • VENTAJAS: • Hacer un pago con Bitcoin es como enviar un correo electrónico. • Las comisiones son mínimas. • La transferencia tarda 5-10 min vs p.ej. transferencia SEPA (sólo en la UE) es de 1-3 días laborables (escalabilidad) • Es casi anónimo • Reserva de Valor • Bancarización Mundial • Micropagos: donaciones, propinas
  • 28. PROBLEMAS QUE AFRONTA BITCOIN 28 • La moneda es un instrumento de control de los gobiernos. Impuestos. Control de capitales y aumento de patrimonio. Actividades ilegales. • Desafía a gente muy poderosa. Cuánto más gente utiliza Bitcoin, menos vale el trabajo de un banquero. • Actualmente es muy volátil. • Cuesta de entender para el gran público. • Cuesta creer que el Bitcoin sea moneda. Es moneda virtual. • Eventualmente podría sufrir ataques (DoS), fallos por bugs de programación en el protocolo, etc. • Problema de Escalabilidad
  • 29. ESCALABILIDAD (1) 29 • Probablemente es el problema más importante a futuro de Bitcoin • Se debe al tamaño original de 1 Mb por bloque • En 1 bloque caben aproximadamente entre 2048 a 6200 transacciones (la media es 0,5kb x transacción aprox.) y es capaz de procesar en torno a las 300.000 transacciones diarias (VISA procesa 150 millones al día) • O lo que es lo mismo en el mejor de los casos 7 transacciones/sg • Si la transacción no cabe en este bloque, tiene que esperar hasta que se resuelvan otro • Puede estar: • Indefinidamente esperando o • Tener que aumentar la tarifa de transacción
  • 30. ESCALABILIDAD (2) 30 • La cadena de bloques se almacena completa en disco (90Gb) • Para soportar 2000 tps (VISA) se necesitaría un bloque de 600 Mg • No es un problema de proceso de CPU • Es un problema de propagación por la red cada 10 minutos • Es un problema de espacio • Si toda la población del planeta usara Bitcoin 6.5 TB al día y 2.32 Petabytes al año • ¿Soluciones?: • ¿Aumentar el tamaño del bloque? (BIP102 / Jeff Garzik) • ¿Aumentar la velocidad de minado? (Sergio Lerner) ES UN PROBLEMA PARA HABLAR LARGO Y TENDIDO
  • 31. ESCALABILIDAD (Y 3) 31 • Soluciones • Lightning Network (Lightning Labs) • Bloques dinámicos • Invertible Bloom Lookup Table (IBLTS) / Weak blocks • Cadenas Laterales • Testigos Segregados • Alternativas: • Bitcoin Core (0.13.2) • Bitcoin XT (0.11.0F) • Bitcoin Classic (1.2.0) • Bitcoin Unlimited (0.12.1)
  • 33. LA RED BITCOIN (1) 33 • La Red Bitcoin es un supercomputador que a finales de 2013 era 210 veces más potente que los 500 mayores supercomputadores juntos (comparando FLOPS vs hashes/s). En abril de 2014, la potencia computacional de la red era de más de 50 petahashes/s o 50.000 billones de hashes/s. Potencia computacional de la Red Bitcoin.
  • 34. LA RED BITCOIN (2) 34 Más de 5000 nodos soportan la Red Bitcoin
  • 35. LA RED BITCOIN (3) 35 • Hay diferentes tipos de nodos: • Broadcast Only Node • Solo emiten transacciones (dispositivos móviles y carteras simples) • Son los que menos capacidad de cómputo tienen • Puerta de entrada a la Red Bitcoin de la mayor parte de los usuarios domésticos • Relay Node • Retransmiten y propagan transacciones • Verifican el formato de la transacción • firmas correctas y que el dinero que se está transfiriendo está en la cuenta de origen, validándolo contra la versión más actualizada de la cadena de bloques. • deberemos abrir el puerto 8333
  • 36. LA RED BITCOIN (4) 36 • Hay diferentes tipos de nodos: • Mining Node • A parte de las funciones Relay Node realizan el proceso de mineria • Actualmente equipos ASIC (Application Specific Integrated Ciurcuit) • Funcionan agrupándose en pools de minería para aumentar su poder de computación
  • 37. LA RED BITCOIN (5) 37 Circuitos ASIC (Application Specific Integrated Ciurcuit), diseñados específicamente para resolver los problemas criptográficos del protocolo Bitcoin. Y “minero” Terraminer.
  • 38. LA RED BITCOIN (6) 38 • Bitcoin tiene tres redes de operación: • Elegimos cambiando “bicoin.conf” • MainNet • La red principal • Puerto 8333 • Puerto RPC 8332 • Cabecera de bloque 0xF9BEB4D9 • La dificultad se incrementa en función de la potencia de la red
  • 39. LA RED BITCOIN (7) 39 • Bitcoin tiene tres redes de operación: • TestNet (testnet = 1) • Se utiliza para testing de Bitcoin o pruebas de integración • Ha habido tres generaciones (TestNet1, TestNet2, TestNet3) • TestNet3  Es la versión actual (Bitcoin 0.7) • 21 de Diciembre 2015  Testigos Segregados • http://tpfaucet.appspot.com/ • Puerto 18333 / Puerto RPC 18332 / Las direcciones empiezan por m o 2 • Diferente Bloque Génesis • Diferente cabecera de bloque 0x0B110907 (0xF9BEB4D9) • La dificultad funciona de un modo diferente • Por defecto es 1 (cada 20 minutos si no se encuentra un bloque)
  • 40. LA RED BITCOIN (Y 8) 40 • Bitcoin tiene tres redes de operación: • RegNet(-regtest) • Se utiliza para desarrollo (Bitcoin 0.9 en 2014) • No necesita interactuar con otros pares • No es necesario una gran potencia para usarla • Tenemos control total para generar monedas en segundos • Tiene su propio bloque genesis • A partir del bloque 101 quedan confirmadas • Solo los primeros 150 bloques pagan 50 BTCs
  • 42. ¿QUIÉN HA CREADO BITCOIN? (1) • El artículo original y el software se creó bajo el pseudónimo de un tal Satoshi Nakamoto en 2008 • Bitcoin. A Peer-to-Peer Electronic Cash System 42
  • 43. ¿QUIÉN HA CREADO BITCOIN? (1) • El artículo original y el software se creó bajo el pseudónimo de un tal Satoshi Nakamoto en 2008 • Bitcoin. A Peer-to-Peer Electronic Cash System • La Red Bitcoin se puso en marcha el día 3 de Enero de 2009, creando los primeros Bitcoin • La tecnología que hay detrás de Bitcoin, la Blockchain o Cadena de Bloques, utiliza conceptos criptográficos y matemáticos que tienen más de 30 años. 43
  • 44. ¿QUIÉN HA CREADO BITCOIN? (1) • El artículo original y el software se creó bajo el pseudónimo de un tal Satoshi Nakamoto en 2008 • Bitcoin. A Peer-to-Peer Electronic Cash System • La Red Bitcoin se puso en marcha el día 3 de Enero de 2009, creando los primeros Bitcoin • La tecnología que hay detrás de Bitcoin, la Blockchain o Cadena de Bloques, utiliza conceptos criptográficos y matemáticos que tienen más de 30 años. • Motivación: • The Times, 03 / Ene / 2009 Al borde del segundo plan de rescate para los bancos 44
  • 45. ¿QUIÉN HA CREADO BITCOIN? (2) • ¿Quién es Satoshi Nakamoto? (1) • Nadie lo sabe exactamente • El último mensaje de Satoshi Nakamoto se publicó a finales de 2010 (www.bitcoin.org) y cedió el liderazgo a Gavin Andresen • Según la revista Newsweek es un ingeniero japonés llamado Satoshi Dorian Nakamoto 45
  • 46. ¿QUIÉN HA CREADO BITCOIN? (3) • ¿Quién es Satoshi Nakamoto? (3) • Según Wired el caradura de Craig Wright • Según los lingüistas el criptógrafo Nick Szabo • La realidad es que: solo Satoshi Nakamoto puede descubrir a Satoshi Nakamoto 46
  • 47. ¿QUIÉN HA CREADO BITCOIN? (Y 4) • ¿Quién es Satoshi Nakamoto? (y 4) -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.7 (MingW32) mQGiBEkJ+qcRBADKDTcZlYDRtP1Q7/ShuzBJzUh9hoVVowogf2W07U6G9BqKW24rpiOxYmErjMFfvNtozNk+33cd/sq3gi05O1IMmZzg2rbF4ne5t3iplXnNuzN h+j+6VxxA16GPhBRprvnng8r9GYALLUpo9Xk17KE429YYKFgVvtTPtEGUlpO1EwCg7FmWdBbRp4mn5GfxQNT1hzp9WgkD/3pZ0cB5m4enzfylOHXmRfJKBMF 02ZDnsY1GqeHv/LjkhCusTp2qz4thLycYOFKGmAddpVnMsE/TYZLgpsxjrJsrEPNSdoXk3IgEStowmXjTfr9xNOrB20Qk0ZOO1mipOWMgse4PmIu02X24OapWt yhdHsX3oBLcwDdke8aEgAh8A/sHlK7fL1Bi8rFzx6hb+2yIlD/fazMBVZUe0r2uo7ldqEz5+GeEiBFignd5HHhqjJw8rUJkfeZBoTKYlDKo7XDrTRxfyzNuZZPxBL Tj+k eY8WgYhQ5MWsSC2MX7FZHaJddYa0pzUmFZmQh0ydulVUQnLKzRSunsjGOnmxiWBZwb6bQjU2F0b3NoaSBOYWthbW90byA8c2F0b3NoaW5AZ214LmNvb T6IYAQTEQIAIAUCSQn6pwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEBjAnoZeyUihXGMAnjiWJ0fvmSgSM3o6Tu3qRME9GN7QAKCGrFw9SUD0e 9/YDcqhX1aPMrYue7kCDQRJCfqnEAgA9OTCjLa6Sj7tdZcQxNufsDSCSB+yznIGzFGXXpJk7GgKmX3H9Zl4E6zJTQGXL2GAV4klkSfNtvgsSGJKqCnebuZVwutyq1 vXRNVFPQFvLVVo2jJCBHWjb03fmXmavIUtRCHoc8xgVJMQLrwvS943GgsqSbdoKZWdTnfnEq+UaGo+Qfv66NpT3Yl0CXUiNBITZOJcJdjHDTBOXRqomX2WSg uv+btYdhQGGQiaEx73XMftXNCxbOpqwsODQns7xTcl2ENru9BNIQMEI7L9FYBQUiKHm1k6RrBy1as8XElS2jEos7GAmlfF1wShFUX+NF1VOPdbN3ZdFoWqsUj Kk+QbrwADBQgA9DiD4+uuRhwk2B1TmtrXnwwhcdkE7ZbLHjxBfCsLPAZiPh8cICfV3S418i4H1YCz2ItcnC8KAPoS6mipyS28AU1B7zJYPODBn8E7aPSPzHJfud MKMqiCHljVJrE23xsKTC0sIhhSKcr2G+6ARoG5lwuoqJqEyDrblVQQFpVxBNPHSTquO5PoLXQc7PKgC5SyQuZbEALEkItl2SL2yBRRGOlVJLnvZ6eaovkAlgsbGdl i eOr0UwWuJCwzZuBDruMYAfyQBvYfXZun3Zm84rW7Jclp18mXITwGCVHg/P5n7QMbBfZQA25ymkuj636Nqh+c4zRnSINfyrDcID7AcqEb6IhJBBgRAgAJBQJJC fqnAhsMAAoJEBjAnoZeyUihPrcAniVWl5M44RuGctJe+IMNX4eVkC08AJ9v7cXsp5uDdQNo8q38RHwN4Gk8w== =3FTe -----END PGP PUBLIC KEY BLOCK----- 47
  • 49. COMO CONSIGO BITCOIN 49 • Me hago minero • Los cambio por otra divisa Euros/Dólar/Yen… • Brokers (Coinbase / Bitstamp / Kraken ) • Cajeros • Me pagan por mi trabajo con él • Coinality.com / Cryptogrind.com / Bitcoin- Vacancy.com • Consigo fracciones en Pay per View • Faucets (Btcclicks / Bitsforclicks )
  • 50. Cajero Lamassu. Pagando en fiat y escanenado un código QR se obtienen BTC. Cajero RoboCoin. Primer cajero bidireccional del mundo 50
  • 51. VEAMOS BITCOIN “POR DENTRO” 51
  • 52. ¿QUÉ NECESITO COMO USUARIO? • Para usar Bitcoin solo necesito: • Saber cómo funciona una billetera o monedero digital. • Que es una dirección Bitcoin • Como asegurar nuestro dinero (probablemente el paso más importante para evitar que nuestro dinero pueda verse comprometido) • Y saber cómo enviar y recibir pagos. 52
  • 55. SIGAMOS VIENDO BITCOIN “POR DENTRO” 55
  • 56. ¿QUÉ NECESITO PARA ENTENDERLO? • Recordar: • La teoría que hay detrás tiene más de 30 años • Entender lo que hay por detrás necesitamos: • Saber que son las funciones Hash • Como funciona la criptografía de clave pública (firmas digitales) • Para qué sirven las Curvas Elípticas • Números aleatorios y nonces • Transacciones • Minería (Cadena de Bloques y Prueba de Trabajo) 56
  • 57. FUNCIONES HASH (1) • Algoritmo que toma como entrada unos datos de longitud cualquiera (el mensaje) y devuelve una cadena de bits de longitud fija (el hash). • El propósito de un hash no es ocultar información sino garantizar la integridad • Características • Eficiencia en la computación. Rapidez de cálculo • Resistencia a preimagen. Debe ser computacionalmente muy difícil generar el mensaje a partir del cual se ha derivado el resumen. • Resistencia a colisión. Debe ser computacionalmente muy difícil generar dos mensajes diferentes y que el hash de ellos sea el mismo. 57
  • 58. FUNCIONES HASH (2) • Bitcoin usa: SHA-256 y RIPEMD-160 • Bitcoin los usa para: • Generar las direcciones Bitcoin • En el proceso de minería (prueba de trabajo) • Identificador de transacciones • Por regla general Bitcoin siempre aplica dos veces el algoritmo de hash: SHA-256 ( SHA-256 ( “perro” ) ) 2efe5fccbc3639fe5fd4582926c84d2e456a58033096cc1d 554701d3474f95e9 58
  • 59. FUNCIONES HASH (3) 59 Las colisiones existen siempre, no importa la función Hash… Si probamos 2130 entradas aleatorias, existe una probabilidad del 99,8% de que dos colisionaran “Solo” es una cuestión de tiempo
  • 60. FUNCIONES HASH (4) 60 “Solo” es una cuestión de tiempo Se ha comprobado que encontrar una colisión de SHA-256 Se necesitan una complejidad temporal de 2253.5 Con los ordenadores actuales se tardaría varios miles de años en encontrar la colisión
  • 61. FUNCIONES HASH (5) • SHA-256 (Secure Hash Algorithm) • Pertenece a la familia SHA-2 • Diseñado por la NSA • Pero validado por el NIST (National Institute of Standards and Technology) • Acepta entradas de 264 • Genera una salida es de 256 bits • Para jugar: • http://passwordsgenerator.net/sha256-hash-generator/ 61
  • 62. FUNCIONES HASH (Y 6) • RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest • Creado en 1996 por una comunidad académica abierta: • Hans Dobbertin, Antoon Bosselaers y Bart Preneel • Genera una salida de 160 bits (tiene versiones 128, 256 y 320) • Bitcoin lo utiliza cuando necesita crear salidas más cortas de 256 bits • No hay una razón aparente por el cual se eligió la combinación SHA-256 + RIPEDM-160 • Se suele aceptar que fue porque es la combinación que genera los hashes más cortos que se pueden considerar seguros 62
  • 63. CRIPTOGRAFÍA DE CLAVE PUBLICA (1) • Criptografía Asimétrica / Criptografía de Dos Claves • Se basa en el uso de dos claves para el envío de un mensaje: • Ambas claves pertenecen a la misma persona • Una clave es pública (todo el mundo la conoce) • Otra clave es privada (solo la conoce el emisor del mensaje) • Son complementarias • Una de sus aplicaciones es la Firma Digital • Bitcoin usa las firmas digitales para verificar quien está autorizado a transferir las monedas 63 Tres tipos de problemas matemático en el que basan su seguridad: • El Problema de Factorización Entera: RSA y Rabin Williams (RW) • El Problema del Logaritmo Discreto: Diffie Hellman (DH) y el sistema DSA • El Problema del Logaritmo Discreto Elíptico: DSAE, NRE, MQV y por supuesto las curvas elípticas (CEE). Lectura recomendada: http://www.uv.es/~ivorra/Libros/Elipticas.pdf
  • 64. CRIPTOGRAFÍA DE CLAVE PUBLICA (2) 64 1. Ana redacta un mensaje 2. Ana cifra el mensaje con la clave pública de David 3. Ana envía el mensaje cifrado a David a través de Internet 4. David recibe el mensaje cifrado y lo descifra con su clave privada 5. David ya puede leer el mensaje original que le mandó Ana
  • 65. CRIPTOGRAFÍA DE CLAVE PUBLICA (3) 65 1. David redacta un mensaje 2. David firma digitalmente el mensaje con su clave privada 3. David envía el mensaje firmado digitalmente a Ana a través de Internet 4. Ana recibe el mensaje firmado digitalmente y comprueba su autenticidad usando la clave pública de David 5. Ana ya puede leer el mensaje con total seguridad de que ha sido David el remitente Integridad Se puede detectar si el mensaje original fue modificado. No repudio El autor del mensaje no puede decir que no lo hizo. Autenticidad El emisor del mensaje queda acreditado, y su “firma electrónica” tendrá la misma validez que una firma autógrafa. Confidencialidad La información contenida en el mensaje puede ser cifrada o codificada, para que sólo el receptor pueda descifrarla.
  • 66. CRIPTOGRAFÍA DE CLAVE PUBLICA (Y 4) 66 • El tamaño de las claves importa: • A mayor tamaño de clave más resistente es a un criptoanálisis • Más difícil es aleatoriamente generar dos claves iguales • Bitcoin: • Utiliza tamaños de clave de 256 bits • Para generarlas utiliza Curvas Elípticas
  • 67. CURVAS ELÍPTICAS (1) 67 • Propuestas por Neal Koblitz y Victor Miller en 1985 • Se basan en las matemáticas de las curvas elípticas • Es un sistema muy seguro de generación de claves: • Pero es más eficiente, rápida y escalable • Genera claves más pequeñas con el mismo nivel de seguridad • Se utiliza por Bitcoin para obtener las claves públicas (las direcciones Bitcoin) y firmar/verificar las transacciones RSA CURVAS ELIPTICAS TAMAÑO CLAVE 2048 256 120 120 120
  • 68. CURVAS ELÍPTICAS (Y 2) 68 • Supongamos el siguiente escenario: • Otros sistemas suelen usar números primos muy grandes y realizar operaciones con ellos • Las curvas elípticas en vez de números primos usan coordenadas en una curva elíptica, que en general se corresponden con esta ecuación: y2 = x3 + ax + b CLAVE PRIVADA 456 645 835 2345 ALGORITMO 4*5*6 6*4*5 8*3*5 2*3*4*5 CLAVE PUBLICA 120 120 120 120 Irreversibilidad ¿A quien pertenece 120? Según los valores de a y b la forma de la curva es diferente Bitcoin usa los valores a = 0 y b = 7
  • 69. BITCOIN ADDRESSES (1) • Sirve para reclamar la posesión del dinero, el dinero se asocia a ella. • Tienen una longitud de 34 caracteres y diferencias mayúsculas de minúsculas • Comienzan por 1 o por 3 (multifirma) • Está compuesta por un par de claves: Criptografía de clave pública. • Se pueden generar por cualquier persona y sin conexión • Esto es debido a que no hay constancia de su existencia hasta que recibe un pago • Se basa en la criptografía de Curva Elíptica que acabamos de ver • Llamamos Monedero a un fichero donde almacenamos varias direcciones. • Pueden ser impresas en papel con códigos QR. • El proceso de generación lleva 10 pasos • Ejemplo: bitaddress.org 69 Se permite del 1 al 9, de la A a la Z y de la a a la z, y se omiten los caracteres siguientes: 0 (cero), O (o mayúscula), I (i mayúscula) y l (L minúscula)
  • 70. BITCOIN ADDRESSES (2) • Paso 1: Tener una clave privada del tipo ECDSA de 65 bytes (de estos 32 bytes se corresponden a la coordenada X y otros 32 bytes corresponden a la coordenada Y) 18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725 • Paso 2: Generar la clave pública a partir de la anterior, obtendríamos una ristra de datos como los siguientes (Satoshi podría haber decidido usarla como la dirección Bitcoin, sin embargo por motivos obvios no lo hizo): 0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352 2CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6 70
  • 71. BITCOIN ADDRESSES (3) • Paso 3: Hacer un hash con SHA-256 sobre la clave pública anterior: 600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408 • Paso 4: Aplicamos un hash con RIPEMD-160 sobre el resultado anterior: 010966776006953D5567439E5E39F86A0D273BEE • Paso 5: Añadir un byte adicional al hash de antes para obtener una versión RIPEMD- 160 extendida. Este byte es el denominado byte de versión, y permite distinguir una dirección Bitcoin del de otras criptomonedas. Si estamos usando la red principal de Bitcoin será un 0x00 (formato hexadecimal): 00010966776006953D5567439E5E39F86A0D273BEE 71
  • 72. BITCOIN ADDRESSES (4) • Paso 6: Toca hacer otro hash 256 sobre el RIPEMD-160 extendido: 445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094 • Paso 7: Y otro hash adicional SHA-256 sobre el anterior que nos va a servir para crear los dígitos de control de la dirección: D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30 • Paso 8: Seleccionar los primeros 4 bytes del último hash, este será el identificativo checksum de la dirección pública: D61967F6 (igual es más fácil ver los 4 bytes de esta forma D6-19-67-F6) 72
  • 73. BITCOIN ADDRESSES (5) 73 • Paso 9: Añadir los 4 bytes del checksum del punto anterior al hash extendido RIPEMD-160 del punto 4, obteniendo una dirección Bitcoin de 25 bytes binaria: 00010966776006953D5567439E5E39F86A0D273BEED61967F6 • Paso 10: Convertir el resultado de la cadena anterior a una cadena con Base58 utilizando el codificado Base58Check (crea los 34 caracteres) 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
  • 74. BITCOIN ADDRESSES (6) 74 • Todo esto afecta a los tipos de Billetera. Dos clases: • No deterministas • Cada clave privada se asocia a una clave publica • Si pierdo la clave privada no puede restaurar la dirección • Deterministas • para generar las direcciones públicas la curvas elípticas tienen como entrada una semilla que usan en sus cálculos • Si conozco la semilla puedo restaurar mi billetera si la pierdo • Hay dos tipos: • Billetera Determinista de Tipo 1 • Billetera Determinista Jerárquica de Tipo 2
  • 75. BITCOIN ADDRESSES (Y 7) 75 • Billetera Determinista de Tipo 1 • Es el modelo más simple • Para generar la clave privada se parte de ejecutar la función SHA256 (cadena conocida + n), donde n es un código ASCII que comienza en 1 y se va incrementando según se van necesitando nuevas claves. • Billetera Determinista Jerárquica de Tipo 2 • Se describe en la BIP 0032 (Gregory Maxwell) • La semilla es un valor aleatorio de 128 bits (o 12 palabras comunes en inglés para ayudarle a recordar. • La semilla es usada después de realizar 100.000 pasadas sobre SHA256 a fin de mejorar la fortaleza y reducir los ataques contra palabras usadas por el usuario que puedan resultar fáciles de atacar.
  • 76. DIRECCIONES DE VANIDAD 76 • Es un caso particular de las direcciones Bitcoin • Aumentan el riesgo de ser identificado • Son direcciones que intentan que la secuencia de caracteres que forma la dirección tenga un formato más amigable y amable, como una forma de personalizarla 1LibroBitcoi8ALj6mfBsbifRoD4miY36v 1SantiagoFVj8ALj6mfBsbifRoD4miY36v • Una vez generadas se pueden importar dentro de las billeteras importprivkey
  • 77. NÚMEROS ALEATORIOS Y NONCES 77 • nonces son números aleatorios “especiales” que, en principio, sólo se utilizan una vez (number used only once) • Bitcoin los utiliza para la generación de los bloques en la prueba de trabajo • Las curvas elípticas también los usan en sus operaciones internas
  • 78. TRANSACCIONES (1) 78 • Son registros firmados digitalmente que cambian el propietario de fondos asignándolos a otra dirección • Se componen de: • entradas: registros que referencian los fondos (direcciones) de transacciones previas • salidas: registros que determinan el nuevo propietario de los fondos transferidos (direccion) • Las salidas actúan como entradas de otras transacciones • Siempre se utiliza todo el dinero que hay en la entrada aunque la cantidad a pagar sea menor • La diferencia se asocia a una salida en una dirección de vuelta (el equivalente a que nos den el cambio)
  • 79. TRANSACCIONES (2) 79 • Cada entrada (input) de una transacción es firmada digitalmente por el pagador, lo que desbloquea los fondos contenidos en la dirección asociada a la clave privada utilizada para firmar • Si la firma no es válida la transacción se invalida y se desecha • Esto lo hace el primer nodo que la recibe • Si Bitcoin(entrada) > Bitcoin (salida) • se considera tasa de transacción • quien incluya esa transacción en la cadena de bloques puede disponer de esa cantidad • Transacciones con tasas mayores son procesadas más rápido • Hay transacciones especiales que suponen la creación de nuevo Bitcoin que son generadas a través de la minería por lo que no tienen entradas
  • 80. TRANSACCIONES (3) 80 • Tipos de transacciones (1): Normales
  • 81. TRANSACCIONES (4) 81 • Tipos de transacciones (2): Transacciones de agregación de fondos
  • 82. TRANSACCIONES (5) 82 • Tipos de transacciones (y 3): Transacciones de distribución de fondos
  • 83. TRANSACCIONES (6) 83 • 1 . El usuario firma la transacción y la envía a un minero.
  • 84. TRANSACCIONES (7) • 1 . El usuario firma la transacción y la envía a un minero. • 2 . La transacción es cacheada por todos los mineros en activo. 84
  • 85. TRANSACCIONES (8) • 1 . El usuario firma la transacción (se valida por un nodo) y la envía a un minero. • 2 . La transacción es cacheada por todos los mineros en activo. • 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en que se llevará a cabo (la cadena mas larga prevalece). 85
  • 86. TRANSACCIONES (9) • 1 . El usuario firma la transacción y la envía a un minero. • 2 . La transacción es cacheada por todos los mineros en activo. • 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en que se llevará a cabo (la cadena mas larga prevalece). • Pero… ¿Y si alguien controla el 51% de la red? 86
  • 87. TRANSACCIONES (10) • 1 . El usuario firma la transacción y la envía a un minero. • 2 . La transacción es cacheada por todos los mineros en activo. • 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en que se llevará a cabo (la cadena mas larga prevalece). • Pero… ¿Y si alguien controla el 51% de la red? • Existe algo llamado “Cadena de Bloques”. Funciona como un libro de cuentas de todas las transacciones hechas hasta ahora en BitCoin. 87
  • 88. TRANSACCIONES (Y 11) • 1 . El usuario firma la transacción y la envía a un minero. • 2 . La transacción es cacheada por todos los mineros en activo. • 3 . Cuando el 51% de los mineros ha recibido la transacción, se suele confiar en que se llevará a cabo (la cadena mas larga prevalece). • Pero… ¿Y si alguien controla el 51% de la red? • Existe algo llamado “Cadena de Bloques”. Funciona como un libro de cuentas de todas las transacciones hechas hasta ahora en BitCoin. • Cuando un minero descubre un nuevo bloque (similar a una nueva página de este libro de cuentas), graba en él las nuevas transacciones. Sólo entonces podemos garantizar la transacción. 88
  • 89. PERO NO TODO ES TAN FACIL 89
  • 90. BTSL – BITCOIN TRANSACTION SCRYPT (1) 90 • El movimiento del dinero no es tan simple como cambiar un dato en una base de datos distribuida • El movimiento de dinero se hace previa a la ejecución de un script que determina las reglas que debe seguir ese movimiento de dinero • Ese script está programado en BTSL o Bitcoin Transaction Scrypt Language • Opera con una estructura tipo LIFO • Las operaciones se ejecutan de izquierda a derecha • No es Turing Completo (no tiene bucles)
  • 91. P3 P1 m=“P3 envia 3 monedas a P1” s=Sig(sk3,m) If Ver(pk3,m,s) = OK and P3 tiene un balance de 3 then return accept BTSL – BITCOIN TRANSACTION SCRYPT (2)
  • 92. BTSL – BITCOIN TRANSACTION SCRYPT (Y 3) 92
  • 93. CADENA DE BLOQUES (1) • Es un libro de cuentas con todos los movimientos de BTC. • Su elemento constituyente es el Bloque • Crear el siguiente bloque de la cadena requiere mucho tiempo y computación, los mineros trabajan buscando el siguiente bloque. • Los mineros almacenan temporalmente las transacciones y las distribuyen entre ellos, cuando uno encuentra un nuevo bloque válido graba las transacciones en el nuevo bloque y quedan validadas. • Puede haber varias cadenas, pero los mineros escuchan la mas larga y descartan las más cortas. • Generar una cadena más larga que la que ya existe sería improbable en tiempo y esfuerzo (ataque del 51%) 93
  • 94. CADENA DE BLOQUES (2) 94 • Un bloque es un registro que contiene transacciones que se encontraban pendientes • Se generan aproximadamente cada 10 minutos • En función del poder computacional se ajusta la dificultad de la red para que tienda a 10 minutos • Al resolver un bloque el minero recibe la recompensa (12,5 BTCs). Esta recompensas recibe el nombre de coinbase • Cada 4 años (210.000 bloques) se produce un halving que reduce la recompensa a la mitad (la recompensa tiende a 0 asintóticamente - año 2140) • A medida que se añaden bloques, las transacciones son más seguras (esto se denomina confirmación)
  • 95. CADENA DE BLOQUES (3) 95 • Un bloque es una estructura de datos como la siguiente:
  • 96. CADENA DE BLOQUES (4) 96 • Cada minero compite con el resto para resolver un problema criptográfico y añadir su bloque a la cadena de bloques. • Es un problema tipo de prueba y error (fuerza bruta) que recibe el nombre de Prueba de Trabajo • Consiste en calcular el valor de un Hash con un número de 0’s por delante usando los datos del bloque anterior • Recalcula el valor del Nonce (usando los datos de la cabecera) • La dificultad del problema se mide en hashes/s (número de combinaciones/s), y se regula automáticamente cada 2016 bloques (aprox. 2 semanas) con la potencia computacional de la red. • Esto se hace para evitar un hackeo del double spending. • Un atacante entraría en una carrera con el resto de nodos para romper la integridad de la cadena de bloques. BLOQUE GENESIS El 3 de enero de 2009, a las 18:15:05 horas, la Red Bitcoin se pone en marcha con el primer bloque: El Bloque Genesis (Altura 0) Todos los nodos tienen su propia copia codificada que no puede ser alterada 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
  • 97. CADENA DE BLOQUES (5) 97 • Bloques Caducados y Bloques Huérfanos • Todos los mineros compiten contra todos • ¿Pueden dos mineros resolver el mismo bloque a la vez? • Puede suceder • Pero solo uno cobrará la recompensa • ¿Quién la cobrará? • Gana el que anexe su bloque a la cadena más larga • EL bloque perdedor estará caducado • Un bloque que no tiene padre se llama bloque huérfano • Orphan block pool
  • 98. CADENA DE BLOQUES (6) 98 Minero A Minero B Bloque B1 Bloque B2 B1 y B2 son válidos B1 y B2 generados simultáneamente B1 y B2 se propagan por la Red Dos opciones ... ... Bloque B1 Bloque B3 Longitud: N+2 Bloque B2 Longitud: N+1 B2 es válido pero no pertenece a la cadena más larga. Se desecha. Caducado
  • 99. OTROS USOS PARA BITCOIN 99
  • 100. OTROS USOS DE BITCOIN 100 • Al igual que con la aparición de Internet aparecieron conceptos nuevos como: • web • correo electrónico • comercio online • mensajería instantánea • redes sociales • Cloud Computing • Etc… • Estamos en una situación muy similar…
  • 101. OTROS USOS DE BITCOIN 101 • Coloured coins: registro de la propiedad en la red bitcoin. Consiste en asociar a una unidad de cuenta en la red (1 Satoshi) no al valor monetario de esa unidad de cuenta, sino a un activo o a información. Permitiría comerciar con cualquier tipo de activo (acciones, inmuebles, oro, etc.) o gestionar información sensible (votos, etc). Por ejemplo, si dos empresas A y B firman un contrato legal donde se comprometen a confíar en esa red automatizada, podría llegar a tener validez jurídica. • Smart contracts: es un contrato programable. Se programa un contrato con unas reglas, se sube el contrato a la red, y la transacción queda pendiente hasta que se verifiquen las reglas del contrato. Automatizaría muchos procesos en finanzas (derivados) y economía (contratos legales, crowdfunding, etc.). • Smart property: la propiedad reconoce al dueño al estar en un registro de la propiedad en Internet (coloured coins). Mediante identificación biométrica, se podrían usar con smart contracts. Ejemplo: Yo te presto 3.5 BTC, y tú pones como aval tu coche. Si no me devuelves el dinero, el coche ya no te reconoce como dueño.
  • 102. OTROS USOS DE BITCOIN 102 • Internet de las cosas: sensores que ofrezcan datos a cambio de fracciones de bitcoin o dispositivos con monederos integrados. Ejemplo: frigorífico inteligente que nos permita hacer la compra a través de Internet con Bitcoin. Ejemplo: una estación meteorológica, mantenida por un particular, que se autosostenga ofreciendo sus datos a cambio de fracciones de Bitcoin.
  • 103. ¿PREGUNTAS? “BitCoin is the largest socio-economic experiment the world has never seen” (Charlie Shrem, BitCoin Foundation) 103