Your SlideShare is downloading. ×
0
Por: Alberto Gómez Toribio @gotoalberto
-  Son activos que son valiosos por su escasez
#bitcoindevspain
¿Qué es el dinero?
-  Son activos que son valiosos por su escasez
-  Sirven para intercambiarlos por bienes y servicios
#bitcoindevspain
¿Qué...
-  Son activos que son valiosos por su escasez
-  Sirven para intercambiarlos por bienes y servicios
-  El primero en util...
-  Son activos que son valiosos por su escasez
-  Sirven para intercambiarlos por bienes y servicios
-  El primero en util...
-  Son activos que son valiosos por su escasez
-  Sirven para intercambiarlos por bienes y servicios
-  El primero en util...
-  Son activos que son valiosos por su escasez
-  Sirven para intercambiarlos por bienes y servicios
-  El primero en util...
-  Son activos que son valiosos por su escasez
-  Sirven para intercambiarlos por bienes y servicios
-  El primero en util...
-  Es una moneda electrónica.
#bitcoindevspain
¿Qué es el Bitcoin ?
-  Es una moneda electrónica.
-  No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
#bitco...
-  Es una moneda electrónica.
-  No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
-  Tie...
-  Es una moneda electrónica.
-  No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
-  Tie...
-  Es una moneda electrónica.
-  No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
-  Tie...
-  Es una moneda electrónica.
-  No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
-  Tie...
-  Es una moneda electrónica.
-  No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
-  Tie...
#bitcoindevspain
Principios de las monedas
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
P...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
#bitcoindevspain
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
Princ...
-  Sirven para firmar transacciones y operar con el dinero.
#bitcoindevspain
Bitcoin Addresses
-  Sirven para firmar transacciones y operar con el dinero.
-  Criptografía de Curva Elíptica: Sin aceleración de hardware...
-  Sirven para firmar transacciones y operar con el dinero.
-  Criptografía de Curva Elíptica: Sin aceleración de hardware...
-  Sirven para firmar transacciones y operar con el dinero.
-  Criptografía de Curva Elíptica: Sin aceleración de hardware...
-  Sirven para firmar transacciones y operar con el dinero.
-  Criptografía de Curva Elíptica: Sin aceleración de hardware...
-  Son movimientos de dinero firmados digitalmente.
#bitcoindevspain
Transacciones
-  Son movimientos de dinero firmados digitalmente.
-  Habitualmente el minero genera y firma la transacción,
pero las tra...
-  Son movimientos de dinero firmados digitalmente.
-  Habitualmente el minero genera y firma la transacción,
pero las tra...
-  Son movimientos de dinero firmados digitalmente.
-  Habitualmente el minero genera y firma la transacción,
pero las tra...
-  Son movimientos de dinero firmados digitalmente.
-  Habitualmente el minero genera y firma la transacción,
pero las tra...
#bitcoindevspain
Transacciones
Prev Output Amount From Type ScriptSig
6d020afb… 44,22 1BD5b401… Address A3a6748d…
Index Am...
-  Existe la necesidad de codificar mensajes en las
transacciones.
#bitcoindevspain
Messaging
-  Existe la necesidad de codificar mensajes en las
transacciones.
-  Los mensajes quedan almacenados permanentemente.
#bi...
-  Existe la necesidad de codificar mensajes en las
transacciones.
-  Los mensajes quedan almacenados permanentemente.
-  ...
-  Existe la necesidad de codificar mensajes en las
transacciones.
-  Los mensajes quedan almacenados permanentemente.
-  ...
-  Existe la necesidad de codificar mensajes en las
transacciones.
-  Los mensajes quedan almacenados permanentemente.
-  ...
-  La BlockChain es una lista de todas las transacciones
hechas en Bitcoin, particionadas en bloques y almacenada
de forma...
-  La BlockChain es una lista de todas las transacciones
hechas en Bitcoin, particionadas en bloques y almacenada
de forma...
-  La BlockChain es una lista de todas las transacciones
hechas en Bitcoin, particionadas en bloques y almacenada
de forma...
-  La BlockChain es una lista de todas las transacciones
hechas en Bitcoin, particionadas en bloques y almacenada
de forma...
-  “Minar” es generar colisiones en funciones Hash SHA256.
#bitcoindevspain
Minería
-  “Minar” es generar colisiones en funciones Hash SHA256.
-  La minería consiste en generar el siguiente bloque de la
cad...
-  “Minar” es generar colisiones en funciones Hash SHA256.
-  La minería consiste en generar el siguiente bloque de la
cad...
-  “Minar” es generar colisiones en funciones Hash SHA256.
-  La minería consiste en generar el siguiente bloque de la
cad...
-  “Minar” es generar colisiones en funciones Hash SHA256.
-  La minería consiste en generar el siguiente bloque de la
cad...
#bitcoindevspain
Minería
-  El cliente minero de Bitcoin dispone de un API RPC-JSON
-  Podemos usar un cliente propio o utilizar un API de
terceros...
-  Las principales instrucciones son:
	
  <readable	
  json>	
  	
  decoderawtransaction	
  <hex	
  string>	
  
	
  <priva...
