57
Cuando las maquinas deciden por nosotros: Introducción a los contratos inteligentes [email protected] Cyber Security Congress 2015 Torre Telefónica, Santiago, Chile 12 de mayo 2015

Cuando las maquinas deciden por nosotros: introducción a los contratos inteligentes

Embed Size (px)

Citation preview

Cuando las maquinas

deciden por nosotros:

Introducción a los

contratos inteligentes

[email protected]

Cyber Security

Congress 2015 Torre Telefónica, Santiago, Chile

12 de mayo 2015

2

¿Quién soy?

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

• Desarrollador, Consultor

• Doctorado en Criptografía en la Universidad de Chile

• Co-fundador de comprabitcoin.com (2013-2014)

• Desarrollador I+D en Dreamlab Technologies (abril 2015)

3

“As another example, consider a hypothetical

digital security system for automobiles. The smart

contract design strategy suggests that we

successively refine security protocols to more fully

embed in a property the contractual terms which

deal with it. These protocols would give control of

the cryptographic keys for operating the

property to the person who rightfully owns that

property, based on the terms of the contract. In

the most straightforward implementation, the car

can be rendered inoperable unless the proper

challenge-response protocol is completed with

its rightful owner, preventing theft.”

Nick Szabo

4

Un contrato inteligente es un programa que se ejecuta de forma

autónoma y totalmente transparente.

En particular la ejecución es irreversible y

su traza es pública e inmutable.

Un contrato inteligente es capaz de enviar, recibir y almacenar

dinero tal como interactuar con su entorno

(otros contratos inteligentes)

Cualquier sistema puede interactuar con un contrato inteligente

(sistemas computacionales, IoT, usuario humano,…)

5

Contrato «tradicional»

Contrato

Ejecución

Auditoría (Control)

Definición

Interacción entre humanos y objetos.

Posible aplicación de sanciones

(multas)

Interpretaciones de la definición

(juicio)

Papel

Recolección

(semi-) manual

de datos

6

Contrato inteligente

Contrato

Ejecución

Auditoría (Control)

Definición

Ejecución de un programa

(Única interpretación posible)

Irreversible, autónoma

Programa

informático En tiempo real

Inmutable

7

Agenda

• Bitcoin

• Cambio de paradigma

• Bitcoin es más que dinero

• Contratos inteligentes

• Ejemplos

• Ethereum

Objetivo:

entender la tecnología

detrás de los

contratos inteligentes

Objetivo:

Dimensionar el

potencial y los desafíos

8

De 1 USD a 1000 USD en 3 años

10

http://dealbook.nytimes.com/2014/01/21/why-bitcoin-matters/

Fundadador de

Netscape

Inversionista

11

The first five times you think you

understand it, you don’t.

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

12

13

14

Solución #0

¿Es posible crear

una moneda digital

descentralizada?

Los sistemas

centralizados tienen

limitaciones…

15

16

Arreglo #1

Bancos Confianza en

instituciones

Bitcoin Confianza en código

abierto + leyes

matemáticas

V/S

= +

17

¿Pero quién invento Bitcoin?

No se sabe quien es...

Igual la confianza en el

sistema no debería

depender de eso

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

18

Solución #1

1 BTC

2 BTC 1 BTC

19

Puedo gastar mis bitcoins

tantas veces como quiero

(doble gasto).

20

21

Arreglo #2

La red Bitcoin comparte

una base de datos de transacciones

23

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.

24

Cada transacción tiene que ser pública.

¡Nadie va a querer usar este sistema que

revela todos nuestros movimientos

financieros!

25

26

Arreglo #3

El identificador del usuario

se reemplaza por un número aleatorio

Dirección Bitcoin: 31uEbMgunupShBVTewXjtqbBv5MndwfXhb

27

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.

28

Bitcoin y Anonimato

• Bitcoin no es por defecto

totalmente anónimo

• Algunos intentos para mejorar el anonimato

zerocash-project.org Blockchain.info

Dilema: privacidad

v/s criminalidad

29

Cada cuenta es pública entonces

puede hacer transferencia desde

cualquier parte (puedo gastar

bitcoins que no son míos).

30

31

Arreglo #4: Firmas digitales

32

Arreglo #4: Firmas digitales

Clave privada Clave pública =

Dirección de Bart

Firmar Mensaje

Firma

