cuando las maquinas deciden por nosotros: introducción a los contratos inteligentes
TRANSCRIPT
Cuando las maquinas
deciden por nosotros:
Introducción a los
contratos inteligentes
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
11
The first five times you think you
understand it, you don’t.
http://dankaminsky.com/2011/08/05/bo2k11/
14
Solución #0
¿Es posible crear
una moneda digital
descentralizada?
Los sistemas
centralizados tienen
limitaciones…
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
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!
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).
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”
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?
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)
…
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
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?
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!
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?