Software y servicios de internet mapa conceptual.pdf
Cuando las maquinas deciden por nosotros: introducción a los contratos inteligentes
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
¿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
“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
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,…)
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
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
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. 24
Cada transacción tiene que ser pública.
¡Nadie va a querer usar este sistema que
revela todos nuestros movimientos
financieros!
24. 26
Arreglo #3
El identificador del usuario
se reemplaza por un número aleatorio
Dirección Bitcoin:
31uEbMgunupShBVTewXjtqbBv5MndwfXhb
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. 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. 29
Cada cuenta es pública entonces
puede hacer transferencia desde
cualquier parte (puedo gastar
bitcoins que no son míos).
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. 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. 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. 37
Pagar con bitcoin
Pagar con bitcoin es MUY sencillo
pero IRREVERSIBLE
Mi dirección bitcoin:
1Ask9dvcJHEyjiVm5L9vjxYTU3i8Q1Q1zV
36. 38
Todavía puedo hacer cosas muy malas....
¿Que tal publicar una falsa historia de las
transacciones?
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. 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. 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. 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. 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
• …
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
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. 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?