Este documento discute el Bitcoin Pizza Day y los fundamentos de los contratos inteligentes con Bitcoin. Explica brevemente la historia de Laszlo Hanyecz comprando pizzas con Bitcoin en 2010 y cómo esto condujo al día de la pizza de Bitcoin. Luego define los contratos inteligentes y su propósito original según Nick Szabo en los años 90. Finalmente, resume los pasos clave para desarrollar y ejecutar con éxito un contrato inteligente, incluido el desarrollo de código, pruebas, auditoría de seguridad e implementación en
1. Bitcoin Pizza Day y los Fundamentos
de los smart contracts con Bitcoin
Mayo 2019
Javier Domínguez Gómez
@AlianzaBlock @BlockchainES @JavDomGom
v0.05 - 2019
2. Fundamentos de los smart contracts - mayo 2019
Laszlo Hanyecz: $41, $200.000.000,
$80.000.000
Fuente: https://bitcointalk.org/index.php?topic=137.0
3. Fundamentos de los smart contracts - mayo 2019
Laszlo Hanyecz
Fuente: https://bitcointalk.org/index.php?topic=137.0
5. Fundamentos de los smart contracts - mayo 2019
Bitcoin Pizza Day en Iberoamérica
6. Fundamentos de los smart contracts - mayo 2019
Smart contracts
Programa informático
SOFTWARE
¿Qué es un smart contract?
Matemáticas
Lógica
Computación
Inglés
7. Smart contracts
¿Qué es un smart contract?
Funciona en una o varias computadoras
Protocolo transacciones computerizadas términos
Fundamentos de los smart contracts - mayo 2019
9. Smart contracts
Nick Szabo
(Criptógrafo y jurista) 1. Satisfacer las condiciones contractuales comunes
Objetivos generales
condiciones
de pago
derechos de
retención
confidencialidad cumplimiento
Fundamentos de los smart contracts - mayo 2019
10. Smart contracts
Nick Szabo
(Criptógrafo y jurista) 2. Minimizar las excepciones maliciosas y accidentales
Objetivos generales
3. Minimizar los intermediarios
4. Reducción de pérdidas por fraude y costes.
Fundamentos de los smart contracts - mayo 2019
11. Smart contracts
Nick Szabo
(Criptógrafo y jurista)
Permite pagos en línea
Los “Digital cash protocols”
Impugnabilidad Confidencialidad Divisibilidad
Moneda en papel
Fundamentos de los smart contracts - mayo 2019
12. Smart contracts
Bob Satoshi Airlines
Ejemplo
Despegue
a las 14:00
Despegue con
retraso a las 15:00
Devolución
Fundamentos de los smart contracts - mayo 2019
13. Smart contracts
Me gustaría poder hacer
Fundamentos de los smart contracts - mayo 2019
Y que la gente lo pueda usar
mi propio smart contract
¡Tengo muchas ideas!
14. Smart contracts
1. Desarrollo del código.
2. Auditoría de seguridad.
3. Compilación.
4. Incorporación al sistema Blockchain.
5. Uso del contrato.
Fundamentos de los smart contracts - mayo 2019
15. Smart contracts
Desarrollo del código
¿Qué quiero hacer?
¿En qué plataforma?
¿En qué lenguaje?
¿Con qué fin?
¿Qué costes va a tener?
Fundamentos de los smart contracts - mayo 2019
16. Smart contracts
Desarrollo del código
¿Soy capaz de hacerlo?
¿Y mantenerlo?
¿Es seguro?
¿Y si hay problemas?
¿Lo necesito realmente?
Fundamentos de los smart contracts - mayo 2019
17. Smart contracts
¿Lo necesito realmente?
Fundamentos de los smart contracts - mayo 2019
Su café, gracias
3.0
Blockchain
Blockchain
Blockchain
18. Smart contracts
Desarrollo del código
OK
Product owner
Empresa o
programador
experimentado
Fundamentos de los smart contracts - mayo 2019
/No
19. Smart contracts
Desarrollo del código
Requisitos Lógica Codificar
Fundamentos de los smart contracts - mayo 2019
Testing
20. Smart contracts
Desarrollo del código
Cumplir un estándar
Bitcoin
script
C
C++
Reason
ML
Solidity
Fundamentos de los smart contracts - mayo 2019
Plutus
Cardano
Python
Tezos
21. Smart contracts
Desarrollo del código
Bitcoin
script
No Turing-complete
Procedimental
Estructurado
Imperativo
Reflexivo
Basado en pila
Opcodes de
control de flujo
Opcodes
de pila
Opcodes
criptográficos
Opcodes de
control del tiempo
Fundamentos de los smart contracts - mayo 2019
22. Smart contracts
Desarrollo del código
Solidity
Turing-complete
Orientado a objetos
Tipos de datos complejos
Herencia
Encapsulación
Puede usar librerías
Atributos
Complejidad de código
Eventos
Constructor
de la clase
Funciones y
procedimientos
Fundamentos de los smart contracts - mayo 2019
24. Smart contracts
Desarrollo del código
Pruebas en
Testnet
Corrección
de bugs
Más pruebas
en Testnet
TEST TEST
Fundamentos de los smart contracts - mayo 2019
25. Smart contracts
Auditoría de seguridad
¿Para qué sirve?
¿Basta con que funcione?
¿Estoy protegido?
¿Problemas legales?
¿Cuánto cuesta?
Fundamentos de los smart contracts - mayo 2019
27. Bitcoin
Smart contracts
Compilado y/o interpretado
Ethereum
Bitcoin Virtual
Machine
Ethereum
Virtual Machine
BYTECODE BYTECODE
Fundamentos de los smart contracts - mayo 2019
28. Smart contracts
Incorporación al sistema Blockchain
Bitcoin Ethereum
Transacción
Bloque
Cliente
Ethereum
Bloque
Fundamentos de los smart contracts - mayo 2019
29. Smart contracts
Uso del contrato
Bitcoin
BVM
Entorno de ejecución propio
Cada contrato va en un script
Acceso limitado a otros contratos
Almacenados como UTXO
Un programa en cada transacción
Si se cumplen condiciones, exec
unspent transaction
outputs
bc1qar0srrr7xfkvy5l64
3lydnw9re59gtzzwf5mdq
Fundamentos de los smart contracts - mayo 2019
30. Smart contracts
Uso del contrato
Ethereum
EVM
Entorno de ejecución propio
Aislado
Acceso limitado a otros contratos
Sin acceso a la red ni otros procesos
Un programa en cada address
Si se cumplen condiciones, exec
0xa085736b30f73c43a25
9d222709865cb3fdfc1c7
Fundamentos de los smart contracts - mayo 2019
31. Smart contracts
Conclusión
Si he de hacer un smart contract...
¿Qué tecnología he de elegir?
Fundamentos de los smart contracts - mayo 2019