Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
De Bitcoin a Ethereum (versión abreviada)
Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas
Autónomas...
2 / 80
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funcionamiento
3 ...
2 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funcio...
3 / 80
Motivación de desarrolladores de Bitcoin
Contexto
crisis hipotecas sub-prime gatillada
el 2007
quiebra de Lehman Br...
3 / 80
Motivación de desarrolladores de Bitcoin
Contexto
crisis hipotecas sub-prime gatillada
el 2007
quiebra de Lehman Br...
4 / 80
Aparición de Bitcoin
1 de Noviembre de 2008: un desconocido Satoshi Nakamoto publica paper
con idea en lista de cor...
5 / 80
1era Transacción con Bitcoin en el “mundo real”
La Pizza de los 10 Millones de Dólares
Una Pizza por 10.000 BTC el ...
6 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funcio...
7 / 80
Funcionamiento del Bitcoin: Blockchain
Todas las transacciones se registran en un “libro” (contable) público,
compa...
8 / 80
Bloques
Las transacciones se agrupan en bloques, nodos compiten
Armar un bloque válido es computacionalmente caro
P...
9 / 80
Bloques
Bloque 1
Header
Hash( Header
bloque anterior )
Hash Txs
Transacciones
bloque 1
Bloque válido si
Todas las t...
9 / 80
Bloques
Bloque 1
Header
Hash( Header
bloque anterior )
Hash Txs
Transacciones
bloque 1
Bloque 2
Header
Hash( Header...
10 / 80
Minado: proceso de encontrar nuevos bloques
Proof of work resuelve 2 problemas
1 forma simple y efectiva de consen...
11 / 80
Validación de un bloque
1 Bloque anterior existe y es válido
Definición recursiva hasta “genesis block”
Si está en ...
12 / 80
Generación de Bitcoins
Inicio: 50 BTC por bloque
Se divide en 2 cada 210,000
bloques (4 años)
Al año 2024: 19,6 MM...
13 / 80
Blockchain: Seguridad
Caso 1: 2 nodos encuentran el siguiente bloque
Razones: Problemas de red, solución prácticam...
13 / 80
Blockchain: Seguridad
Caso 1: 2 nodos encuentran el siguiente bloque
Razones: Problemas de red, solución prácticam...
14 / 80
Blockchain: Transacciones
Building block fundamental para el Blockchain
Forma de traspasar valor de una dirección ...
15 / 80
Blockchain: Transacciones encadenadas
Transferencia de propiedad de una dirección a otra
considerando uso sin rest...
15 / 80
Blockchain: Transacciones encadenadas
Transferencia de propiedad de una dirección a otra
considerando uso sin rest...
15 / 80
Blockchain: Transacciones encadenadas
Transferencia de propiedad de una dirección a otra
considerando uso sin rest...
16 / 80
Transacciones: detalles
Múltiples inputs, valores se suman
Múltiples outputs (normalmente 2: pago y vuelto)
Output...
16 / 80
Transacciones: detalles
Múltiples inputs, valores se suman
Múltiples outputs (normalmente 2: pago y vuelto)
Input
...
17 / 80
Tipos de transacción (según scriptPubKey)
Pay-to-PubkeyHash (P2PH)
al usar como input, se debe presentar:
llave pú...
18 / 80
Scripts en Bitcoin
Lenguaje basado en Forth para especificar cómo se pueden canjear los
bitcoins enviados en una tr...
19 / 80
Escalabilidad: Merkle Trees
Simplified Payment Verification: no requiero todas las transacciones para
verificar 1 den...
20 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
21 / 80
Privacidad
Se recomienda usar una llave nueva para cada transacción
Uso de múltiples inputs en una transacción ind...
22 / 80
Ejemplo de Mixing Service: Bitcoinfog
Se accede mediante Tor
Recibe pago a dirección generada aleatoriamente
Se co...
23 / 80
Billeteras
Colección de llaves privadas
Actuales y futuras
se evita necesidad de respaldar después de cada uso
(po...
24 / 80
eWallets
llamadas browser-based wallet o wallet service
Billeteras accesibles vía web
Proveedor maneja todas las l...
25 / 80
Billeteras en papel
Documento que contiene toda la información para
generar llaves privadas
Semilla para generador...
26 / 80
(Hierarchic) Deterministic Wallets
Se genera una secuencia determinista de pares
Secuencia pseudo-aleatoria
Propie...
27 / 80
Minado de Bitcoins
Inicio: hardware casero (2010)
Computador de escritorio en tiempos
ociosos (hasta 100 Mhash/s)
...
28 / 80
Minado de Bitcoins (2)
Múltiples tarjetas (2012)
Foto: “Einer von denen” (Flickr)
FPGA Mining (2013)
Field-program...
29 / 80
Minado de Bitcoins (3)
ASIC vía USB (2013)
Application-specific integrated circuit
Foto: Mirko Tobias Schäfer
ASIC ...
30 / 80
Minado de Bitcoins (4)
ASICs masivos: ya no son juguetes
Foto: Bitcoin rig al norte de Suecia (Julio 2014), por Da...
31 / 80
Mining Pools
Hoy en día casi nadie mina solo
Pools de minado
Conjunto de personas trabajando en paralelo
Al encont...
32 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
33 / 80
Principales problemas que enfrenta Bitcoin
Volatilidad
Robo, Estafas
Mercados negros
Lavado de dinero
Malware
Prob...
34 / 80
“51 % Attack”
Objetivos
Reescribir el pasado
Dominar la red
Requiere generar:
el bloque que se quiere
modificar
tod...
34 / 80
“51 % Attack”
Objetivos
Reescribir el pasado
Dominar la red
Requiere generar:
el bloque que se quiere
modificar
tod...
35 / 80
Otros ataques
Robo de Billetera
Billetera guarda datos no cifrados
Transaction ID Malleability
Problema de impleme...
36 / 80
Combined output overflow I
Problema de implementación + “monocultivo”
Problema
Al sumar los valores de dos outputs ...
37 / 80
Combined output overflow II
Problema de implementación + “monocultivo”
Solución
Se pidió no seguir generando bloque...
38 / 80
Micro Payments exploit
Problema
Nodo de referencia exige transaction fee para
Transacciones > 1000 bytes
Outputs c...
39 / 80
Blockchain hard fork
13 de marzo 2013: cambio de versión genera comportamiento incompatible
Versión 0.7 no soporta...
40 / 80
Bitcoin Timejacking
Timestamping en Bitcoin
Nodos deben mantener producción de bloques en 1 cada app. 10 minutos
R...
41 / 80
Bitcoin Timejacking
Ataque
atacante agregan suficientes “peers” para que
adelanten el reloj de los peers del objeti...
42 / 80
Bitcoin Timejacking
Soluciones
Usar solamente “system time” para validar recepción de bloques
Aceptar solamente tr...
43 / 80
Selfish Mining
Problema
Cuando un minero encuentra un bloque, lo publica
Si no lo publica de inmediato, puede ganar...
44 / 80
Selfish Mining
Requerimientos al atacante
Debe poder minar un bloque antes que cualquiera
con 1
3 del poder computa...
45 / 80
Volatilidad
Volumen total de moneda es pequeño
Cada transacción/noticia grande tiene impacto fuerte
Valor total de...
46 / 80
Valor histórico de Bitcoin [USD]
↑ Fuente: http://bitcoincharts.com/
46 / 80
Valor histórico de Bitcoin [USD]
↑ Fuente: http://bitcoincharts.com/ ↓ Fuente: Google Trends
47 / 80
Google Trends
G 2012-04 Hacker currency Bitcoin crashes
F 2013-08 Srsly? Bitcoin, selfie added to Oxford dictionary...
48 / 80
Lavado de dinero
desde 2010, Financial Action Task Force (FATF) incorpora Monedas Virtuales
en sus análisis
49 / 80
Mt. Gox: Magic The Gathering Online eXchange
Comenzó en 2006 para canjear naipes del juego MTGO como acciones,
fun...
50 / 80
Mt. Gox: la debacle
Junio 2013: se suspenden retiros en USD
Febrero 2014: se suspenden todas las actividades, siti...
51 / 80
Silk Road Marketplace
Mercado en la DarkNet, lanzado en Febrero
2011
Conocido por sus ventas de drogas de
diverso ...
52 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
53 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
54 / 80
Ethereum: Motivación
2 formas de extender Bitcoin, cada una con limitaciones
Usando Bitcoin Blockchain
Limitacione...
55 / 80
Ethereum: Motivación (2)
Smart Property
Propiedad cuya pertenencia es controlada por el blockchain
Ej: conservador...
56 / 80
¿Qué es Ethereum?
Logo: Marc van der Chijs
Una plataforma de consenso descentralizado
“The ultimate abstract found...
57 / 80
Ethereum: conceptos
Separación de árbol de estado y lista de transacciones
Lenguaje de programación Turing-complet...
58 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
59 / 80
Cuentas (Accounts)
Agentes autónomos que “viven” en el blockchain
Tiene una dirección Ethereum de 20 bytes, con:
U...
60 / 80
Transacciones
para enviar un mensaje de una cuenta de dueño externo
Contiene los siguientes datos:
Destino del men...
61 / 80
Mensajes
Objetos virtuales (solo existen en el contexto de ejecución de Ethereum
Generado por un contrato mediante...
62 / 80
Ethereum Script
Bajo nivel: bytecode en EVM (Ethereum Virtual Machine)
Alto nivel: Serpent (basado en Python), otr...
63 / 80
Procesamiento de transacciones
1 Validar que transacción está bien formada (número de valores, firma, nonce
es igua...
64 / 80
Sub-transacciones
Un contrato envía un mensaje a otro contrato
Especifica STARTGAS para sub-transacción
Si falla po...
65 / 80
Validación de un bloque
1 Revisar existencia y validez de bloque referenciado como previo
2 Revisar timestamp sea ...
66 / 80
Almacenamiento del Estado
En teoría, se almacena el estado en cada bloque
(key, value)
Estructura de datos: Merkle...
67 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
68 / 80
Aplicaciones: 3 tipos
Aplicaciones financieras
monedas (sub-currencies), derivados financieros, contratos de cobertu...
69 / 80
Smart Property
Ethereum + IoT = Smart Property
Ej: arriendo por horas
Se ingresa llave pública de beneficiario, tie...
69 / 80
Smart Property
Ethereum + IoT = Smart Property
Ej: arriendo por horas
Se ingresa llave pública de beneficiario, tie...
70 / 80
Sistemas de Token
Muy fáciles de implementar en Ethereum
Posibilidad de por ejemplo pagar transaction fees en la m...
71 / 80
DAOs: Aplicaciones Autónomas Distribuidas
Organizaciones cuyas reglas y acciones están determinadas por código en ...
72 / 80
¿Skynet?
73 / 80
Code is Law
Lessig, 2000: “Code and other Laws of
Cyberspace”
Code is Law
Código en derecho (wet code)
Código en i...
74 / 80
Wet vs. dry code
Derecho Software
Lógica basada en mentes subjetivas, lógica booleana,
analogías bits
Seguridad de...
75 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
76 / 80
Comunicación con el mundo externo
En ejecución hay acceso a datos del Blockchain
Necesitamos incorporar datos del ...
77 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
78 / 80
Proyectos sobre Ethereum
Decentralized prediction
market built on Ethereum
http://augur.net/
Predict the future
– ...
79 / 80
Contenidos
1 Bitcoin
Funcionamiento Blockchain
Uso
Problemas y Ataques
2 Ethereum
Introducción
Componentes y funci...
De Bitcoin a Ethereum (versión abreviada)
Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas
Autónomas...
Upcoming SlideShare
Loading in …5
×

De Bitcoin a Ethereum: Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas Autónomas

1,333 views

Published on

El Blockchain y su más conocido uso, la criptomoneda Bitcoin, son temas candentes hoy en día, abarcando los ámbitos técnico, social, financiero y hasta político. No pasa un día en que no haya alguna institución financiera, gobierno u otra empresa tradicional, ni hablar de las Fintech o empresas ligadas a la informática, anunciando interés o avances relacionados con Blockchain. Si bien cada uno de estos ámbitos nos resulta apasionante, en esta charla nos concentraremos en las temáticas técnicas: cuál es la base sobre la cual opera una Blockchain, cuáles han sido desafíos pasados y cuáles son algunos de los desafíos futuros.

Published in: Technology
  • Login to see the comments

De Bitcoin a Ethereum: Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas Autónomas

  1. 1. De Bitcoin a Ethereum (versión abreviada) Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas Autónomas Jens Hardings Perl <jhp@moit.cl> 4 de mayo de 2016 Licenciado bajo Creative Commons Attribution-ShareAlike 4.0.
  2. 2. 2 / 80 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  3. 3. 2 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  4. 4. 3 / 80 Motivación de desarrolladores de Bitcoin Contexto crisis hipotecas sub-prime gatillada el 2007 quiebra de Lehman Bros 15 de Septiembre 2008 fallas en organismos centrales encargados de regular descontento general que derivó en Occupy Wall Street (Septiembre 2011) deseo de contar con una moneda independiente de control centralizado Objetivos técnicos Base de datos distribuida que registra transacciones Inspirada en sistemas P2P como Gnutella, Tor No requiere ente central confiable Sistema autosustentable: incentivos a quienes sustentan la red Eficiencia: transacción “confirmada” en ∼ 1 hora t. de crédito: 60 a 180 días cheques: 1 a 2 semanas
  5. 5. 3 / 80 Motivación de desarrolladores de Bitcoin Contexto crisis hipotecas sub-prime gatillada el 2007 quiebra de Lehman Bros 15 de Septiembre 2008 fallas en organismos centrales encargados de regular descontento general que derivó en Occupy Wall Street (Septiembre 2011) deseo de contar con una moneda independiente de control centralizado Objetivos técnicos Base de datos distribuida que registra transacciones Inspirada en sistemas P2P como Gnutella, Tor No requiere ente central confiable Sistema autosustentable: incentivos a quienes sustentan la red Eficiencia: transacción “confirmada” en ∼ 1 hora t. de crédito: 60 a 180 días cheques: 1 a 2 semanas
  6. 6. 4 / 80 Aparición de Bitcoin 1 de Noviembre de 2008: un desconocido Satoshi Nakamoto publica paper con idea en lista de correos de criptografía 3 de enero de 2009: Se genera el primer bloque del Blockchain 9 de enero de 2009: Nakamoto publica primera versión del software de referencia Estuvo activo hasta mediados de 2010, cuando entregó el control (repositorio, dominios, etc) a terceros No se sabe si Satoshi Nakamoto es su nombre real, o si es un grupo más que una persona
  7. 7. 5 / 80 1era Transacción con Bitcoin en el “mundo real” La Pizza de los 10 Millones de Dólares Una Pizza por 10.000 BTC el 22 de Mayo de 2010 10,000 BTC = 42 USD en la fecha Más de 4,000,000 USD en 2016 10,000 BTC = 11,472,500 USD al 4 de diciembre 2013
  8. 8. 6 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  9. 9. 7 / 80 Funcionamiento del Bitcoin: Blockchain Todas las transacciones se registran en un “libro” (contable) público, compartido y descentralizado: el blockchain Uso de Elliptic Curve Digital Signature Algorithm (ECDSA) y SHA-256 Identificación de una contraparte es la llave pública dirección: hash de llave pública Privacidad: llave pública no da indicios sobre la identidad Por cada bitcoin, se registra cada transacción desde su creación al estado actual Los bitcoin se pueden subdividir en hasta 10−8 unidades un 10−8 de bitcoin es un satoshi De ser necesario, protocolo se puede modificar para aceptar divisiones más pequeñas
  10. 10. 8 / 80 Bloques Las transacciones se agrupan en bloques, nodos compiten Armar un bloque válido es computacionalmente caro Proof of work (Hashcash) Promedio: un bloque cada 10 minutos Dificultad se ajusta cada 2016 bloques (∼ 2 semanas) Incentivo a generar bloques Cada bloque entrega bitcoins a quien lo genera (transacción 1 del bloque) Incentivo a incorporar todas las transacciones Generador del bloque se queda con los transaction fees de cada transacción Un bloque depende de todos los anteriores: blockchain Blockchain más largo es el válido (se descartan cadenas más cortas) No se intenta buscar ni castigar participantes deshonestos
  11. 11. 9 / 80 Bloques Bloque 1 Header Hash( Header bloque anterior ) Hash Txs Transacciones bloque 1 Bloque válido si Todas las transacciones son válidas Proof-of-work válido
  12. 12. 9 / 80 Bloques Bloque 1 Header Hash( Header bloque anterior ) Hash Txs Transacciones bloque 1 Bloque 2 Header Hash( Header bloque anterior ) Hash Txs Transacciones bloque 2 Bloque 3 Header Hash( Header bloque anterior ) Hash Txs Transacciones bloque 3 Bloque 4 Header Hash( Header bloque anterior ) Hash Txs Transacciones bloque 4 Bloque válido si Todas las transacciones son válidas Proof-of-work válido
  13. 13. 10 / 80 Minado: proceso de encontrar nuevos bloques Proof of work resuelve 2 problemas 1 forma simple y efectiva de consensuar el estado del blockchain 2 mecanismo de entrada al proceso de consenso peso relativo de cada participante es su poder computacional Algoritmo Construyo el bloque 1era transacción me paga los bitcoins por generar el bloque Mi bloque es diferente al de cualquier otro minero Nonce = 0 Valido si sha256(bloque) < target Incremento nonce y reintento
  14. 14. 11 / 80 Validación de un bloque 1 Bloque anterior existe y es válido Definición recursiva hasta “genesis block” Si está en el blockchain, es válido 2 Timestamp del bloque debe ser superior al del bloque previo y menos de 2 horas en el futuro 3 Proof of work es válido 4 Si S0 es el estado del bloque anterior y TX son las n transacciones del bloque: ∀i ∈ {0 · · · n − 1}Si+1 = Apply(Si, TXi) Si hay error, bloque no es válido El orden de las transacciones es relevante 5 Sn es el nuevo estado El estado no está codificado explícitamente
  15. 15. 12 / 80 Generación de Bitcoins Inicio: 50 BTC por bloque Se divide en 2 cada 210,000 bloques (4 años) Al año 2024: 19,6 MM BTC Nunca se superarán los 21MM de BTC 0 210 420 630 840 1050 1260 1470 1680 2009 2013 2017 2021 2025 2029 2033 2037 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 0 5 10 15 20 Bitcoin Inflation vs. Time InflationRate(annualized) Year Bitcoins(millions)
  16. 16. 13 / 80 Blockchain: Seguridad Caso 1: 2 nodos encuentran el siguiente bloque Razones: Problemas de red, solución prácticamente simultánea, mala fe Receptores eligen primero que llega Partición de la red con 2 cadenas del mismo largo Un nodo encuentra siguiente bloque Demás eliminan la otra cadena (más corta) Caso 2: Doble gasto El segundo gasto que llega es desechado por el nodo Si ∼ 50 % de los nodos toma un gasto, el resto el otro Cadena de bloque difiere Uno nodo encuentra primero el segundo bloque, se descarta cadena más corta Puede quedar una sola transacción de las dos
  17. 17. 13 / 80 Blockchain: Seguridad Caso 1: 2 nodos encuentran el siguiente bloque Razones: Problemas de red, solución prácticamente simultánea, mala fe Receptores eligen primero que llega Partición de la red con 2 cadenas del mismo largo Un nodo encuentra siguiente bloque Demás eliminan la otra cadena (más corta) Caso 2: Doble gasto El segundo gasto que llega es desechado por el nodo Si ∼ 50 % de los nodos toma un gasto, el resto el otro Cadena de bloque difiere Uno nodo encuentra primero el segundo bloque, se descarta cadena más corta Puede quedar una sola transacción de las dos
  18. 18. 14 / 80 Blockchain: Transacciones Building block fundamental para el Blockchain Forma de traspasar valor de una dirección a otra En una transacción se traspasa todo el valor que entró por otra transacción Se puede usar la misma dirección para el vuelto Se recomienda una dirección diferente para cada transacción Para usar el valor en una dirección se referencia la transacción no la dirección no la billetera (wallet) la transacción anterior puede especificar cómo se puede gastar el valor en la siguiente especie de contrato
  19. 19. 15 / 80 Blockchain: Transacciones encadenadas Transferencia de propiedad de una dirección a otra considerando uso sin restricción por parte del dueño Firma de dueño 0 Hash Llave pública de dueño 1 Llave privada de dueño 1 Transacción 1
  20. 20. 15 / 80 Blockchain: Transacciones encadenadas Transferencia de propiedad de una dirección a otra considerando uso sin restricción por parte del dueño Firma de dueño 0 Hash Llave pública de dueño 1 Llave privada de dueño 1 Transacción 1 Firma de dueño 1 Hash Llave pública de dueño 2 Llave privada de dueño 2 Transacción 2 Verifica Firma
  21. 21. 15 / 80 Blockchain: Transacciones encadenadas Transferencia de propiedad de una dirección a otra considerando uso sin restricción por parte del dueño Firma de dueño 0 Hash Llave pública de dueño 1 Llave privada de dueño 1 Transacción 1 Firma de dueño 1 Hash Llave pública de dueño 2 Llave privada de dueño 2 Transacción 2 Firma de dueño 2 Hash Llave pública de dueño 3 Llave privada de dueño 3 Transacción 3 Verifica Firma Verifica Firma
  22. 22. 16 / 80 Transacciones: detalles Múltiples inputs, valores se suman Múltiples outputs (normalmente 2: pago y vuelto) Output Valor scriptPubKey: cómo se puede canjear el valor solamente hash(script) script lo da canjeador Valor no asignado es “transaction fee” Cada output se usa como input en 1 única transacción
  23. 23. 16 / 80 Transacciones: detalles Múltiples inputs, valores se suman Múltiples outputs (normalmente 2: pago y vuelto) Input Referencia el output en otra transacción (ID tx, posición) scriptSig: cumplimiento de exigencia para canjear establecido en transacción referenciada Output Valor scriptPubKey: cómo se puede canjear el valor solamente hash(script) script lo da canjeador Valor no asignado es “transaction fee” Cada output se usa como input en 1 única transacción
  24. 24. 17 / 80 Tipos de transacción (según scriptPubKey) Pay-to-PubkeyHash (P2PH) al usar como input, se debe presentar: llave pública (dirección es solamente el hash) firma de la transacción 20 bytes (el hash) Pay-to-Script-Hash (P2SH) al usar como input, se ejecuta el script script lo provee canjeador hash debe calzar con scriptPubKey de output al finalizar debe quedar un solo valor en el stack valor debe ser true (= 0)
  25. 25. 18 / 80 Scripts en Bitcoin Lenguaje basado en Forth para especificar cómo se pueden canjear los bitcoins enviados en una transacción Funcionalidad reducida No tiene loops Ejemplo de usos: Firmas simultáneas con distintas llaves privadas n firmas de m alternativas (n < m) Sin firmas (ej: password)
  26. 26. 19 / 80 Escalabilidad: Merkle Trees Simplified Payment Verification: no requiero todas las transacciones para verificar 1 dentro de un bloque Ejemplo con transacciones A, B, C, D, E: merkle root = h(h(h(h(A)+h(B)) + h(h(C)+h(D))) + h(h(h(E)+h(E)) + h(h(E)+h(E)))) A B C D E a = h(A) b = h(B) c = h(C) d = h(D) e = h(E) ab = h(a+b) cd = h(c+d) ee = h(e+e) abcd=h(ab+cd) eeee=h(ee+ee) abcdeeee = h(abcd+eeee)
  27. 27. 20 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  28. 28. 21 / 80 Privacidad Se recomienda usar una llave nueva para cada transacción Uso de múltiples inputs en una transacción indica que esas direcciones son del mismo dueño Secuencia de transacciones indica flujo de pagos Mixing services también llamados “laundering services” servicio que recibe bitcoins y los redistribuye requiere confianza ciega en quien entrega el servicio CoinJoin: sin tercero confiable componer n transacciones independientes en 1 sola partes acuerdan outputs y montos, incluyendo vueltos cada contraparte firma su parte de la transacción transacción es válida sólo si todos firmaron
  29. 29. 22 / 80 Ejemplo de Mixing Service: Bitcoinfog Se accede mediante Tor Recibe pago a dirección generada aleatoriamente Se cobra una comisión aleatoria entre 1 % y 3 % Maneja un pool principal con bitcoins para pago al bajar los fondos del pool principal, va transfiriendo desde las direcciones aleatorias iniciales Al realizar un retiro, se define aleatoriamente: el número de tx (dependiendo tb. del monto) el valor relativo entre las tx la separación de tiempo entre tx (dentro de un rango total especificado)
  30. 30. 23 / 80 Billeteras Colección de llaves privadas Actuales y futuras se evita necesidad de respaldar después de cada uso (posiblemente) cache de transacciones y/o saldo total Puede cifrar las llaves privadas Si se pierde llave de cifrado, se pierde el contenido Versiones en web, software, hardware ejemplo de hardware wallet
  31. 31. 24 / 80 eWallets llamadas browser-based wallet o wallet service Billeteras accesibles vía web Proveedor maneja todas las llaves privadas Símil a un banco: confiamos en que dinero depositado se manejará según nuestras instrucciones Pero sin el respaldo legal
  32. 32. 25 / 80 Billeteras en papel Documento que contiene toda la información para generar llaves privadas Semilla para generadores deterministas de llave Llaves en papel (solamente 1 par) Regalos o propinas Tokens físicos: para acceder a la llave privada, se destruye el token Almacenamiento offline También se usa para referirse a una única llave almacenada en papel como medio óptico
  33. 33. 26 / 80 (Hierarchic) Deterministic Wallets Se genera una secuencia determinista de pares Secuencia pseudo-aleatoria Propiedades deseadas: Master Public Key Permite generar todas las llaves públicas No permite obtener las llaves privadas correspondientes Si se compromete, solamente permite ver saldo total, no usarlo Jerárquico (HD Wallets) Master Public/Private Key permite generar llaves que a su vez son Master Public/Private Keys (de jerarquía inferior) Conociendo la llave de jerarquía superior puedo calcular todas las inferiores Al revés no funciona
  34. 34. 27 / 80 Minado de Bitcoins Inicio: hardware casero (2010) Computador de escritorio en tiempos ociosos (hasta 100 Mhash/s) Uso de GPUs (2011) Menor consumo de energía, mayor velocidad. (hasta 800 Mhash/s, 2.500 con 6 GPUs) Foto: Stefan Ledwina
  35. 35. 28 / 80 Minado de Bitcoins (2) Múltiples tarjetas (2012) Foto: “Einer von denen” (Flickr) FPGA Mining (2013) Field-programmable gate array (2 a 10 Ghash/s) Foto: Xiangfu (Wikimedia Commons)
  36. 36. 29 / 80 Minado de Bitcoins (3) ASIC vía USB (2013) Application-specific integrated circuit Foto: Mirko Tobias Schäfer ASIC (2014) Application-specific integrated circuit (1100 - 1500 Ghash/s) Foto: Wikimedia Commons
  37. 37. 30 / 80 Minado de Bitcoins (4) ASICs masivos: ya no son juguetes Foto: Bitcoin rig al norte de Suecia (Julio 2014), por Datavetaren
  38. 38. 31 / 80 Mining Pools Hoy en día casi nadie mina solo Pools de minado Conjunto de personas trabajando en paralelo Al encontrar un bloque se divide proporcional al esfuerzo Primer bloque minado en conjunto: Septiembre 2010 Recompensa con menor varianza
  39. 39. 32 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  40. 40. 33 / 80 Principales problemas que enfrenta Bitcoin Volatilidad Robo, Estafas Mercados negros Lavado de dinero Malware Problemas de implementación Problemas de Gobernanza
  41. 41. 34 / 80 “51 % Attack” Objetivos Reescribir el pasado Dominar la red Requiere generar: el bloque que se quiere modificar todos los bloques posteriores todos los bloques generados en el intertanto Requiere al menos el 50 % + 1 de todo el poder computacional dedicado a la red No se pueden generar transacciones nuevas, solamente eliminar transacciones propias Se generaría desconfianza en la criptomoneda, afectando los recursos propios Ese poder computacional se puede usar para minar bitcoins honestamente
  42. 42. 34 / 80 “51 % Attack” Objetivos Reescribir el pasado Dominar la red Requiere generar: el bloque que se quiere modificar todos los bloques posteriores todos los bloques generados en el intertanto Requiere al menos el 50 % + 1 de todo el poder computacional dedicado a la red No se pueden generar transacciones nuevas, solamente eliminar transacciones propias Se generaría desconfianza en la criptomoneda, afectando los recursos propios Ese poder computacional se puede usar para minar bitcoins honestamente
  43. 43. 35 / 80 Otros ataques Robo de Billetera Billetera guarda datos no cifrados Transaction ID Malleability Problema de implementación al no chequear formato de llave pública Al reformatear la misma llave, genera un ID de transacción distinta Emisor original no encuentra tx en Blockchain y reenvía posiblemente con otro input
  44. 44. 36 / 80 Combined output overflow I Problema de implementación + “monocultivo” Problema Al sumar los valores de dos outputs se generaba un overflow y con eso fallaba el chequeo El bloque 74638, (15 de Agosto de 2015), aprovechó la vulnerabilidad Generó 184.467.440.736,58 nuevos Bitcoin
  45. 45. 37 / 80 Combined output overflow II Problema de implementación + “monocultivo” Solución Se pidió no seguir generando bloques mientras se soluciona el problema Se corrigió el código dentro de un par de horas No se generaron más bloques con ese error Se tuvo que corregir el blockchain, que contenía bloques inválidos Normalmente bloques ya chequeados no se re-chequean Se alcanzaron a generar 54 bloques sobre el erróneo Blockchain generado por nodos “corregidos” se hizo más largo
  46. 46. 38 / 80 Micro Payments exploit Problema Nodo de referencia exige transaction fee para Transacciones > 1000 bytes Outputs con menos de 0,01 Bitcoin Prioridad es suficientemente alta Pagos realizados por menos de 0,01 Bitcoin quedan para siempre sin confirmar Pagos que incluyen esos pagos no confirmados también No es un bug en sí, más bien una molestia Solución Se actualiza cliente para que no envíe transacciones con inputs no confirmados.
  47. 47. 39 / 80 Blockchain hard fork 13 de marzo 2013: cambio de versión genera comportamiento incompatible Versión 0.7 no soporta bloques de más de 500kB por uso de una librería con esa limitación Un nodo con versión 0.8 generó un bloque de 974kB Los nodos 0.7 no aceptaban ninguna cadena con ese bloque Se generaron 2 cadenas cada vez más largas Se debió detener la generación de nuevos bloques Versión 0.8.1 respetó ese límite, hasta el 15 de mayo de 2013 Tiempo para que se actualicen los nodos
  48. 48. 40 / 80 Bitcoin Timejacking Timestamping en Bitcoin Nodos deben mantener producción de bloques en 1 cada app. 10 minutos Requieren tener un acuerdo sobre el momento en que se genera cada bloque Forma en que un nodo define su “network time”: mediana de los tiempos publicados por peers, si se encuentra en ±70 minutos respecto al system time tiempo de sistema si no Un nodo rechaza bloques si el timestamp del bloque: es 2 horas en el futuro respecto al “network time” está en el pasado respecto a media de últimos 11 bloques
  49. 49. 41 / 80 Bitcoin Timejacking Ataque atacante agregan suficientes “peers” para que adelanten el reloj de los peers del objetivo atrase el reloj del objetivo diferencia: app. 140 minutos atacante genera bloque válido 190 minutos al futuro del “network time” nodos adelantados en 70 minutos lo aceptan nodo objetivo lo rechaza (está a 260 minutos adelantados para él) atacante ha desconectado al nodo objetivo del resto nodo objetivo va a aceptar transacciones duplicadas
  50. 50. 42 / 80 Bitcoin Timejacking Soluciones Usar solamente “system time” para validar recepción de bloques Aceptar solamente transacciones confirmadas Introduce demora en validar el pago Ajustar rangos de aceptabilidad Usar solamente peers confiables
  51. 51. 43 / 80 Selfish Mining Problema Cuando un minero encuentra un bloque, lo publica Si no lo publica de inmediato, puede ganar tiempo minando el siguiente Debe difundir su bloque más rápido de lo que se difunde otro cuando otro minero acierta Atacantes obtienen una recompensa mayor que la justa Al comenzar antes que cualquiera, amplifican su poder computacional real Al existir un pool con selfish mining, hay incentivos a unirse a él Se pierde la esencia distribuida del blockchain
  52. 52. 44 / 80 Selfish Mining Requerimientos al atacante Debe poder minar un bloque antes que cualquiera con 1 3 del poder computacional (en lugar del 50 % esperado) Tener buena conectividad aumenta su probabilidad de imponer sus bloques a la red si llega perimro al 50 % de los mineros honestos, requiere solo 25 % del poder computacional Remedio propuesto Propagar todas las cadenas de mismo largo que compitan Minar sobre alguna elegida al azar Disminuye la probabilidad que un atacante imponga su cadena sobre las demás
  53. 53. 45 / 80 Volatilidad Volumen total de moneda es pequeño Cada transacción/noticia grande tiene impacto fuerte Valor total del valor existente es bajo Capitalización de BTC: e3,950,267,412 USD (M1): e1,952,504,690,000 (494x BTC) EUR (M1): e5,493,000,000,000 (1390x BTC) BOB (M1): e5,286,504,000 (1,34x BTC) Fuentes: http://coinmarketcap.com/, Banco Central Europeo Moneda no tiene un valor inherente Moneda está en pocas manos 47 individuos tienen casi un 30 % de los bitcoins 927 individuos tienen el 50 % de los bitcoins Fuente: Business Insider
  54. 54. 46 / 80 Valor histórico de Bitcoin [USD] ↑ Fuente: http://bitcoincharts.com/
  55. 55. 46 / 80 Valor histórico de Bitcoin [USD] ↑ Fuente: http://bitcoincharts.com/ ↓ Fuente: Google Trends
  56. 56. 47 / 80 Google Trends G 2012-04 Hacker currency Bitcoin crashes F 2013-08 Srsly? Bitcoin, selfie added to Oxford dictionary E 2013-12 Bitcoin crashes on China measures D 2014-02 Bitcoin exchange Mt. Gox goes offline C 2014-06 Co-owner of bitcoin-linked sites settles SEC case B 2014-09 2 Bitcoin operators plead guilty in Silk Road case A 2015-01 Coinbase opens first US Bitcoin exchange
  57. 57. 48 / 80 Lavado de dinero desde 2010, Financial Action Task Force (FATF) incorpora Monedas Virtuales en sus análisis
  58. 58. 49 / 80 Mt. Gox: Magic The Gathering Online eXchange Comenzó en 2006 para canjear naipes del juego MTGO como acciones, funcionó durante 3 meses Re-uso del nombre para crear casa de cambio de Bitcoin (70 % de tx bitcoin en 2013) Junio 2011: un atacante logró bajar el precio de USD 17,50 a USD 0,01 con grandes transacciones consigo mismo usando credenciales robadas a un auditor de MtGox, generando pérdidas por USD 8.750.000 a clientes Octubre 2011: se generan transacciones enviando 2.609 BTC a direcciones inválidas Febrero 2013: se “pierden” transacciones canceladas por receptor y devueltas a Mt.Gox, se recuperan 3 meses después Mayo 2013: EEUU embarga USD 2,9MM por no registrarse como negocio de transferencia de dinero
  59. 59. 50 / 80 Mt. Gox: la debacle Junio 2013: se suspenden retiros en USD Febrero 2014: se suspenden todas las actividades, sitio web desaparece Razones de los problemas de liquidez: desorden y mala gestión CEO alega que fueron robos y estafas a lo largo de años Empleados revelaron que ni siquiera existía separación entre billetera personal del CEO y los fondos de la empresa
  60. 60. 51 / 80 Silk Road Marketplace Mercado en la DarkNet, lanzado en Febrero 2011 Conocido por sus ventas de drogas de diverso tipo También armas, asesinatos por encargo, etc. Administrada por Ross Ulbricht (San Francisco) Transaba exclusivamente con Bitcoin Fue cerrado en Octubre 2013 Reapareció al par de semanas pero se volvió a clausurar
  61. 61. 52 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  62. 62. 53 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  63. 63. 54 / 80 Ethereum: Motivación 2 formas de extender Bitcoin, cada una con limitaciones Usando Bitcoin Blockchain Limitaciones del scripting (loops) No hay posibilidad de transferencias exactas de montos a determinar en el futuro No hay estados (solo gastado o no gastado), necesario para implementar contratos complejos No hay acceso a datos del Blockchain como timestamp o hash de bloque previo Imposibilidad de usar SPV en extensiones (Ej: Colored Coins) Blockchain paralelo Cada implementación un universo paralelo Moneda que solamente sirve para un fin Valorizaciones y volatilidades diversas Esfuerzos de bootstrapping, desarrollo y minado
  64. 64. 55 / 80 Ethereum: Motivación (2) Smart Property Propiedad cuya pertenencia es controlada por el blockchain Ej: conservador de bienes raíces digital Smart Contracts contratos que se auto-aplican idea original: Nick Szabo (1997) Decentralized autonomous organizations Metacoin Uso de Bitcoin como base para otros protocolos Símil a lo que es TCP/IP para Internet Diversos protocolos se implementan “sobre” el mismo blockchain
  65. 65. 56 / 80 ¿Qué es Ethereum? Logo: Marc van der Chijs Una plataforma de consenso descentralizado “The ultimate abstract foundational layer” Un computador virtual descentralizado Moneda propia o “crypto-fuel” (Ether) Usado para pagar transaction fees Base para generar otras monedas sobre el Ethereum Blockchain
  66. 66. 57 / 80 Ethereum: conceptos Separación de árbol de estado y lista de transacciones Lenguaje de programación Turing-completo integrado Ethereum Script Cuentas (direcciones), en 2 sabores externally owned accounts: controladas por llaves privadas contract accounts (Contratos): controladas por su código de contrato Transacciones Paquete de datos firmados que contienen un mensaje Mensajes Objeto virtual (no serializado) usado en el contexto de ejecución
  67. 67. 58 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  68. 68. 59 / 80 Cuentas (Accounts) Agentes autónomos que “viven” en el blockchain Tiene una dirección Ethereum de 20 bytes, con: Un nonce usado para que cada transacción pueda ser procesada una sola vez El balance de ether de la cuenta El código de contrato, si existe El almacenamiento de la cuenta Cuentas de dueño externo No tienen código de contrato Se usan enviando mensajes firmados por el dueño Contratos Se ejecuta el código cuando llega un mensaje Pueden leer/escribir su almacenamiento, enviar mensajes y crear nuevos contratos
  69. 69. 60 / 80 Transacciones para enviar un mensaje de una cuenta de dueño externo Contiene los siguientes datos: Destino del mensaje Firma identificando el emisor Monto de ether a transferir Campo opcional de datos Valor STARTGAS Valor GASPRICE Protección ante DoS: STARTGAS Número máximo de pasos computacionales a ejecutar en la transacción (incluyendo sub-ejecuciones de mensajes) cálculo (CPU), ancho de banda y almacenaje GASPRICE Fee que el emisor está dispuesto a pagar por cada paso computacional
  70. 70. 61 / 80 Mensajes Objetos virtuales (solo existen en el contexto de ejecución de Ethereum Generado por un contrato mediante la instrucción CALL Contienen: Emisor del mensaje (implícito) Receptor del mensaje Monto de ether transferido con el mensaje Campo de datos (opcional) Valor STARTGAS
  71. 71. 62 / 80 Ethereum Script Bajo nivel: bytecode en EVM (Ethereum Virtual Machine) Alto nivel: Serpent (basado en Python), otros. Lenguaje basado en un stack (pila) Stack no persistente Memoria autoexpandible no persistente Almacenamiento persistente estado del contrato
  72. 72. 63 / 80 Procesamiento de transacciones 1 Validar que transacción está bien formada (número de valores, firma, nonce es igual al nonce de la cuenta del emisor 2 Calcular transaction fee como STARTGAS * GASPRICE, sustraer ese monto del balance del emisor, incrementar el nonce del emisor. Error si no hay suficiente saldo. 3 Inicializar GAS = STARTGAS, restar costo por byte en la transacción 4 Transferir el valor especificado en tx desde el emisor al receptor Si cuenta destino no existe, crearla Si destino es contrato, ejecutar su código 5 Si ejecución falla (fondos insuficientes; se acabó el GAS), se revierten los cambios salvo transaction fee 6 Devolución de GAS no gastado y pago de fees al minero
  73. 73. 64 / 80 Sub-transacciones Un contrato envía un mensaje a otro contrato Especifica STARTGAS para sub-transacción Si falla por falta de GAS, se aborta sub-transacción y se retoma actual
  74. 74. 65 / 80 Validación de un bloque 1 Revisar existencia y validez de bloque referenciado como previo 2 Revisar timestamp sea mayor que el del previo y menos de 15 minutos en el futuro 3 Revisar validez de número de bloque, dificultad, transaction root, uncle root y GASLIMIT GASLIMIT es el tope de GAS para calcular todas las transacciones 4 Revisar validez del proof of work 5 S0 es el estado del bloque previo 6 TX es el listado de las n transacciones en el bloque. ∀i ∈ [0 . . . n − 1], Si+1 = APPLY(Si, TXi). Si hay error o se consume más que el GASLIMIT del bloque, retornar error. 7 Sfinal = Sn, pero agregando la recompensa al minero. 8 Revisar que el Merkle tree root del bloque calza con el de Sfinal.
  75. 75. 66 / 80 Almacenamiento del Estado En teoría, se almacena el estado en cada bloque (key, value) Estructura de datos: Merkle Patricia Trie Basado en Patricia Trie / Radix Trie (“Trie”, de reTRIEval) Alfabeto hexadecimal (cada nodo tiene hasta 16 hijos), llave es binaria Cada nodo del árbol se referencia mediante su hash Estructura determinista: solo 1 forma de representar un estado, genera siempre el mismo hash Se mantiene una BD (hash, nodo) Si un (sub-)árbol no cambia, ya está almacenado en la BD En cada bloque solamente se incluyen los nodos cambiados (Sub-)árboles ya no referenciados pueden eliminarse
  76. 76. 67 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  77. 77. 68 / 80 Aplicaciones: 3 tipos Aplicaciones financieras monedas (sub-currencies), derivados financieros, contratos de cobertura (futuros; hedging contracts), libretas de ahorro, testamentos, contratos de trabajo. Aplicaciones semi-financieras Se transa dinero pero hay una fuerte componente extramonetaria. Ej: Recompensas auto-ejecutables para resolver problemas computacionales Aplicaciones no financieras Smart Property, Votación electrónica, Gobierno Corporativo Descentralizado, etc.
  78. 78. 69 / 80 Smart Property Ethereum + IoT = Smart Property Ej: arriendo por horas Se ingresa llave pública de beneficiario, tiempo, etc. Dispositivo que controla acceso se actualiza Autenticación mediante firma con llave privada
  79. 79. 69 / 80 Smart Property Ethereum + IoT = Smart Property Ej: arriendo por horas Se ingresa llave pública de beneficiario, tiempo, etc. Dispositivo que controla acceso se actualiza Autenticación mediante firma con llave privada
  80. 80. 70 / 80 Sistemas de Token Muy fáciles de implementar en Ethereum Posibilidad de por ejemplo pagar transaction fees en la misma sub-moneda Permiten crear sub-monedas o mapear a activos (estilo Colored Coins) Código para sistema de token (salvo distribución inicial y casos de borde) def send(to, value): if self.storage[msg.sender] >= value: self.storage[msg.sender] = self.storage[msg.sender] - value self.storage[to] = self.storage[to] + value
  81. 81. 71 / 80 DAOs: Aplicaciones Autónomas Distribuidas Organizaciones cuyas reglas y acciones están determinadas por código en el Blockchain Código que es público y auditable (en bytecode) Manejan sus propios recursos y reaccionan frente a eventos externos No dependen de ninguna entidad central No pueden ser intervenidas por vías judiciales, políticas ni militares Gobierno Corporativo para actualizar su código (“estatutos”) en ciertas condiciones
  82. 82. 72 / 80 ¿Skynet?
  83. 83. 73 / 80 Code is Law Lessig, 2000: “Code and other Laws of Cyberspace” Code is Law Código en derecho (wet code) Código en informática (dry code)
  84. 84. 74 / 80 Wet vs. dry code Derecho Software Lógica basada en mentes subjetivas, lógica booleana, analogías bits Seguridad desacato / prisión replicación + criptografía Predictabilidad flexible rígido Madurez alta evolución / larvario / pocas muchos casos experiencias Area silos independencia de jurisdiccionales instituciones políticas y financieras, sin fronteras Costos demandas: altísimo muy bajo Fuente: Nick Szabo, Devcon1 (Londres, Noviembre 2015)
  85. 85. 75 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  86. 86. 76 / 80 Comunicación con el mundo externo En ejecución hay acceso a datos del Blockchain Necesitamos incorporar datos del “mundo real” Oráculos o Data Feeds Contratos que son actualizados con datos Resultados de eventos deportivos Información climática Valores de acciones o monedas Posibilidad de des-centralizar Oráculos m de n (con m < n) Sistemas de reputación y/o recompensas (Ej: ShellingCoin)
  87. 87. 77 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  88. 88. 78 / 80 Proyectos sobre Ethereum Decentralized prediction market built on Ethereum http://augur.net/ Predict the future – crowdsourced. http://groupgnosis.com/ Blockchain Go- vernance Dapp http://boardroom.to/ Autonomous organiza- tions on the blockchain http://colony.io/ Build Your 1st Ethereum App In 20 Minutes Using Standard Web Tools. http://www.blockapps.net/ Next generation key- less access protocol for smart property http://airlock.me/ Social business founded to open up the world of how things are made https://www.provenance.org/ “If you can lock it, we will let you rent, sell or share it.” http://slock.it/ the first Smart Asset company built on Ethereum https://dgx.io/ A non-profit, decentrali- zed crowdfunding plat- form built on Ethereum http://weifund.io/ Autonomous bank & market maker http://makerdao.com/ Smart contract de- ployment tools http://etherparty.io/ Financial derivatives trading and settlement http://www.hitfin.com/ Solidity Online Compiler http://chriseth.github.io/browser- solidity/ Solidity Realtime Dev Environment http://meteor-dapp- cosmo.meteor.com/
  89. 89. 79 / 80 Contenidos 1 Bitcoin Funcionamiento Blockchain Uso Problemas y Ataques 2 Ethereum Introducción Componentes y funcionamiento 3 Aplicaciones Distribuidas (dApps DAOs) Acceso al “mundo real” Casos concretos
  90. 90. De Bitcoin a Ethereum (versión abreviada) Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas Autónomas Jens Hardings Perl <jhp@moit.cl> 4 de mayo de 2016 Licenciado bajo Creative Commons Attribution-ShareAlike 4.0.

×