-  Añadir clave privada existente:
	
  $	
  curl	
  -­‐-­‐data-­‐binary	
  '{"jsonrpc":	
  "1.0",	
  "id":"rpc",	
  "metho...
-  Obtenemos la transacción en RAW
	
  $	
  curl	
  -­‐-­‐data-­‐binary	
  '{"jsonrpc":	
  "1.0",	
  "id":"getrawtransacti...
BONUS! HANDS ON LAB!
	
  	
  Juego	
  de	
  Piedra-­‐Papel-­‐Tijera-­‐Lagarto-­‐Spock	
  que	
  exige	
  
un	
  pago	
  en...
-  La cadena de bloques ocupa aproximadamente 40GB que
se almacena de forma distribuida.
#bitcoindevspain
Algunos datos…
-  La cadena de bloques ocupa aproximadamente 40GB que
se almacena de forma distribuida.
-  Bitcoin mueve más de 24K € por...
-  La cadena de bloques ocupa aproximadamente 40GB que
se almacena de forma distribuida.
-  Bitcoin mueve más de 24K € por...
-  La cadena de bloques ocupa aproximadamente 40GB que
se almacena de forma distribuida.
-  Bitcoin mueve más de 24K € por...
-  La cadena de bloques ocupa aproximadamente 40GB que
se almacena de forma distribuida.
-  Bitcoin mueve más de 24K € por...
 	
  	
  	
  	
  	
  {	
  
	
   	
  "jsonrpc”	
  	
  	
  :	
  "1.0",	
  
	
   	
  "id”	
  	
  	
  	
  	
  	
  	
  	
  :	
 ...
Upcoming SlideShare
Loading in...5
×

Bitcoin Development - Desarrollo con Bitcoin

785

Published on

Introducción a Bitcoin y al desarrollo con el API RPC.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
785
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
46
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Bitcoin Development - Desarrollo con Bitcoin"

  1. 1. Por: Alberto Gómez Toribio @gotoalberto
  2. 2. -  Son activos que son valiosos por su escasez #bitcoindevspain ¿Qué es el dinero?
  3. 3. -  Son activos que son valiosos por su escasez -  Sirven para intercambiarlos por bienes y servicios #bitcoindevspain ¿Qué es el dinero?
  4. 4. -  Son activos que son valiosos por su escasez -  Sirven para intercambiarlos por bienes y servicios -  El primero en utilizarse fue el Oro por su escasez #bitcoindevspain ¿Qué es el dinero?
  5. 5. -  Son activos que son valiosos por su escasez -  Sirven para intercambiarlos por bienes y servicios -  El primero en utilizarse fue el Oro por su escasez -  Se crea la moneda Fiducidaria: Los gobiernos emiten titulos a cambio de oro. #bitcoindevspain ¿Qué es el dinero?
  6. 6. -  Son activos que son valiosos por su escasez -  Sirven para intercambiarlos por bienes y servicios -  El primero en utilizarse fue el Oro por su escasez -  Se crea la moneda Fiducidaria: Los gobiernos emiten títulos a cambio de oro. -  Nadie viene a reclamar ese oro con su título: ¿Emitimos títulos sin respaldo a cambio de ese oro? #bitcoindevspain ¿Qué es el dinero?
  7. 7. -  Son activos que son valiosos por su escasez -  Sirven para intercambiarlos por bienes y servicios -  El primero en utilizarse fue el Oro por su escasez -  Se crea la moneda Fiducidaria: Los gobiernos emiten títulos a cambio de oro. -  Nadie viene a reclamar ese oro con su título: ¿Emitimos títulos sin respaldo a cambio de ese oro? -  En 1971, Nixon dice que se acabó reclamar ese oro y convierte la moneda Fiducidaria en moneda FIAT, basada en la deuda. #bitcoindevspain ¿Qué es el dinero?
  8. 8. -  Son activos que son valiosos por su escasez -  Sirven para intercambiarlos por bienes y servicios -  El primero en utilizarse fue el Oro por su escasez -  Se crea la moneda Fiducidaria: Los gobiernos emiten títulos a cambio de oro. -  Nadie viene a reclamar ese oro con su título: ¿Emitimos títulos sin respaldo a cambio de ese oro? -  En 1971, Nixon dice que se acabó reclamar ese oro y convierte la moneda Fiducidaria en moneda FIAT, basada en la deuda. -  Los bancos centrales controlan la divisa. #bitcoindevspain ¿Qué es el dinero?
  9. 9. -  Es una moneda electrónica. #bitcoindevspain ¿Qué es el Bitcoin ?
  10. 10. -  Es una moneda electrónica. -  No tiene autoridad central (Banco Central), se basa en un sistema descentralizado. #bitcoindevspain ¿Qué es el Bitcoin ?
  11. 11. -  Es una moneda electrónica. -  No tiene autoridad central (Banco Central), se basa en un sistema descentralizado. -  Tiene las mismas propiedades que una moneda física. #bitcoindevspain ¿Qué es el Bitcoin ?
  12. 12. -  Es una moneda electrónica. -  No tiene autoridad central (Banco Central), se basa en un sistema descentralizado. -  Tiene las mismas propiedades que una moneda física. -  El dinero se transfiere de persona a persona de forma irreversible. #bitcoindevspain ¿Qué es el Bitcoin ?
  13. 13. -  Es una moneda electrónica. -  No tiene autoridad central (Banco Central), se basa en un sistema descentralizado. -  Tiene las mismas propiedades que una moneda física. -  El dinero se transfiere de persona a persona de forma irreversible. -  Está limitada, no se pueden crear más de 21M de BTC #bitcoindevspain ¿Qué es el Bitcoin ?
  14. 14. -  Es una moneda electrónica. -  No tiene autoridad central (Banco Central), se basa en un sistema descentralizado. -  Tiene las mismas propiedades que una moneda física. -  El dinero se transfiere de persona a persona de forma irreversible. -  Está limitada, no se pueden crear más de 21M de BTC. -  Es divisible, habitualmente hablamos de mBTC o uBTC. #bitcoindevspain ¿Qué es el Bitcoin ?
  15. 15. -  Es una moneda electrónica. -  No tiene autoridad central (Banco Central), se basa en un sistema descentralizado. -  Tiene las mismas propiedades que una moneda física. -  El dinero se transfiere de persona a persona de forma irreversible. -  Está limitada, no se pueden crear más de 21M de BTC. -  Es divisible, habitualmente hablamos de mBTC o uBTC. -  Propone un modelo deflaccionario frente a la inflacción infinita. #bitcoindevspain ¿Qué es el Bitcoin ?
  16. 16. #bitcoindevspain Principios de las monedas ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION
  17. 17. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  18. 18. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  19. 19. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  20. 20. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  21. 21. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  22. 22. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  23. 23. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  24. 24. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  25. 25. #bitcoindevspain ORO EURO BITCOIN ESCASEZ PORTABILIDAD FUNGIBILIDAD VERIFICACION DIVISIBILIDAD PRIVACIDAD ACEPTACION Principios de las monedas
  26. 26. -  Sirven para firmar transacciones y operar con el dinero. #bitcoindevspain Bitcoin Addresses
  27. 27. -  Sirven para firmar transacciones y operar con el dinero. -  Criptografía de Curva Elíptica: Sin aceleración de hardware. #bitcoindevspain Bitcoin Addresses
  28. 28. -  Sirven para firmar transacciones y operar con el dinero. -  Criptografía de Curva Elíptica: Sin aceleración de hardware. -  Podemos generar la clave pública a partir de la privada. #bitcoindevspain Bitcoin Addresses
  29. 29. -  Sirven para firmar transacciones y operar con el dinero. -  Criptografía de Curva Elíptica: Sin aceleración de hardware. -  Podemos generar la clave pública a partir de la privada. -  El minero las almacena en un fichero llamado wallet. #bitcoindevspain Bitcoin Addresses
  30. 30. -  Sirven para firmar transacciones y operar con el dinero. -  Criptografía de Curva Elíptica: Sin aceleración de hardware. -  Podemos generar la clave pública a partir de la privada. -  El minero las almacena en un fichero llamado wallet. -  Para generar un cheque, nos basta con imprimir la clave privada en formato QR. #bitcoindevspain Bitcoin Addresses
  31. 31. -  Son movimientos de dinero firmados digitalmente. #bitcoindevspain Transacciones
  32. 32. -  Son movimientos de dinero firmados digitalmente. -  Habitualmente el minero genera y firma la transacción, pero las transacciones pueden ser firmadas offline. #bitcoindevspain Transacciones
  33. 33. -  Son movimientos de dinero firmados digitalmente. -  Habitualmente el minero genera y firma la transacción, pero las transacciones pueden ser firmadas offline. -  La transacción es enviada a un minero y replicada, cuando el 51% de los mineros la replica, se confía en que se insertará en la blockchain. #bitcoindevspain Transacciones
  34. 34. -  Son movimientos de dinero firmados digitalmente. -  Habitualmente el minero genera y firma la transacción, pero las transacciones pueden ser firmadas offline. -  La transacción es enviada a un minero y replicada, cuando el 51% de los mineros la replica, se confía en que se insertará en la blockchain. -  ¿Y si alguien controla el 51% de la red? #bitcoindevspain Transacciones
  35. 35. -  Son movimientos de dinero firmados digitalmente. -  Habitualmente el minero genera y firma la transacción, pero las transacciones pueden ser firmadas offline. -  La transacción es enviada a un minero y replicada, cuando el 51% de los mineros la replica, se confía en que se insertará en la blockchain. -  ¿Y si alguien controla el 51% de la red? #bitcoindevspain Transacciones
  36. 36. #bitcoindevspain Transacciones Prev Output Amount From Type ScriptSig 6d020afb… 44,22 1BD5b401… Address A3a6748d… Index Amount To Type ScriptPubKey 0 44,219998 1NC83Jv… Address Bfa5263e1f… 1 0,000012 1JUKuRz… Address 6a0d4ed87… Outputs Inputs
  37. 37. -  Existe la necesidad de codificar mensajes en las transacciones. #bitcoindevspain Messaging
  38. 38. -  Existe la necesidad de codificar mensajes en las transacciones. -  Los mensajes quedan almacenados permanentemente. #bitcoindevspain Messaging
  39. 39. -  Existe la necesidad de codificar mensajes en las transacciones. -  Los mensajes quedan almacenados permanentemente. -  Algunos comienzan añadiendo un OutputScript adicional donde codifican un mensaje UTF-8 serializado en Base64. #bitcoindevspain Messaging
  40. 40. -  Existe la necesidad de codificar mensajes en las transacciones. -  Los mensajes quedan almacenados permanentemente. -  Algunos comienzan añadiendo un OutputScript adicional donde codifican un mensaje UTF-8 serializado en Base64. -  Blockchain.info toma la iniciativa y desarrolla su propio sistema de messaging. #bitcoindevspain Messaging
  41. 41. -  Existe la necesidad de codificar mensajes en las transacciones. -  Los mensajes quedan almacenados permanentemente. -  Algunos comienzan añadiendo un OutputScript adicional donde codifican un mensaje UTF-8 serializado en Base64. -  Blockchain.info toma la iniciativa y desarrolla su propio sistema de messaging. -  En 2011 se libera la versión 1.0 del BTCmsg Protocol -  2 primeros caracteres del output script indican si hay mensaje (02) o no(01) -  El mensaje se codifica en Hexadecimal -  Cada grupo de 4 chars hex representan 2 letras ASCII), valores entre 0xffff y 0x65535. (Enseñar btcmsgTools) #bitcoindevspain Messaging
  42. 42. -  La BlockChain es una lista de todas las transacciones hechas en Bitcoin, particionadas en bloques y almacenada de forma distribuida. #bitcoindevspain Blockchain
  43. 43. -  La BlockChain es una lista de todas las transacciones hechas en Bitcoin, particionadas en bloques y almacenada de forma distribuida. -  Cuando un bloque es generado, las transacciones que aún no han sido insertadas en ninguno y que están siendo replicadas temporalmente por los mineros, se validan. #bitcoindevspain Blockchain
  44. 44. -  La BlockChain es una lista de todas las transacciones hechas en Bitcoin, particionadas en bloques y almacenada de forma distribuida. -  Cuando un bloque es generado, las transacciones que aún no han sido insertadas en ninguno y que están siendo replicadas temporalmente por los mineros, se validan. -  Puede haber varias cadenas, pero los mineros escuchan la mas larga y descartan el resto. #bitcoindevspain Blockchain
  45. 45. -  La BlockChain es una lista de todas las transacciones hechas en Bitcoin, particionadas en bloques y almacenada de forma distribuida. -  Cuando un bloque es generado, las transacciones que aún no han sido insertadas en ninguno y que están siendo replicadas temporalmente por los mineros, se validan. -  Puede haber varias cadenas, pero los mineros escuchan la mas larga y descartan el resto. -  Generar un bloque requiere mucha capacidad de cómputo, tiempo y dinero, crear una cadena más larga que la actual desde cero es altamente improbable. #bitcoindevspain Blockchain
  46. 46. -  “Minar” es generar colisiones en funciones Hash SHA256. #bitcoindevspain Minería
  47. 47. -  “Minar” es generar colisiones en funciones Hash SHA256. -  La minería consiste en generar el siguiente bloque de la cadena de bloques, tal que: -  ID_BLOQUE_ANTERIOR = SHA2(ID_NUEVO_BLOQUE) -  ID_NUEVO_BLOQUE debe ser un hash SHA2 válido. -  ID_NUEVO_BLOQUE debe comenzar por N ceros. #bitcoindevspain Minería
  48. 48. -  “Minar” es generar colisiones en funciones Hash SHA256. -  La minería consiste en generar el siguiente bloque de la cadena de bloques, tal que: -  ID_BLOQUE_ANTERIOR = SHA2(ID_NUEVO_BLOQUE) -  ID_NUEVO_BLOQUE debe ser un hash SHA2 válido. -  ID_NUEVO_BLOQUE debe comenzar por N ceros. -  La minería genera dinero mediante: -  Cada nuevo bloque permite generar 25BTC que se queda el minero. -  El minero se queda con la comisión donada en cada transacción. #bitcoindevspain Minería
  49. 49. -  “Minar” es generar colisiones en funciones Hash SHA256. -  La minería consiste en generar el siguiente bloque de la cadena de bloques, tal que: -  ID_BLOQUE_ANTERIOR = SHA2(ID_NUEVO_BLOQUE) -  ID_NUEVO_BLOQUE debe ser un hash SHA2 válido. -  ID_NUEVO_BLOQUE debe comenzar por N ceros. -  La minería genera dinero mediante: -  Cada nuevo bloque permite generar 25BTC que se queda el minero. -  El minero se queda con la comisión donada en cada transacción. -  Si se generan dos bloques a la vez, el más complejo prospera (el que tiene mas ceros al principio). #bitcoindevspain Minería
  50. 50. -  “Minar” es generar colisiones en funciones Hash SHA256. -  La minería consiste en generar el siguiente bloque de la cadena de bloques, tal que: -  ID_BLOQUE_ANTERIOR = SHA2(ID_NUEVO_BLOQUE) -  ID_NUEVO_BLOQUE debe ser un hash SHA2 válido. -  ID_NUEVO_BLOQUE debe comenzar por N ceros. -  La minería genera dinero mediante: -  Cada nuevo bloque permite generar 25BTC que se queda el minero. -  El minero se queda con la comisión donada en cada transacción. -  Si se generan dos bloques a la vez, el más complejo prospera (el que tiene mas ceros al principio). -  Si se generan bloques idénticos: -  La La cadena más compleja prospera. #bitcoindevspain Minería
  51. 51. #bitcoindevspain Minería
  52. 52. -  El cliente minero de Bitcoin dispone de un API RPC-JSON -  Podemos usar un cliente propio o utilizar un API de terceros como la de Blockchain.info. -  Configuración necesaria en el fichero bitcoin.conf:  server=1    rpcuser=username    rpcpassword=password    rpcport=8332   -  En MacOS el fichero no existe, y debe crearse en:      /Users/$USER/Library/Application  Support/Bitcoin   #bitcoindevspain Bitcoin RPC API
  53. 53. -  Las principales instrucciones son:  <readable  json>    decoderawtransaction  <hex  string>    <private  key>        dumpprivkey                    <accountName>    <accountName>        getbalance                      <accountName,  confirmations>        <public  key>          getnewaddress                <accountName>        <hex  string>          getrawtransaction        <transaction  id>                        <transaction  id>  sendfrom                          <from  accountName,  to  public                                                                                    key,  amount,  comment>    <hex  string>          signrawtransaction      <{…json  tx  data…}>        <transaction  id>  sendrawtransaction      <hex  string>    <hex  string>          createrawtransaction  <hex  string>   #bitcoindevspain Bitcoin RPC API
  54. 54. -  Añadir clave privada existente:  $  curl  -­‐-­‐data-­‐binary  '{"jsonrpc":  "1.0",  "id":"rpc",  "method":   "importprivkey",  "params":  ["PRIVATEKEY","alias"]  }'    -­‐H  'content-­‐ type:  text/plain;'  http://bitcoin:password@127.0.0.1:8332     -  Consultar la clave publica de la cuenta que acabamos de añadir:  $  curl  -­‐-­‐data-­‐binary  '{"jsonrpc":  "1.0",  "id":"rpc",  "method":   "getaddressesbyaccount",  "params":  ["ACCOUNT_NAME"]  }'    -­‐H  'content-­‐ type:  text/plain;'  http://bitcoin:password@127.0.0.1:8332   -  Enviar dinero  $  curl  -­‐-­‐data-­‐binary  '{"jsonrpc":  ".0",  "id":"rpc",  "method":   "sendfrom",  "params":  ["FROM_ACCOUNTNAME",   "TO_PUBLIC_KEY",AMOUNT]  }'    -­‐H  'content-­‐type:  text/plain;'  http:// bitcoin:password@127.0.0.1:8332 #bitcoindevspain Bitcoin RPC API
  55. 55. -  Obtenemos la transacción en RAW  $  curl  -­‐-­‐data-­‐binary  '{"jsonrpc":  "1.0",  "id":"getrawtransaction",   "method":  "getrawtransaction",  "params":  [”TRANSACTION_ID"]  }'    -­‐H   'content-­‐type:  text/plain;'  http://bitcoin:password@127.0.0.1:8332     -  Decodificamos la transacción en RAW:  $  curl  -­‐-­‐data-­‐binary  '{"jsonrpc":  "1.0",  "id":"rpc",  "method":   "decoderawtransaction",  "params":  ["HEX_TRANSACTION"]  }'    -­‐H   'content-­‐type:  text/plain;'  http://bitcoin:password@127.0.0.1:8332   #bitcoindevspain Bitcoin RPC API
  56. 56. BONUS! HANDS ON LAB!    Juego  de  Piedra-­‐Papel-­‐Tijera-­‐Lagarto-­‐Spock  que  exige   un  pago  en  BTC  si  pierdes  y  envía  dinero  en  BTC  si   ganas  :)       #bitcoindevspain Codigo: https://github.com/gotoalberto/bitcoin-rock
  57. 57. -  La cadena de bloques ocupa aproximadamente 40GB que se almacena de forma distribuida. #bitcoindevspain Algunos datos…
  58. 58. -  La cadena de bloques ocupa aproximadamente 40GB que se almacena de forma distribuida. -  Bitcoin mueve más de 24K € por minuto en transacciones a día de hoy (con una cotización a 1BTC/90€). #bitcoindevspain Algunos datos…
  59. 59. -  La cadena de bloques ocupa aproximadamente 40GB que se almacena de forma distribuida. -  Bitcoin mueve más de 24K € por minuto en transacciones a día de hoy (con una cotización a 1BTC/90€). -  Bitcoin tiene de media 51K transacciones diarias. (Sí, soporta muchas mas, ver Escalabilidad en Bitcoin Wiki) #bitcoindevspain Algunos datos…
  60. 60. -  La cadena de bloques ocupa aproximadamente 40GB que se almacena de forma distribuida. -  Bitcoin mueve más de 24K € por minuto en transacciones a día de hoy (con una cotización a 1BTC/90€). -  Bitcoin tiene de media 51K transacciones diarias. (Sí, soporta muchas mas, ver Escalabilidad en Bitcoin Wiki) -  La media es de 5.000 € por transaccion y 35 transacciones por minuto. #bitcoindevspain Algunos datos…
  61. 61. -  La cadena de bloques ocupa aproximadamente 40GB que se almacena de forma distribuida. -  Bitcoin mueve más de 24K € por minuto en transacciones a día de hoy (con una cotización a 1BTC/90€). -  Bitcoin tiene de media 51K transacciones diarias. (Sí, soporta muchas mas, ver Escalabilidad en Bitcoin Wiki) -  La media es de 5.000 € por transaccion y 35 transacciones por minuto. -  Un minero gana de media 2500€ por genererar un bloque y 30€ en comisiones (con una cotización de a 1BTC/90€) #bitcoindevspain Algunos datos… Fuente: Blockchain.info
  62. 62.            {      "jsonrpc”      :  "1.0",      "id”                :  "rpc",                        "method”        :  "terminate",        "params”        :  [                                                                        "this_conference"                                                          ]                }                                                          :=)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×