De Bitcoin a Ethereum: Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas...

90
De Bitcoin a Ethereum (versión abreviada) Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas Autónomas Jens Hardings Perl <[email protected]> 4 de mayo de 2016 Licenciado bajo Creative Commons Attribution-ShareAlike 4.0.

Transcript of De Bitcoin a Ethereum: Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas...

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

De Bitcoin a Ethereum (versión abreviada)Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas

Autónomas

Jens Hardings Perl <[email protected]>

4 de mayo de 2016

Licenciado bajo Creative Commons Attribution-ShareAlike 4.0.

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

2 / 80

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

2 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

3 / 80

Motivación de desarrolladores de Bitcoin

Contextocrisis hipotecas sub-prime gatilladael 2007

quiebra de Lehman Bros 15 deSeptiembre 2008

fallas en organismos centralesencargados de regulardescontento general que derivó enOccupy Wall Street (Septiembre2011)deseo de contar con una monedaindependiente de controlcentralizado

Objetivos técnicosBase de datos distribuida queregistra transacciones

Inspirada en sistemas P2P comoGnutella, TorNo requiere ente central confiable

Sistema autosustentable: incentivosa quienes sustentan la redEficiencia: transacción “confirmada”en ∼ 1 hora

t. de crédito: 60 a 180 díascheques: 1 a 2 semanas

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

3 / 80

Motivación de desarrolladores de Bitcoin

Contextocrisis hipotecas sub-prime gatilladael 2007

quiebra de Lehman Bros 15 deSeptiembre 2008

fallas en organismos centralesencargados de regulardescontento general que derivó enOccupy Wall Street (Septiembre2011)deseo de contar con una monedaindependiente de controlcentralizado

Objetivos técnicosBase de datos distribuida queregistra transacciones

Inspirada en sistemas P2P comoGnutella, TorNo requiere ente central confiable

Sistema autosustentable: incentivosa quienes sustentan la redEficiencia: transacción “confirmada”en ∼ 1 hora

t. de crédito: 60 a 180 díascheques: 1 a 2 semanas

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

4 / 80

Aparición de Bitcoin

1 de Noviembre de 2008: un desconocido Satoshi Nakamoto publica papercon idea en lista de correos de criptografía3 de enero de 2009: Se genera el primer bloque del Blockchain9 de enero de 2009: Nakamoto publica primera versión del software dereferenciaEstuvo activo hasta mediados de 2010, cuando entregó el control(repositorio, dominios, etc) a tercerosNo se sabe si Satoshi Nakamoto es su nombre real, o si es un grupo másque una persona

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

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 201010,000 BTC = 42 USD en la fechaMás de 4,000,000 USD en 201610,000 BTC = 11,472,500 USD al 4 de diciembre 2013

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

6 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

7 / 80

Funcionamiento del Bitcoin: Blockchain

Todas las transacciones se registran en un “libro” (contable) público,compartido y descentralizado: el blockchainUso de Elliptic Curve Digital Signature Algorithm (ECDSA) y SHA-256Identificació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 identidadPor cada bitcoin, se registra cada transacción desde su creación al estadoactualLos bitcoin se pueden subdividir en hasta 10−8 unidades

un 10−8 de bitcoin es un satoshiDe ser necesario, protocolo se puede modificar para aceptar divisiones máspequeñas

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

8 / 80

Bloques

Las transacciones se agrupan en bloques, nodos compitenArmar un bloque válido es computacionalmente caro

Proof of work (Hashcash)Promedio: un bloque cada 10 minutosDificultad se ajusta cada 2016 bloques (∼ 2 semanas)

Incentivo a generar bloquesCada bloque entrega bitcoins a quien lo genera (transacción 1 del bloque)

Incentivo a incorporar todas las transaccionesGenerador del bloque se queda con los transaction fees de cada transacción

Un bloque depende de todos los anteriores: blockchainBlockchain más largo es el válido (se descartan cadenas más cortas)

No se intenta buscar ni castigar participantes deshonestos

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

