Introducción a Bitcoin

49
Introducción a Bitcoin @philippecamacho [email protected] Bitcoin Santiago 30 de julio 2014 Universidad San Sebastián

description

Diapositivas de la charla introductoria a Bitcoin dada en el meetup "Bitcoin Santiago" del 30 de julio 2014.

Transcript of Introducción a Bitcoin

Page 1: Introducción a Bitcoin

Introducción a Bitcoin

@philippecamacho

[email protected]

Bitcoin Santiago 30 de julio 2014 Universidad San Sebastián

Page 2: Introducción a Bitcoin

¿Quién soy?

Philippe Camacho • Francés, 10 años en Chile

• Desarrollador, Consultor

• Doctorado en Criptografía en la Universidad de Chile

• Co-fundador de comprabitcoin.com (2013)

• Unos de los primeros sitios de compra-venta de bitcoins en América Latina

• Mucha prensa (estuvimos en Tele 13 ) • 3 miliones de USD de venta

• CREO QUE BITCOIN ESTA CAMBIANDO EL MUNDO

Page 3: Introducción a Bitcoin

The first five times you think you understand it, you don’t.

http://dankaminsky.com/2011/08/05/bo2k11/

Page 4: Introducción a Bitcoin

Agenda

Page 5: Introducción a Bitcoin

Agenda

Page 6: Introducción a Bitcoin

Solución #0

Page 7: Introducción a Bitcoin

Agenda

Page 8: Introducción a Bitcoin

Arreglo #1

Bancos Confianza en instituciones

Bitcoin Confianza en código

abierto + leyes matemáticas

V/S

= +

Page 9: Introducción a Bitcoin

¿Pero quién invento Bitcoin?

No se sabe quien es... Pero entre nosotros:

¡¿Que importa?!

http://www.newsweek.com/2014/03/14/face-behind-bitcoin-247957.html

Page 10: Introducción a Bitcoin

Solución #1

1 BTC

2 BTC 1 BTC

Page 11: Introducción a Bitcoin

Puedo gastar mis bitcoins tantas veces como quiero

(doble gasto).

Page 12: Introducción a Bitcoin

Agenda

Page 13: Introducción a Bitcoin

Arreglo #2

La red Bitcoin comparte una base de datos de transacciones

Page 14: Introducción a Bitcoin

Solución #2

Origen Destino Monto

Homer Lisa 1 BTC

Homer Bart 2 BTC

Lisa Bart 1 BTC

… … …

La red chequea que la cuenta tiene fondos antes de autorizar la

transferencia.

Page 15: Introducción a Bitcoin

Cada transacción tiene que ser pública. ¡Nadie va a querer usar este sistema que

revela todos nuestros movimientos financieros!

Page 16: Introducción a Bitcoin

Agenda

Page 17: Introducción a Bitcoin

Arreglo #3

El identificador del usuario se reemplaza por un número aleatorio

Dirección Bitcoin: 31uEbMgunupShBVTewXjtqbBv5MndwfXhb

Page 18: Introducción a Bitcoin
Page 19: Introducción a Bitcoin

Solución #3

Origen Destino Monto

HhY67j81 Jh89HF8m 1 BTC

HhY67J81 LaU4V6uU 2 BTC

Jh89HF8m LaU4V6uU 1 BTC

… … …

Nota: cada usuario puede crear múltiples

cuentas.

Page 20: Introducción a Bitcoin

Bitcoin y Anonimato

• Bitcoin no es por defecto totalmente anónimo

• Algunas iniciativas para mejorar el anonimato

Zerocoin.org Blockchain.info

Page 21: Introducción a Bitcoin

Cada cuenta es pública entonces puede hacer transferencia desde cualquier parte (puedo gastar bitcoins que no son míos).

Page 22: Introducción a Bitcoin

Agenda

Page 23: Introducción a Bitcoin

Arreglo #4: Firmas digitales

Page 24: Introducción a Bitcoin

Arreglo #4: Firmas digitales

Clave privada Clave pública ≈ Dirección de Bart

Firmar Mensaje

Firma

Equivale a la habilidad de

“dibujar la firma”

Page 25: Introducción a Bitcoin

Firma

Firmas digitales

Aceptar / Rechazar

Verificar

Page 26: Introducción a Bitcoin

Solución #4

Origen Destino Monto Firma

HhY67j81 Jh89HF8m 1 BTC Djsh767

HhY67J81 LaU4V6uU 2 BTC 8988dd

Jh89HF8m LaU4V6uU 1 BTC djDhd7n

… … …

Las direcciones bitcoin se calculan a partir de la clave

pública

Mensaje

Page 27: Introducción a Bitcoin

¿Que significa “Soy dueño de 30 BTC”?

Tu conoces la clave privada asociada a una clave pública (≈dirección bitcoin) cuyo balance es 30 BTC.

Tu eres el único a conocer esa clave privada.

1

2

Page 28: Introducción a Bitcoin

Entonces…

2 cosas feas te pueden pasar

