Cuando las maquinas
deciden por nosotros:
Introducción a los
contratos inteligentes
philippe.camacho@dreamlab.net
Cyber Se...
2
¿Quién soy?
Philippe Camacho
• Francés, 11 años en Chile
• Desarrollador, Consultor
• Doctorado en Criptografía en la Un...
3
“As another example, consider a hypothetical
digital security system for automobiles. The smart
contract design strategy...
4
Un contrato inteligente es un programa que se ejecuta de forma
autónoma y totalmente transparente.
En particular la ejec...
5
Contrato «tradicional»
Contrato
Ejecución
Auditoría
(Control)
Definición
Interacción entre humanos y objetos.
Posible ap...
6
Contrato inteligente
Contrato
Ejecución
Auditoría
(Control)
Definición
Ejecución de un programa
(Única interpretación po...
7
Agenda
• Bitcoin
• Cambio de paradigma
• Bitcoin es más que dinero
• Contratos inteligentes
• Ejemplos
• Ethereum
Objeti...
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://...
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 t...
24
Cada transacción tiene que ser pública.
¡Nadie va a querer usar este sistema que
revela todos nuestros movimientos
fina...
25
26
Arreglo #3
El identificador del usuario
se reemplaza por un número aleatorio
Dirección Bitcoin:
31uEbMgunupShBVTewXjtqb...
27
Solución #3
Origen Destino Monto
HhY67j81 Jh89HF8m 1 BTC
HhY67J81 LaU4V6uU 2 BTC
Jh89HF8m LaU4V6uU 1 BTC
… … …
Nota: ca...
28
Bitcoin y Anonimato
• Bitcoin no es por defecto
totalmente anónimo
• Algunos intentos para mejorar el anonimato
zerocas...
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
FirmarMensaje
Firma
Equivale a la
habilida...
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...
35
¿Que significa
“Soy dueño de 30 BTC”?
Tu conoces la clave privada asociada a
una clave pública (≈dirección bitcoin)
cuy...
36
¿El futuro de los bancos?
YCombinator
70+ miliones de USD
39 000 negocios
enrolados
40 miliones de USD
Wences Casares
T...
37
Pagar con bitcoin
Pagar con bitcoin es MUY sencillo
pero IRREVERSIBLE
Mi dirección bitcoin:
1Ask9dvcJHEyjiVm5L9vjxYTU3i...
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
...
41
Solución #5
HH H
Tx1;
Tx2;
Tx3…
Valor inicial
(coinbase)
Tx34;
Tx35;
Tx36…
Tx54;
Tx55;
Tx56…
Bloque de
transacciones
Ca...
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
...
44
Solución #5
• El primer nodo que logra a
resolver el puzzle
computacional gana el bloque
• La red extiende la cadena a
...
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 p...
48
Solución al
problema
del consenso
(Proof of work)
Herramientas
muy simples
(Funciones de
hash + Firmas
digitales)
Incen...
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 transa...
52
Transacción Bitcoin
https://bitcoin.org/en/developer-guide#signature-hash-types
Más complejo que
un simple mensaje
firm...
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-Co...
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 princ...
58
Desafíos
• Escalabilidad (problema actual con Bitcoin)
• Privacidad v/s Criminalidad
• Un bug puede salir muy caro
• Le...
59
(en nombre de Satoshi Nakamoto)
¡GRACIAS!
Próxima SlideShare
Cargando en…5
×

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

482 visualizaciones

Publicado el

En esta charla se introduce el concepto de contratos inteligentes ("smart contracts") y analiza los potenciales y desafíos de esa tecnología.

Publicado en: Internet
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
482
En SlideShare
0
De insertados
0
Número de insertados
26
Acciones
Compartido
0
Descargas
13
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

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

  1. 1. Cuando las maquinas deciden por nosotros: Introducción a los contratos inteligentes philippe.camacho@dreamlab.net Cyber Security Congress 2015 Torre Telefónica, Santiago, Chile 12 de mayo 2015
  2. 2. 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. 3. 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. 4. 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. 5. 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. 6. 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. 7. 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. 8. 8 De 1 USD a 1000 USD en 3 años
  9. 9. 10 http://dealbook.nytimes.com/2014/01/21/why-bitcoin-matters/ Fundadador de Netscape Inversionista
  10. 10. 11 The first five times you think you understand it, you don’t. http://dankaminsky.com/2011/08/05/bo2k11/
  11. 11. 12
  12. 12. 13
  13. 13. 14 Solución #0 ¿Es posible crear una moneda digital descentralizada? Los sistemas centralizados tienen limitaciones…
  14. 14. 15
  15. 15. 16 Arreglo #1 Bancos Confianza en instituciones Bitcoin Confianza en código abierto + leyes matemáticas V/S = +
  16. 16. 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
  17. 17. 18 Solución #1 1 BTC 2 BTC 1 BTC
  18. 18. 19 Puedo gastar mis bitcoins tantas veces como quiero (doble gasto).
  19. 19. 20
  20. 20. 21 Arreglo #2 La red Bitcoin comparte una base de datos de transacciones
  21. 21. 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.
  22. 22. 24 Cada transacción tiene que ser pública. ¡Nadie va a querer usar este sistema que revela todos nuestros movimientos financieros!
  23. 23. 25
  24. 24. 26 Arreglo #3 El identificador del usuario se reemplaza por un número aleatorio Dirección Bitcoin: 31uEbMgunupShBVTewXjtqbBv5MndwfXhb
  25. 25. 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.
  26. 26. 28 Bitcoin y Anonimato • Bitcoin no es por defecto totalmente anónimo • Algunos intentos para mejorar el anonimato zerocash-project.orgBlockchain.info Dilema: privacidad v/s criminalidad
  27. 27. 29 Cada cuenta es pública entonces puede hacer transferencia desde cualquier parte (puedo gastar bitcoins que no son míos).
  28. 28. 30
  29. 29. 31 Arreglo #4: Firmas digitales
  30. 30. 32 Arreglo #4: Firmas digitales Clave privada Clave pública = Dirección de Bart FirmarMensaje Firma Equivale a la habilidad de “dibujar la firma”
  31. 31. 33 Firma Firmas digitales Aceptar / Rechazar Verificar
  32. 32. 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
  33. 33. 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)
  34. 34. 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
  35. 35. 37 Pagar con bitcoin Pagar con bitcoin es MUY sencillo pero IRREVERSIBLE Mi dirección bitcoin: 1Ask9dvcJHEyjiVm5L9vjxYTU3i8Q1Q1zV
  36. 36. 38 Todavía puedo hacer cosas muy malas.... ¿Que tal publicar una falsa historia de las transacciones?
  37. 37. 39
  38. 38. 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)
  39. 39. 41 Solución #5 HH H Tx1; Tx2; Tx3… Valor inicial (coinbase) Tx34; Tx35; Tx36… Tx54; Tx55; Tx56… Bloque de transacciones Cadena de bloques (Blockchain) …
  40. 40. 42 ¿Pero quien calcula el siguiente bloque?
  41. 41. 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 H1001101|| 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...
  42. 42. 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
  43. 43. 45 Poder computacional de la red bitcoin
  44. 44. 46 ¿Suena bien… pero porque la gente gastaría sus ciclos CPU?
  45. 45. 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
  46. 46. 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?
  47. 47. 49 ¡Bitcoin es un contrato inteligente!
  48. 48. 50
  49. 49. 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 • …
  50. 50. 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!
  51. 51. 53 Claro, un contrato inteligente que ejecuta otro contrato inteligente...
  52. 52. 54 Innovación v/s Fragmentación http://mapofcoins.com/bitcoin# Bitcoin Litecoin Litecoin
  53. 53. 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
  54. 54. 56 Contrato de venta http://etherscripter.com/0-5-1/ Se resuelve el típico problema de quien paga primero.
  55. 55. 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 • …
  56. 56. 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?
  57. 57. 59 (en nombre de Satoshi Nakamoto) ¡GRACIAS!

×