9 / 80

Bloques

Bloque 1

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 1

Bloque 2

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 2

Bloque 3

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 3

Bloque 4

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 4

Bloque válido siTodas las transacciones son válidasProof-of-work válido

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

9 / 80

Bloques

Bloque 1

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 1

Bloque 2

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 2

Bloque 3

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 3

Bloque 4

Header

Hash( Headerbloque anterior )

Hash Txs

Transaccionesbloque 4

Bloque válido siTodas las transacciones son válidasProof-of-work válido

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

10 / 80

Minado: proceso de encontrar nuevos bloques

Proof of work resuelve 2 problemas1 forma simple y efectiva de consensuar el estado del blockchain2 mecanismo de entrada al proceso de consenso

peso relativo de cada participante es su poder computacional

Algoritmo

Construyo el bloque1era transacción me paga los bitcoins por generar el bloqueMi bloque es diferente al de cualquier otro minero

Nonce = 0Valido si sha256(bloque) < targetIncremento nonce y reintento

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

11 / 80

Validación de un bloque

1 Bloque anterior existe y es válidoDefinició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 2horas en el futuro

3 Proof of work es válido4 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álidoEl orden de las transacciones es relevante

5 Sn es el nuevo estadoEl estado no está codificado explícitamente

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

12 / 80

Generación de Bitcoins

Inicio: 50 BTC por bloqueSe divide en 2 cada 210,000bloques (4 años)

Al año 2024: 19,6 MM BTCNunca se superarán los 21MM deBTC

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

Inflation Rate Monetary Base

Blocks (thousands)

Infl

atio

n R

ate

(an

nu

aliz

ed

)

Year

Bit

coin

s (m

illi

on

s)

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

13 / 80

Blockchain: Seguridad

Caso 1: 2 nodos encuentran el siguiente bloque

Razones: Problemas de red, solución prácticamente simultánea, mala feReceptores eligen primero que llega

Partición de la red con 2 cadenas del mismo largoUn nodo encuentra siguiente bloque

Demás eliminan la otra cadena (más corta)

Caso 2: Doble gastoEl segundo gasto que llega es desechado por el nodoSi ∼ 50% de los nodos toma un gasto, el resto el otro

Cadena de bloque difiereUno nodo encuentra primero el segundo bloque, se descarta cadena más cortaPuede quedar una sola transacción de las dos

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

13 / 80

Blockchain: Seguridad

Caso 1: 2 nodos encuentran el siguiente bloque

Razones: Problemas de red, solución prácticamente simultánea, mala feReceptores eligen primero que llega

Partición de la red con 2 cadenas del mismo largoUn nodo encuentra siguiente bloque

Demás eliminan la otra cadena (más corta)

Caso 2: Doble gastoEl segundo gasto que llega es desechado por el nodoSi ∼ 50% de los nodos toma un gasto, el resto el otro

Cadena de bloque difiereUno nodo encuentra primero el segundo bloque, se descarta cadena más cortaPuede quedar una sola transacción de las dos

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

14 / 80

Blockchain: Transacciones

Building block fundamental para el BlockchainForma de traspasar valor de una dirección a otraEn una transacción se traspasa todo el valor que entró por otra transacción

Se puede usar la misma dirección para el vueltoSe recomienda una dirección diferente para cada transacción

Para usar el valor en una dirección se referencia la transacciónno la direcciónno la billetera (wallet)la transacción anterior puede especificar cómo se puede gastar el valor en lasiguiente

especie de contrato

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

15 / 80

Blockchain: Transacciones encadenadas

Transferencia de propiedad de una dirección a otraconsiderando uso sin restricción por parte del dueño

Firma dedueño 0

Hash

Llave públicade dueño 1

Llave privadade dueño 1

Transacción 1

Firma dedueño 1

Hash

Llave públicade dueño 2

Llave privadade dueño 2

Transacción 2

Firma dedueño 2

Hash

Llave públicade dueño 3

Llave privadade dueño 3

Transacción 3

Verifica