Pierdes la clave privada

Alguien te roba la clave privada y transfiere todos tus bitcoins a otra dirección

1

2

Page 29: Introducción a Bitcoin

Cliente Local (el clásico)

• Tu clave privada esta en tu computador

• Tienes todo el control sobre tu clave privada

• No muy practico – Hay que bajar todo el historial

de transacciones (5 dias, 25+ gigas)

Page 30: Introducción a Bitcoin

Cliente Local (en el celular)

http://mycelium.com

Page 31: Introducción a Bitcoin

E-Wallet

• Tipo 1: – Tu no tienes acceso a la clave privada – Ejemplos

• Coinbase.com • XAPO.com

– Es como un Banco

• Tipo 2: – Tu clave privada se almacena encriptada en

el servidor – Solamente tu tienes acceso a la clave

privada gracias a tu password – Ejemplo

• Blockchain.info

– Mejor balance entre seguridad y conveniencia

Page 32: Introducción a Bitcoin

Brainwallet

• Genera clave privada desde una password larga

• Sencillo – Solamente hay

que recordar la password – Solo requiere navegador

• OJO: cualquiera puede hacer un ataque de fuerza bruta sobre tu password

Page 34: Introducción a Bitcoin

En la práctica

• Comprar/vender bitcoins – http://Localbitcoins.com – https://Bitstamp.net – http://www.yaykuy.cl/ – https://comprabitcoin.com – http://bitcoin-chile.com/ – https://chilebitcoin.cl/ – ...

• Usar bitcoins – coinmap.org – http://noticias.patabit.com

(Javier esta armando una lista de negocios que aceptan bitcoin en Chile)

La dirección donde vas a recibir tus bitcoins

Page 35: Introducción a Bitcoin

En la práctica

• Aceptar bitcoins en tu negocio – Muy sencillo

• API Blockchain

• Bitpay.com

• Coinbase.com

– Otras ventaja • Los pagos no se pueden revertir

• Comisiones muy bajas

• Disponible en todos los países del mundo

• Mejor experiencia de usuario

Page 36: Introducción a Bitcoin

Todavía puedo hacer cosas muy malas.... ¿Que tal publicar una falsa historia de las

transacciones?

Page 37: Introducción a Bitcoin

Agenda

Page 38: Introducción a Bitcoin

Arreglo #5: Funciones de Hash Criptográficas

H

0111000111000111010001010100010010001101010100101100110011110001110010000101000101110

11011010110100111

Entrada grande

Salida de tamaño fijo (ej: 256 bits)

Page 39: Introducción a Bitcoin

Arreglo #5: Funciones de Hash Criptográficas

• Propiedades de seguridad

– Unidireccional • Dada la salida y es difícil

calcular una entrada x tal que H(x) = y

– Collision-Resistant • Es difícil encontrar dos

valores distintos x,x’ tal que H(x)=H(x’)

Page 40: Introducción a Bitcoin

Solución #5

H H H

Tx1; Tx2; Tx3…

Valor inicial (coinbase)

Tx34; Tx35; Tx36…

Tx54; Tx55; Tx56…

Bloque de transacciones

Cadena de bloques (Block chain)

Page 41: Introducción a Bitcoin

¿Pero quien calcula el siguiente bloque?

Page 42: Introducción a Bitcoin

Demostración de Esfuerzo (Proof of Work)

00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111

10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

H 1001101|| x 000||10

Encuentra el valor x tal que la salida empieza

con 3 zeros.

La única forma (*) de calcular este valor tal que la salida

empiece por 𝒏 zeros es intentar al alrededor de 𝟐𝒏 veces.

(*) Si lo logras de otra manera puedes (1) volverte rico, (2) famoso (Premio Turing), o (3) ambas cosas...

Page 43: Introducción a Bitcoin

Solución #5

• El primer nodo que logra a resolver el puzzle computacional gana el bloque

• La red extiende la cadena a partir de este nuevo bloque

• La red siempre elige extender la cadena más larga

¡Diablos! Necesito controlar

51% del poder computacional de la red (*)

(*) No es tan así… => Majority is not Enough: Bitcoin Mining is Vulnerable http://arxiv.org/abs/1311.0243

Page 44: Introducción a Bitcoin

Desafíos de la minería

Page 45: Introducción a Bitcoin

¿Suena bien… pero porque la gente gastaría sus ciclos CPU?

Page 46: Introducción a Bitcoin

Minería

• El ganador del bloque recibe una recompensa de 25 BTC (De hecho es así que los bitcoins son creados)

• Este proceso se llama minería

Page 47: Introducción a Bitcoin

1 0 -

Page 48: Introducción a Bitcoin

¡Es solo el principio!

http://mapofcoins.com

Page 49: Introducción a Bitcoin

¡Gracias!

• Feedback, preguntas a [email protected]

• "I am very intrigued by Bitcoin. It has all the signs. Paradigm shift, hackers love it, yet it's derided as a toy. Just like microcomputers." Paul Graham (YCombinator)