Este documento resume los conceptos fundamentales de blockchain, incluyendo su estructura de datos como una lista de bloques encadenados mediante hash pointers, su uso para registrar transacciones de forma abierta y distribuida a través de una red P2P, y el uso de incentivos económicos y pruebas de trabajo para lograr consenso distribuido. También describe aplicaciones potenciales de blockchain más allá de criptomonedas y da un ejemplo de cómo crear una moneda digital privada llamada ShuCoin para demostrar la viabilidad técnica de blockchain.
5. Blockchain: conceptos aplicados
»Blockchain atraviesa transversalmente:
»Teoría de Juegos para el consenso de mineros
»Criptografía – Firmas Digitales para validación
»Redes y transmisión de datos
»Economía y teoría monetaria para incentivar
No es solo una tecnología,
Sino un cambio cultural
6. En esencia, el Blockchain es…
»Libro de Diario – recuerden Contabilidad 101
»Es completamente abierto
• Todos los participantes y no participantes lo pueden
leer
• Todas las transacciones están registradas
»El “pagador” y el “receptor” de una transacción están
representados por llaves criptográficas que se registran
en la partida
• Llave pública X paga a llave pública Y
7. Técnicamente hablando, el Blockchain es
[Una lista de bloques encadenados por hash pointers]
»Una estructura de datos secuencial, append-only
»Nuevos bloques deben agregarse al final de la cadena
»Para cambiar un bloque en el medio de la cadena,
todos los bloques siguientes deben ser cambiados
también
• Ver patente de Accenture – Editable Blockchain (!)
»Muy ineficiente comparado a una base de datos
relacional
8. El libro de diario (ledger) del Blockchain
»Cada bloque contiene varias transacciones
»Blockchain está duplicado en una gran
cantidad de nodos de la red
»Se transfiere por un protocolo de red P2P
»Es actualizado por nodos especiales,
llamados “mineros”, que agregan nuevos
bloques de transacciones
10. El libro de diario (ledger) del Blockchain
»Todos los nodos de la red hacen validación
de transacciones
»Mineros hacen el trabajo adicional necesario
para la conciliación.
»El consenso en una red distribuida con nodos
que pueden fallar o ser maliciosos es un
problema complejo que se denomina Los
Generales Bizantinos
13. Los pilares de Bitcoin
»Blockchain
»Proof-of-Work
»P2P Network
»Criptografía
14. El libro de diario (ledger) del Blockchain
»La propuesta de Nakamoto es obtener consenso
usando (teoría de juegos) un incentivo económico
para que los mineros fueran honestos
»Los mineros son compensados al presentar Pruebas
de su Trabajo (Proof-of-Work) por medio de nuevos
coins
»Otros medios de consenso son:
• Prueba de participación (Proof of Stake)
• Prueba de destrucción (Proof of Burn)
15. Proof-of-Work
»Un ‘bloque’ del Blockchain esta compuesto de:
• El hash del bloque anterior
• Las transacciones generadas desde el último
bloque
• El premio asignado al minero
• Un ‘nonce’ generado al azar por el minero
• El SHA-256 de todo eso, debe tener un número
determinado de ‘ceros’ a la izquierda
16. Blockchain sin Bitcoin
»Si no hay Bitcoin
• No hay como recompensar a los mineros
• Se requiere entonces validar el blockchain por
otro medio
»¿Por qué usar un blockchain - una estructura de datos
compleja - en vez de una base de datos?
»Las bases de datos distribuidas existían antes del
Blockchain, y son de propósito más general
• Locking
• Two-phase commit
17. Expliquemos el dinero a un extraterrestre
Dinero normal (fiat) Bitcoin
No tiene valor intrínseco
(contrato social)
No tiene valor intrínseco
(es digital)
Moneda basada en papel y
tinta de seguridad
Moneda basada en
matemáticas y criptografía
Gobernabilidad
discrecional
Gobernabilidad algorítmica
Precios según Wicksell Oferta determinística
25. Es relativamente fácil hacer un blockchain
» Preparar el software (código libre) y customizarlo, en el
ejemplo usé LiteCoin
» Acceso al servicio por medio de estándar JSON-RPC
» Genera una dirección nueva cada vez que alguien vaya a
pagar
» Anote en una lista de ‘control’ para revisar periódicamente
si ha llegado el pago y el bloque tiene suficientes
confirmaciones
» Cuando todas las condiciones se cumplan, marcar la
transacción como pagada en el backend
» Queda totalmente independiente de terceros, para lo
bueno y para lo malo
26. Hagamos un coin entonces: ShuCoin
»Se prepararon servers en tres lugares distintos
»Se instaló un blockchain de código abierto llamado
LiteCoin
»Se parametrizó para hacer un blockchain privado
27. Hagamos un coin entonces: ShuCoin
»Cuentas de usuario: Cliente en Guatemala y Cliente
en El Salvador
28. Hagamos un coin entonces: ShuCoin
»Cuentas de usuario: Cliente de Guatemala y Cliente
de El Salvador
»VER VIDEO
31. OK, ¿que demuestra esto?
» Pude crear una red de fintech basada en tecnología
reconocida
» Puedo ubicarla en una red distribuída para hacerla
resiliente y robusta para dar servicios financieros
» Pude crear clientes independientes de cualquier
plataforma
» Pude transferir ShuCoins entre clientes que yo hice
» Puedo pegarle aplicaciones móviles
» Y las transacciones son seguras
» ¿Qué más NO puedo hacer?