Firma

Verifica

Firma

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

15 / 80

Blockchain: Transacciones encadenadas

Transferencia de propiedad de una dirección a otraconsiderando uso sin restricción por parte del dueño

Firma dedueño 0

Hash

Llave públicade dueño 1

Llave privadade dueño 1

Transacción 1

Firma dedueño 1

Hash

Llave públicade dueño 2

Llave privadade dueño 2

Transacción 2

Firma dedueño 2

Hash

Llave públicade dueño 3

Llave privadade dueño 3

Transacción 3

Verifica

Firma

Verifica

Firma

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

15 / 80

Blockchain: Transacciones encadenadas

Transferencia de propiedad de una dirección a otraconsiderando uso sin restricción por parte del dueño

Firma dedueño 0

Hash

Llave públicade dueño 1

Llave privadade dueño 1

Transacción 1

Firma dedueño 1

Hash

Llave públicade dueño 2

Llave privadade dueño 2

Transacción 2

Firma dedueño 2

Hash

Llave públicade dueño 3

Llave privadade dueño 3

Transacción 3

Verifica

Firma

Verifica

Firma

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

16 / 80

Transacciones: detalles

Múltiples inputs, valores se sumanMúltiples outputs (normalmente 2: pago y vuelto)

InputReferencia el output en otratransacción (ID tx, posición)scriptSig: cumplimiento de exigenciapara canjear

establecido en transacciónreferenciada

OutputValorscriptPubKey: cómo se puedecanjear el valor

solamente hash(script)script lo da canjeador

Valor no asignado es “transactionfee”

Cada output se usa como input en 1 única transacción

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

16 / 80

Transacciones: detalles

Múltiples inputs, valores se sumanMúltiples outputs (normalmente 2: pago y vuelto)

InputReferencia el output en otratransacción (ID tx, posición)scriptSig: cumplimiento de exigenciapara canjear

establecido en transacciónreferenciada

OutputValorscriptPubKey: cómo se puedecanjear el valor

solamente hash(script)script lo da canjeador

Valor no asignado es “transactionfee”

Cada output se usa como input en 1 única transacción

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

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 canjeadorhash debe calzar con scriptPubKey de outputal finalizar debe quedar un solo valor en el stackvalor debe ser true ( 6= 0)

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

18 / 80

Scripts en Bitcoin

Lenguaje basado en Forth para especificar cómo se pueden canjear losbitcoins enviados en una transacciónFuncionalidad reducida

No tiene loopsEjemplo de usos:

Firmas simultáneas con distintas llaves privadasn firmas de m alternativas (n < m)Sin firmas (ej: password)

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

19 / 80

Escalabilidad: Merkle Trees

Simplified Payment Verification: no requiero todas las transacciones paraverificar 1 dentro de un bloqueEjemplo 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)

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

20 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

21 / 80

Privacidad

Se recomienda usar una llave nueva para cada transacciónUso de múltiples inputs en una transacción indica que esas direcciones sondel mismo dueñoSecuencia de transacciones indica flujo de pagos

Mixing services

también llamados “launderingservices”servicio que recibe bitcoins y losredistribuyerequiere confianza ciega en quienentrega el servicio

CoinJoin: sin tercero confiablecomponer n transaccionesindependientes en 1 solapartes acuerdan outputs y montos,incluyendo vueltoscada contraparte firma su parte dela transaccióntransacción es válida sólo si todosfirmaron

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

22 / 80

Ejemplo de Mixing Service: Bitcoinfog

Se accede mediante TorRecibe pago a dirección generada aleatoriamente

Se cobra una comisión aleatoria entre 1 % y 3 %

Maneja un pool principal con bitcoins para pagoal bajar los fondos del pool principal, va transfiriendo desde las direccionesaleatorias iniciales

Al realizar un retiro, se define aleatoriamente:el número de tx (dependiendo tb. del monto)el valor relativo entre las txla separación de tiempo entre tx (dentro de un rango total especificado)

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

23 / 80