Equivale a la

habilidad de

“dibujar la firma”

33

Firma

Firmas digitales

Aceptar /

Rechazar Verificar

34

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

35

¿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

Contrato «implícito»

Conoces la clave => eres dueño

(Ser dueño = poder transferir)

36

¿El futuro de los bancos?

YCombinator

70+ miliones de USD

39 000 negocios

enrolados

40 miliones de USD

Wences Casares

Tarjeta de debito que

se paga en bitcoins

37

Pagar con bitcoin

Pagar con bitcoin es MUY sencillo

pero IRREVERSIBLE

Mi dirección bitcoin:

1Ask9dvcJHEyjiVm5L9vjxYTU3i8Q1Q1zV

38

Todavía puedo hacer cosas muy malas....

¿Que tal publicar una falsa historia de las

transacciones?

39

40

Arreglo #5:

Funciones de Hash Criptográficas

H

01110001110001110

10001010100010010

00110101010010110

01100111100011100

10000101000101110

1101101011010010

Entrada grande

Salida de tamaño fijo

(ej: 256 bits)

41

Solución #5

H H H

Tx1;

Tx2;

Tx3…

Valor inicial

(coinbase)

Tx34;

Tx35;

Tx36…

Tx54;

Tx55;

Tx56…

Bloque de

transacciones

Cadena de bloques (Blockchain)

42

¿Pero quien calcula el siguiente

bloque?

43

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 ceros.

La única forma (*) de calcular

este valor tal que la salida

empiece por 𝒏 ceros es

intentar al alrededor de

𝟐𝒏 veces.

(*) Si lo logras de otra manera

puedes (1) volverte rico, (2) famoso (Premio Turing), o (3) ambas cosas...

44

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

45

Poder computacional de la red bitcoin

46

¿Suena bien… pero porque la

gente gastaría sus ciclos CPU?

47

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

48

Solución al problema

del consenso (Proof of work)

Herramientas muy simples

(Funciones de hash + Firmas

digitales)

Incentivo económico

¿Porque el diseño de Bitcoin es

absolutamente GENIAL?

49

¡Bitcoin es

un contrato inteligente!

50

51

Bitcoin es un contrato inteligente

• Es un programa

• Se ejecuta de forma autónoma (descentralizado)

• Todas las transacciones son públicas

• Nadie puede alterar la cadena de bloque

• Ejecución irreversible

• Algunas clausulas de este contrato

• A lo más 21.000.000 de bitcoins

• Nuevo bloque cada 10 minutos

• Dificultad para minar se ajusta al poder computacional de la red

• Solamente un subconjunto de transacciones es autorizado

• …

52

Transacción Bitcoin

https://bitcoin.org/en/developer-guide#signature-hash-types

Más complejo que

un simple mensaje

firmado…

¡Es un

contrato

inteligente!

53

Claro, un contrato

inteligente que ejecuta otro

contrato inteligente...

54

Innovación v/s Fragmentación

http://mapofcoins.com/bitcoin#

Bitcoin

Litecoin

Litecoin

55

Ethereum

• Plataforma parecida a Bitcoin pero: • Lenguaje para escribir

contratos inteligentes más expresivo (Turing-Completo)

• Evita tener que reinventar la rueda (hacer un fork de otra criptomoneda)

• Reusó de la cadena de bloques

• Crowdfunding (sept. 2014) • 31531 BTC =

US$18,439,086

• Lanzamiento: 2015

Vitalik Buterin

Fundador de Ethereum

56

Contrato de venta

http://etherscripter.com/0-5-1/

Se resuelve el

típico problema de

quien paga

primero.

57

Más ejemplos de contratos inteligentes

• DNS descentralizado

• Empresas autónomas

• Se define la participación al principio

• Los dividendos se distribuyen automáticamente

• Se puede comprar y vender acciones de un simple clic

• Seguros

• Fondos de pensiones

• Herencia

• Democracia directa

• …

58

Desafíos

• Escalabilidad (problema actual con Bitcoin)

• Privacidad v/s Criminalidad

• Un bug puede salir muy caro

• Lenguaje Turing-Completo

• Loop infinito => se pierde dinero

• Bug generalizado

• Fork Bitcoin en 2013

• ¿Seguridad?

59

(en nombre de Satoshi Nakamoto)

¡GRACIAS!