El documento describe brevemente la historia del dinero, desde el uso del oro como primera moneda hasta la creación del dinero fiduciario y el dinero FIAT. Explica qué es el Bitcoin, cómo funcionan las direcciones Bitcoin, las transacciones y la blockchain. También cubre temas como la minería, los mensajes en la blockchain y otros principios básicos.
2. - Son activos que son valiosos por su escasez
#bitcoindevspain
¿Qué es el dinero?
3. - Son activos que son valiosos por su escasez
- Sirven para intercambiarlos por bienes y servicios
#bitcoindevspain
¿Qué es el dinero?
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. - 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. - 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. - 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. - 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. - Es una moneda electrónica.
#bitcoindevspain
¿Qué es el Bitcoin ?
10. - Es una moneda electrónica.
- No tiene autoridad central (Banco Central), se basa en un
sistema descentralizado.
#bitcoindevspain
¿Qué es el Bitcoin ?
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. - 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. - 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. - 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. - 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. #bitcoindevspain
Principios de las monedas
ORO EURO BITCOIN
ESCASEZ
PORTABILIDAD
FUNGIBILIDAD
VERIFICACION
DIVISIBILIDAD
PRIVACIDAD
ACEPTACION
26. - Sirven para firmar transacciones y operar con el dinero.
#bitcoindevspain
Bitcoin Addresses
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. - 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. - 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. - 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. - Son movimientos de dinero firmados digitalmente.
#bitcoindevspain
Transacciones
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. - 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. - 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. - 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. #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. - Existe la necesidad de codificar mensajes en las
transacciones.
#bitcoindevspain
Messaging
38. - Existe la necesidad de codificar mensajes en las
transacciones.
- Los mensajes quedan almacenados permanentemente.
#bitcoindevspain
Messaging
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. - 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. - 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. - La BlockChain es una lista de todas las transacciones
hechas en Bitcoin, particionadas en bloques y almacenada
de forma distribuida.
#bitcoindevspain
Blockchain
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. - 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. - 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. - “Minar” es generar colisiones en funciones Hash SHA256.
#bitcoindevspain
Minería
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. - “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. - “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. - “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
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
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. - 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. 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. - La cadena de bloques ocupa aproximadamente 40GB que
se almacena de forma distribuida.
#bitcoindevspain
Algunos datos…
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. - 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. - 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. - 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