Billeteras

Colección de llaves privadasActuales y futurasse evita necesidad de respaldar después de cada uso

(posiblemente) cache de transacciones y/o saldo totalPuede cifrar las llaves privadas

Si se pierde llave de cifrado, se pierde el contenidoVersiones en web, software, hardware

ejemplo de hardware wallet

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

24 / 80

eWallets

llamadas browser-based wallet o wallet serviceBilleteras accesibles vía webProveedor maneja todas las llaves privadasSímil a un banco: confiamos en que dinero depositado se manejará segúnnuestras instrucciones

Pero sin el respaldo legal

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

25 / 80

Billeteras en papel

Documento que contiene toda la información paragenerar llaves privadas

Semilla para generadores deterministas de llaveLlaves en papel (solamente 1 par)

Regalos o propinasTokens físicos: para acceder a la llave privada, sedestruye el tokenAlmacenamiento offline

También se usa para referirse a una única llavealmacenada en papel como medio óptico

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

26 / 80

(Hierarchic) Deterministic Wallets

Se genera una secuencia determinista de paresSecuencia pseudo-aleatoria

Propiedades deseadas:

Master Public KeyPermite generar todas las llavespúblicasNo permite obtener las llavesprivadas correspondientesSi se compromete, solamentepermite ver saldo total, no usarlo

Jerárquico (HD Wallets)Master Public/Private Key permitegenerar llaves que a su vez sonMaster Public/Private Keys (dejerarquía inferior)Conociendo la llave de jerarquíasuperior puedo calcular todas lasinferioresAl revés no funciona

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

27 / 80

Minado de Bitcoins

Inicio: hardware casero (2010)Computador de escritorio en tiemposociosos (hasta 100 Mhash/s)

Uso de GPUs (2011)Menor consumo de energía, mayorvelocidad. (hasta 800 Mhash/s, 2.500con 6 GPUs)

Foto: Stefan Ledwina

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

28 / 80

Minado de Bitcoins (2)

Múltiples tarjetas (2012)

Foto: “Einer von denen” (Flickr)

FPGA Mining (2013)

Field-programmable gate array (2 a 10Ghash/s)

Foto: Xiangfu (Wikimedia Commons)

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

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

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

30 / 80

Minado de Bitcoins (4)

ASICs masivos: ya no son juguetes

Foto: Bitcoin rig al norte de Suecia (Julio 2014), por Datavetaren

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

31 / 80

Mining Pools

Hoy en día casi nadie mina soloPools de minado

Conjunto de personas trabajando en paraleloAl encontrar un bloque se divide proporcional al esfuerzoPrimer bloque minado en conjunto: Septiembre 2010

Recompensa con menor varianza

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

32 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

33 / 80

Principales problemas que enfrenta Bitcoin

VolatilidadRobo, EstafasMercados negrosLavado de dineroMalwareProblemas de implementaciónProblemas de Gobernanza

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

34 / 80

“51 % Attack”

ObjetivosReescribir el pasadoDominar la red

Requiere generar:el bloque que se quieremodificartodos los bloquesposteriorestodos los bloquesgenerados en el intertanto

Requiere al menos el 50%+ 1 de todo elpoder computacional dedicado a la redNo se pueden generar transaccionesnuevas, solamente eliminar transaccionespropiasSe generaría desconfianza en lacriptomoneda, afectando los recursospropiosEse poder computacional se puede usarpara minar bitcoins honestamente

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

34 / 80

“51 % Attack”

ObjetivosReescribir el pasadoDominar la red

Requiere generar:el bloque que se quieremodificartodos los bloquesposteriorestodos los bloquesgenerados en el intertanto

Requiere al menos el 50%+ 1 de todo elpoder computacional dedicado a la redNo se pueden generar transaccionesnuevas, solamente eliminar transaccionespropiasSe generaría desconfianza en lacriptomoneda, afectando los recursospropiosEse poder computacional se puede usarpara minar bitcoins honestamente

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

35 / 80

Otros ataques

Robo de BilleteraBilletera guarda datos no cifrados

Transaction ID MalleabilityProblema de implementación al no chequear formato de llave públicaAl reformatear la misma llave, genera un ID de transacción distintaEmisor original no encuentra tx en Blockchain y reenvía

posiblemente con otro input

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

36 / 80

Combined output overflow IProblema de implementación + “monocultivo”

ProblemaAl sumar los valores de dos outputs se generaba un overflow y con esofallaba el chequeoEl bloque 74638, (15 de Agosto de 2015), aprovechó la vulnerabilidadGeneró 184.467.440.736,58 nuevos Bitcoin

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

37 / 80

Combined output overflow IIProblema de implementación + “monocultivo”

SoluciónSe pidió no seguir generando bloques mientras se soluciona el problemaSe corrigió el código dentro de un par de horas

No se generaron más bloques con ese errorSe 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óneoBlockchain generado por nodos “corregidos” se hizo más largo

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

38 / 80

Micro Payments exploit

ProblemaNodo de referencia exige transaction fee para

Transacciones > 1000 bytesOutputs con menos de 0,01 BitcoinPrioridad es suficientemente alta

Pagos realizados por menos de 0,01 Bitcoin quedan para siempre sinconfirmarPagos que incluyen esos pagos no confirmados tambiénNo es un bug en sí, más bien una molestia

SoluciónSe actualiza cliente para que no envíe transacciones con inputs no confirmados.

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

39 / 80

Blockchain hard fork

13 de marzo 2013: cambio de versión genera comportamiento incompatibleVersió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 974kBLos nodos 0.7 no aceptaban ninguna cadena con ese bloqueSe generaron 2 cadenas cada vez más largasSe debió detener la generación de nuevos bloquesVersión 0.8.1 respetó ese límite, hasta el 15 de mayo de 2013

Tiempo para que se actualicen los nodos

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

40 / 80

Bitcoin TimejackingTimestamping en Bitcoin

Nodos deben mantener producción de bloques en 1 cada app. 10 minutosRequieren tener un acuerdo sobre el momento en que se genera cada bloqueForma en que un nodo define su “network time”:

mediana de los tiempos publicados por peers, si se encuentra en ±70 minutosrespecto al system timetiempo 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

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

41 / 80

Bitcoin Timejacking

Ataqueatacante agregan suficientes “peers” para que

adelanten el reloj de los peers del objetivoatrase el reloj del objetivodiferencia: app. 140 minutos

atacante genera bloque válido 190 minutos al futuro del “network time”nodos adelantados en 70 minutos lo aceptannodo objetivo lo rechaza (está a 260 minutos adelantados para él)

atacante ha desconectado al nodo objetivo del restonodo objetivo va a aceptar transacciones duplicadas

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

42 / 80

Bitcoin Timejacking

SolucionesUsar solamente “system time” para validar recepción de bloquesAceptar solamente transacciones confirmadas

Introduce demora en validar el pago

Ajustar rangos de aceptabilidadUsar solamente peers confiables

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

43 / 80

Selfish Mining

ProblemaCuando un minero encuentra un bloque, lo publica

Si no lo publica de inmediato, puede ganar tiempo minando el siguienteDebe difundir su bloque más rápido de lo que se difunde otro cuando otrominero acierta

Atacantes obtienen una recompensa mayor que la justaAl comenzar antes que cualquiera, amplifican su poder computacional real

Al existir un pool con selfish mining, hay incentivos a unirse a élSe pierde la esencia distribuida del blockchain

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

44 / 80

Selfish Mining

Requerimientos al atacanteDebe poder minar un bloque antes que cualquiera

con 13 del poder computacional (en lugar del 50 % esperado)

Tener buena conectividad aumenta su probabilidad de imponer sus bloques ala red

si llega perimro al 50 % de los mineros honestos, requiere solo 25 % del podercomputacional

Remedio propuestoPropagar todas las cadenas de mismo largo que compitanMinar sobre alguna elegida al azarDisminuye la probabilidad que un atacante imponga su cadena sobre lasdemás

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

45 / 80

Volatilidad

Volumen total de moneda es pequeñoCada transacción/noticia grande tiene impacto fuerte

Valor total del valor existente es bajoCapitalización de BTC: e3,950,267,412USD (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 inherenteMoneda está en pocas manos

47 individuos tienen casi un 30 % de los bitcoins927 individuos tienen el 50 % de los bitcoinsFuente: Business Insider

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

46 / 80

Valor histórico de Bitcoin [USD]

↑ Fuente: http://bitcoincharts.com/

↓ Fuente: Google Trends

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

46 / 80

Valor histórico de Bitcoin [USD]

↑ Fuente: http://bitcoincharts.com/ ↓ Fuente: Google Trends

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

48 / 80

Lavado de dinero

desde 2010, Financial Action Task Force (FATF) incorpora Monedas Virtualesen sus análisis

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

49 / 80

Mt. Gox: Magic The Gathering Online eXchange

Comenzó en 2006 para canjear naipes del juego MTGO como acciones,funcionó durante 3 mesesRe-uso del nombre para crear casa de cambio de Bitcoin (70 % de tx bitcoinen 2013)Junio 2011: un atacante logró bajar el precio de USD 17,50 a USD 0,01 congrandes transacciones consigo mismo usando credenciales robadas a unauditor de MtGox, generando pérdidas por USD 8.750.000 a clientesOctubre 2011: se generan transacciones enviando 2.609 BTC a direccionesinválidasFebrero 2013: se “pierden” transacciones canceladas por receptor ydevueltas a Mt.Gox, se recuperan 3 meses despuésMayo 2013: EEUU embarga USD 2,9MM por no registrarse como negocio detransferencia de dinero

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

50 / 80

Mt. Gox: la debacle

Junio 2013: se suspenden retiros en USDFebrero 2014: se suspenden todas las actividades, sitio web desapareceRazones de los problemas de liquidez: desorden y mala gestión

CEO alega que fueron robos y estafas a lo largo de añosEmpleados revelaron que ni siquiera existía separación entre billetera personaldel CEO y los fondos de la empresa

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

51 / 80

Silk Road Marketplace

Mercado en la DarkNet, lanzado en Febrero2011Conocido por sus ventas de drogas dediverso tipo

También armas, asesinatos por encargo,etc.

Administrada por Ross Ulbricht (SanFrancisco)Transaba exclusivamente con BitcoinFue cerrado en Octubre 2013Reapareció al par de semanas pero sevolvió a clausurar

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

52 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

53 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

54 / 80

Ethereum: Motivación

2 formas de extender Bitcoin, cada una con limitaciones

Usando Bitcoin BlockchainLimitaciones del scripting (loops)No hay posibilidad de transferencias exactasde montos a determinar en el futuroNo hay estados (solo gastado o no gastado),necesario para implementar contratoscomplejosNo hay acceso a datos del Blockchain comotimestamp o hash de bloque previoImposibilidad de usar SPV en extensiones(Ej: Colored Coins)

Blockchain paraleloCada implementación ununiverso paralelo

Moneda que solamentesirve para un finValorizaciones yvolatilidades diversasEsfuerzos de bootstrapping,desarrollo y minado

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

55 / 80

Ethereum: Motivación (2)

Smart PropertyPropiedad cuya pertenencia es controlada por el blockchainEj: conservador de bienes raíces digital

Smart Contractscontratos que se auto-aplicanidea original: Nick Szabo (1997)

Decentralized autonomous organizationsMetacoin

Uso de Bitcoin como base para otros protocolosSímil a lo que es TCP/IP para InternetDiversos protocolos se implementan “sobre” el mismo blockchain

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

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 feesBase para generar otras monedas sobre el EthereumBlockchain

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

57 / 80

Ethereum: conceptos

Separación de árbol de estado y lista de transaccionesLenguaje de programación Turing-completo integrado

Ethereum ScriptCuentas (direcciones), en 2 sabores

externally owned accounts: controladas por llaves privadascontract accounts (Contratos): controladas por su código de contrato

TransaccionesPaquete de datos firmados que contienen un mensaje

MensajesObjeto virtual (no serializado) usado en el contexto de ejecución

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

58 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

59 / 80

Cuentas (Accounts)

Agentes autónomos que “viven” en el blockchainTiene una dirección Ethereum de 20 bytes, con:

Un nonce usado para que cada transacción pueda ser procesada una sola vezEl balance de ether de la cuentaEl código de contrato, si existeEl almacenamiento de la cuenta

Cuentas de dueño externoNo tienen código de contratoSe usan enviando mensajesfirmados por el dueño

ContratosSe ejecuta el código cuando llegaun mensajePueden leer/escribir sualmacenamiento, enviar mensajes ycrear nuevos contratos

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

60 / 80

Transacciones

para enviar un mensaje de una cuenta de dueño externoContiene los siguientes datos:

Destino del mensajeFirma identificando el emisorMonto de ether a transferirCampo opcional de datosValor STARTGASValor GASPRICE

Protección ante DoS:

STARTGASNúmero máximo de pasoscomputacionales a ejecutar en latransacción (incluyendo sub-ejecucionesde mensajes)

cálculo (CPU), ancho de banda yalmacenaje

GASPRICEFee que el emisor está dispuesto apagar por cada paso computacional

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

61 / 80

Mensajes

Objetos virtuales (solo existen en el contexto de ejecución de EthereumGenerado por un contrato mediante la instrucción CALLContienen:

Emisor del mensaje (implícito)Receptor del mensajeMonto de ether transferido con el mensajeCampo de datos (opcional)Valor STARTGAS

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

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 persistenteMemoria autoexpandible

no persistenteAlmacenamiento persistente

estado del contrato

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

63 / 80

Procesamiento de transacciones

1 Validar que transacción está bien formada (número de valores, firma, noncees igual al nonce de la cuenta del emisor

2 Calcular transaction fee como STARTGAS * GASPRICE, sustraer ese montodel balance del emisor, incrementar el nonce del emisor. Error si no haysuficiente saldo.

3 Inicializar GAS = STARTGAS, restar costo por byte en la transacción4 Transferir el valor especificado en tx desde el emisor al receptor

Si cuenta destino no existe, crearlaSi destino es contrato, ejecutar su código

5 Si ejecución falla (fondos insuficientes; se acabó el GAS), se revierten loscambios salvo transaction fee

6 Devolución de GAS no gastado y pago de fees al minero

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

64 / 80

Sub-transacciones

Un contrato envía un mensaje a otro contratoEspecifica STARTGAS para sub-transacciónSi falla por falta de GAS, se aborta sub-transacción y se retoma actual

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

65 / 80

Validación de un bloque

1 Revisar existencia y validez de bloque referenciado como previo2 Revisar timestamp sea mayor que el del previo y menos de 15 minutos en el

futuro3 Revisar validez de número de bloque, dificultad, transaction root, uncle root y

GASLIMITGASLIMIT es el tope de GAS para calcular todas las transacciones

4 Revisar validez del proof of work5 S0 es el estado del bloque previo6 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 delbloque, 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.

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

66 / 80

Almacenamiento del Estado

En teoría, se almacena el estado en cada bloque(key, value)

Estructura de datos: Merkle Patricia TrieBasado en Patricia Trie / Radix Trie (“Trie”, de reTRIEval)Alfabeto hexadecimal (cada nodo tiene hasta 16 hijos), llave es binariaCada nodo del árbol se referencia mediante su hashEstructura determinista: solo 1 forma de representar un estado, genera siempreel mismo hash

Se mantiene una BD (hash, nodo)Si un (sub-)árbol no cambia, ya está almacenado en la BDEn cada bloque solamente se incluyen los nodos cambiados(Sub-)árboles ya no referenciados pueden eliminarse

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

67 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

68 / 80

Aplicaciones: 3 tipos

Aplicaciones financierasmonedas (sub-currencies), derivados financieros, contratos de cobertura (futuros;hedging contracts), libretas de ahorro, testamentos, contratos de trabajo.

Aplicaciones semi-financierasSe transa dinero pero hay una fuerte componente extramonetaria. Ej:

Recompensas auto-ejecutables para resolver problemas computacionales

Aplicaciones no financierasSmart Property, Votación electrónica, Gobierno Corporativo Descentralizado, etc.

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

69 / 80

Smart Property

Ethereum + IoT = Smart PropertyEj: arriendo por horas

Se ingresa llave pública de beneficiario, tiempo, etc.Dispositivo que controla acceso se actualizaAutenticación mediante firma con llave privada

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

69 / 80

Smart Property

Ethereum + IoT = Smart PropertyEj: arriendo por horas

Se ingresa llave pública de beneficiario, tiempo, etc.Dispositivo que controla acceso se actualizaAutenticación mediante firma con llave privada

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

70 / 80

Sistemas de Token

Muy fáciles de implementar en EthereumPosibilidad 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] - valueself.storage[to] = self.storage[to] + value

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

71 / 80

DAOs: Aplicaciones Autónomas Distribuidas

Organizaciones cuyas reglas y acciones están determinadas por código en elBlockchain

Código que es público y auditable (en bytecode)

Manejan sus propios recursos y reaccionan frente a eventos externosNo dependen de ninguna entidad centralNo pueden ser intervenidas por vías judiciales, políticas ni militaresGobierno Corporativo para actualizar su código (“estatutos”) en ciertascondiciones

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

72 / 80

¿Skynet?

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

73 / 80

Code is Law

Lessig, 2000: “Code and other Laws ofCyberspace”Code is Law

Código en derecho (wet code)Código en informática (dry code)

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

74 / 80

Wet vs. dry code

Derecho SoftwareLógica basada en mentes subjetivas, lógica booleana,

analogías bitsSeguridad desacato / prisión replicación +

criptografíaPredictabilidad flexible rígido

Madurez alta evolución / larvario / pocasmuchos casos experiencias

Area silos independencia dejurisdiccionales instituciones políticas

y financieras,sin fronteras

Costos demandas: altísimo muy bajo

Fuente: Nick Szabo, Devcon1 (Londres, Noviembre 2015)

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

75 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

76 / 80

Comunicación con el mundo externo

En ejecución hay acceso a datos del BlockchainNecesitamos incorporar datos del “mundo real”

Oráculos o Data FeedsContratos que son actualizados con datos

Resultados de eventos deportivosInformación climáticaValores de acciones o monedas

Posibilidad de des-centralizarOráculos m de n (con m < n)Sistemas de reputación y/o recompensas (Ej: ShellingCoin)

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

77 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

78 / 80

Proyectos sobre Ethereum

Decentralized predictionmarket 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 EthereumApp In 20 Minutes Using

Standard Web Tools.http://www.blockapps.net/

Next generation key-less access protocolfor smart propertyhttp://airlock.me/

Social business foundedto open up the world ofhow 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 SmartAsset company

built on Ethereumhttps://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 derivativestrading and settlementhttp://www.hitfin.com/ Solidity Online Compiler

http://chriseth.github.io/browser-solidity/

Solidity RealtimeDev Environment

http://meteor-dapp-cosmo.meteor.com/

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

79 / 80

Contenidos

1 BitcoinFuncionamiento BlockchainUsoProblemas y Ataques

2 EthereumIntroducciónComponentes y funcionamiento

3 Aplicaciones Distribuidas (dApps DAOs)Acceso al “mundo real”Casos concretos

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

De Bitcoin a Ethereum (versión abreviada)Criptomonedas, Contratos Inteligentes y Corporaciones Descentralizadas

Autónomas

Jens Hardings Perl <[email protected]>

4 de mayo de 2016

Licenciado bajo Creative Commons Attribution-ShareAlike 4.0.