Está en la página 1de 59

1ª Edición

Curso Universitario de Formación Avanzada en


Herramientas Digitales Aplicadas al Transporte y la
Logística
Tema 9.- Blockchain y smart contracts

Introducción a blockchain

B. Caminero y C. Carrión
carmen.carrion@uclm.es / UCLM
1ª Edición

Índice de la sesión

I. Introducción
II. Blockchain
III. Ethereum
Presentación

• ¿Cuántos de vosotros conocéis Bitcoin?


• ¿Cuántos de vosotros conocéis blockchain?
• ¿Cuántos pensáis que blockchain y Bitcoin son sinónimos?
• ¿Puedes nombrar un ejemplo de
uso de blockchain que no sean
criptomonedas?

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 3


Objetivos

• Introducir el concepto de cadena de bloques, sus fundamentos y sus inicios


con Bitcoin
• Conocer aspectos básicos de los algoritmos de consenso y su coste
computacional y energético
• Introducir los contratos inteligentes y el concepto de DApp
• Conocer las posibles aplicaciones y usos de la cadena de bloques, además de
las criptomonedas

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 4


Blockchain

Evolución
• Web 1.0
Static (HTML/CSS)

• Web 2.0: Internet de información


Interactive (JavaScript)

• Web 3.0: Internet de valor


Decentralized (Blockchain)
– Transferencia de valor electrónicamente
Web2 vs Web3 | ethereum.org

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 5


Blockchain

Características
• Sistema de registro distribuido y compartido de igual a igual,
criptográficamente seguro
– Definido inicialmente por Satoshi Nakamoto en 2008 para bitcoin:
https://bitcoin.org/bitcoin.pdf

– Descentralizado
– Inmutabilidad de la información
– Transparencia

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 6


Blockchain

• Concepto

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 7


Blockchain

• ¿Por qué se llama “cadena de bloques”?

• Las transacciones se almacenan ordenadas en bloques


– Transacción: cualquier dato o evento de interés (cambio de estado)

• Cada bloque incluye una referencia al anterior


(están encadenados)
– Orden de
transacciones

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 8


Blockchain

• Tipos de blockchain
• En Bitcoin (y otras) cualquiera puede participar en todas las
operaciones sobre la blockchain → permissionless blockchain
– La información almacenada (en principio) es pública y accesible
por cualquiera

• Uso restringido → permissioned blockchain


– Control de acceso: cualquiera no puede incorporarse a la
blockchain → verificación de identidad
– No todos los nodos pueden realizar las mismas acciones
– Equilibrio entre transparencia y privacidad
– Pueden ser totalmente privadas
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 10
Blockchain

• Tecnología
• Características comunes
– Libro de cuentas distribuido
• Distributed ledger (DLTs, Distributed Ledger Technologies)
– Secuencial
– Append-only
– Inmutable

• Basado en:
– Encriptación
– Algoritmos de consenso
https://corporatefinanceinstitute.com/resources/knowledge/other/
distributed-ledger-technology/
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 11
Blockchain

• Encriptación - Hash
• Huella digital de datos de longitud aleatoria
• Propiedades:
– La misma entrada genera siempre la misma salida
– Dos entradas distintas nunca generan la misma salida
– Es imposible calcular la entrada a partir de la salida
– Un pequeño cambio en la entrada produce cambios significativos en la salida
– Normalmente, la salida es de longitud fija
• Distintos algoritmos: SHA256, MD5, Keccak-256, etc.
https://andersbrownworth.com/blockchain/hash

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 12


Blockchain
• Encriptación asimétrica
• Dos claves matemáticamente relacionadas: pública/privada
• Todo el mundo conoce mi clave pública, sólo yo conozco mi clave privada

• Envío a destinatario: Uso clave pública de otra entidad para enviar mensaje, que solo puede desencriptar con su
clave privada
• Autoría: Uso mi clave privada para firmar mensajes, que pueden desencriptarse con mi clave pública

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 13


Blockchain

• Encriptación - Firma digital

Hash

Asegurar que los datos no han sido alterados

Encriptación asimétrica

Autentificar el origen de los datos


C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 14
Blockchain

• Bloques de datos integrados

Adaptado de https://www.aepd.es/es/prensa-y-comunicacion/blog/blockchain-II-conceptos -basicos-proteccion-de-datos

Simulador blockchain:
https://andersbrownworth.com/blockchain/blockchain

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 15


Blockchain

• Bloques de datos integrados


• La inmutabilidad del libro contable se consigue a través del hashing
• Primer bloque – génesis
– Incluye los parámetros iniciales de la blockchain
• Cuando se validan las transacciones del bloque génesis, se genera un valor de hash
único que identifica el bloque
• Al calcular el hash del segundo bloque, se incluye también el hash del primer
bloque….
• Y así sucesivamente los bloques quedan
• “encadenados” a través de sus hashes

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 16


Blockchain

• Explorando la cadena de bloques


• Explorador Bitcoin: https://explorer.btc.com/btc

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 17


Blockchain

• Sistema distribuido y de confianza


• Ejemplo: compartir videojuegos
– Opción centralizada:
• usuarioB guarda los préstamos
realizados

– Opción descentralizada:
• Todos guardan la información
• Problema:
– Si A y B conspiran contra C
– La mayoría gana!! (51%)
• Solución: Tener muchas copias del
"ledger"
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 18
Blockchain
Consenso
• Todos los nodos del sistema se ponen de acuerdo sobre qué transacciones
son correctas y deben añadirse a la cadena de bloques

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 19


Blockchain

Consenso
• Cada nodo blockchain tiene una copia de las transacciones → estado del sistema
• El sistema es totalmente distribuido, luego las transacciones se generan en
momentos distintos por distintos nodos pero el estado del sistema debe ser
coherente
– Problema de doble gasto sin autoridad central
• Solución: protocolos de consenso distribuidos
– O cómo los distintos nodos se ponen de acuerdo en una “única versión de la
verdad”, mediante mecanismos que validen las transacciones

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 20


Blockchain

• Transacciones

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 21


Blockchain

• Consenso Proof-of-Work
• Un nodo (minero) valida un bloque si
resuelve un complejo puzzle
matemático
– Bitcoin → se calcula el hash del bloque,
variando uno de los datos del mismo
(nonce) hasta que el valor del hash
cumpla ciertos requisitos relacionados
con un cierto nivel de dificultad (fuerza
bruta)
– Ethereum 1.0 (Ethash) → basado en
procesar fragmentos aleatorios de un
dataset precargado en los nodos
(https://eth.wiki/en/concepts/ethash/ethash)

Tiempos de Bitcoin → 10 m Ethereum 1.0 → 10-15 s


minado
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 22
Blockchain

• Consenso Proof-of-Work
• A los nodos que consiguen resolver el puzzle se les incentiva con una recompensa
• El resto de nodos pueden comprobar de manera simple que el minero ha generado
un bloque válido
• La dificultad se ajusta para mantener aproximadamente constante el tiempo de
minado
– En el caso de Bitcoin está asociada al número de 0’s iniciales en el valor del hash

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 23


Blockchain

• Consenso Proof-of-Work
• El sistema está a prueba de alteraciones indebidas debido a la gran potencia
computacional que se requiere para validar no sólo un bloque modificado
indebidamente, sino todo el resto de bloques validados después de él

https://www.aepd.es/es/prensa-y-comunicacion/blog/blockchain-II-conceptos-
basicos-proteccion-de-datos

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 24


¿Qué recompensa base obtuvo el minero que minó este bloque en
Bitcoin?

https://explorer.btc.com/btc/block/733472

6,25 BTC
2984 BTC

0,20428042 BTC
60774,00214704 BTC

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 26


¿Qué recompensa total obtuvo el minero que minó este bloque en
Bitcoin?

https://explorer.btc.com/btc/block/733472

0,20428042 BTC
3.993.056 BTC
60774,00214704 BTC
6,45428042 BTC

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 28


Blockchain

◼ Consenso Proof-of-Work

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 30


Blockchain

• Consenso Proof-of-Work

• El minado PoW consume grandes cantidades de energía y necesita grandes


recursos computacionales
– Huella de carbono y residuos de equipos informáticos
– Peligro de que el minado se concentre “de facto” en unos pocos mineros con
suficientes recursos, con acceso a electricidad más barata, …
• https://www.nationalgeographic.com.es/ciencia/criptomonedas-huella-carbono-dinero-digital_16761
• https://www.elconfidencial.com/medioambiente/energia/2021-03-25/bitcoin-crisis-climatica-huella-de-carbono-
energia_3005252/

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 31


Blockchain

• Consenso Proof-of-Stake
• Pretende reducir el consumo de cómputo de PoW
• Menos costes y menor “barrera de entrada”
– Democratización del acceso como validadores de bloques
• Nodos validadores o forjadores (forgers)
– Se seleccionan de manera semi-aleatoria, en función de los fondos que poseen y
del tiempo que los poseen
– Los forjadores obtienen tasas por cada transacción validada
– Si validan una transacción fraudulenta, se les penaliza y pueden dejar de validar
• Por eso, a los validadores les interesa evitar comportamientos maliciosos

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 32


Blockchain

• Consenso Proof-of-Stake: Ethereum 2.0


• El 1/12/2020 se puso en marcha la Beacon Chain, implementación de Ehtereum
con PoS
• El 15/9/2022 se produjo “The Merge” → la fusión de la cadena principal de
Ethereum con Beacon Chain
https://etherscan.io/block/15537393
https://etherscan.io/chart/hashrate

• Ahorro de energía del ~99.95%

Fuente: https://ethereum.org/en/upgrades/merge/
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 33
Blockchain

• Consenso Proof-of-Authority
• Similar al PoS, reducir uso computacional de PoW
• Los nodos validadores (selladores) se eligen explícitamente según la identidad
asociada al nodo
• Hay que acreditar esa identidad de alguna manera
– Por ejemplo, ante notario
• Confianza en esas identidades
• PoA se basa en el concepto de reputación
– Mantener la reputación hará que el comportamiento del validador sea adecuado
• Uso en permissioned blockchains

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 34


Blockchain

• Resumen protocolos de consenso


Tipo de Descen- Consumo
Robustez Ejemplos
blockchain tralización de energía

PoW Permissionless +++ +++ +++ Bitcoin, Ethereum 1.0


Permissionless Ethereum 2.0, Peercoin,
PoS ++ + ++
Permissioned Hyperledger

Clique (para Ethereum), Ripple,


PoA Permissioned + + ++ Ethereum en Microsoft Azure,
Hyperledger

• Para saber más:


– Sivleen Kaur, Sheetal Chaturvedi, Aabha Sharma, Jayaprakash Kar, "A
Research Survey on Applications of Consensus Protocols in
Blockchain", Security and Communication Networks, vol. 2021, Article
ID 6693731, 22 pages, 2021. https://doi.org/10.1155/2021/6693731

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 35


Blockchain

• Nodos

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 36


Blockchain

Nodos
• Full node
– Mantiene copia completa de la blockchain
– Puede verificar todas las transacciones desde el inicio
– Verifica un bloque recién creado y lo añade a su copia de la blockchain
Bitcoin – https://bitnodes.earn.com

– Algunos de los full node son minadores (mining node)


• Trabaja en un problema (p. ej., encontrar el nonce en Bitcoin)

• Light node (por ejemplo, carteras o wallets)


– Mantiene las cabeceras de la blockchain
– Verifican si una transacción está presente en un bloque y si es válida

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 37


¿Cuál es el tamaño de un full node en bitcoin?

https://ycharts.com/indicators/bitcoin_blockchain_size

341,20 MB
131,7 GB

+500 GB

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 38


Blockchain

• Estructura cadena de bloques: Headers

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 40


Blockchain

• Raíz y árbol de Merkle


Sirve para verificar si una transacción pertenece a un bloque

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 41


Blockchain

• Contratos inteligentes
• Definición: transferencia de un contrato legal en código informático
– Inicialmente propuestos por Nick Szabo en 1996
– Capacidad de ejecutarse de manera automática y autónoma
• Se asocian a la blockchain Ethereum
– El propio código del contrato se almacena en la blockchain
• Automatización de acciones sobre la blockchain, cuando se cumplen ciertas
condiciones
– Lógica de negocio, acordada entre las partes involucradas, sin
intermediarios
– Posibilidad de asociarlos a eventos del mundo real (oráculo)

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 43


Blockchain

• DApps (Decentralized applications)


• DApp→ aplicación basada en uno o varios contratos inteligentes
que se ejecutan sobre una blockchain
– Blockchain facilita la comunicación entre los nodos que
ejecutan la DApp

https://www.programmersought.com/article/43562572098
• Todos los nodos que ejecutan la
DApp almacenan la información
de la blockchain
– Todos los nodos “ven” el mismo
estado del sistema y ejecutan
la misma lógica → actúan como
un gran computador distribuido
• https://www.dapp.com/

/
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 44
Blockchain

• Ejemplo de aplicación: EBSI


https://ec.europa.eu/digital-building-
blocks/wikis/display/EBSI/Home

PoA
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 45
Ethereum

• Plataforma abierta de software (2015)


• Basada en la tecnología de cadena de bloques
• Permite desarrollar y desplegar aplicaciones descentralizadas (Dapp)
• Los mineros trabajan para ganar Ether

1 ether = 1 ETH = Ξ1
= 1 * 1018 wei= 1,000,000,000,000,000,000 wei

Vitalik Buterin: Ethereum Whitepaper


Gavin Wood: Ethereum Yellow Paper

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 49


C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 50
Ethereum

• Etherscan
• Bloques
• Transacciones
• Recompensas
https://etherscan.io

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 51


Ethereum

• Gas • Unidad que mide el trabajo


computacional requerido para
ejecutar transacciones o smart
contracts.
• El gas existe para:
– Incentivar a los mineros a trabajar en la red.
Operaciones + complejas → + cómputo → + GAS (+ETH)
– Si un usuario desea que su transacción tenga prioridad, debe ofrecer un
mayor precio de gas, para convencer a los mineros de procesarla antes.
– Los usuarios tienen un desincentivo a escribir código pobre o malicioso
porque consume gas en exceso.

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 52


Ethereum

• Gas: componentes
• El gas es la tasa que se paga por enviar transacciones a la red de Ethereum
• Precio del gas: el valor de una unidad de gas expresado en Ether.
– El precio del gas se mide en Gwei (1 Gwei =1000 millones Wei)
– https://etherscan.io/gastracker → precio de gas promedio

• Límite de gas: máxima cantidad de gas a pagar en una transacción específica.


– El límite de gas típicamente es mayor que la cantidad real de gas que requiere la
transacción.
– Un valor demasiado bajo dará lugar a un fallo en la transacción.

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 53


Ethereum

• Etherscan
5 min
Completa esta tabla

¿Cuándo se ¿Nº
¿Tamaño? ¿Recompensa?
minó? transacciones?

bloque 0
bloque
1.000.000
bloque
16.000.000

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 54


Ethereum

• Tokens
• Objetos similares a las monedas, pero a diferencia de estas últimas, los tokens
carecen de valor de curso legal
– Ejemplo: Token → las fichas de un casino
– Monedas como dólar o euro → Tokens de curso legal
• Token digital: token + base de datos con contabilidad + seguridad
– Carecen de valor alguno (según las leyes)
– Son emitidos por entidades privadas
– Su uso está supeditado a la existencia de un sistema que controle sus operaciones
– Son seguros y no falsificables

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 56


Ethereum

• Tokens
• ERC20 tokens son “Fungible Tokens”
– Dinero (billete 50€ igual que otro de 50€, se consume)

• ERC721 tokens son “Non-Fungible tokens” (NFT)


– Activos únicos que no se puede modificar ni intercambiar
– Obra de arte (único...Mona Lisa)

• ERC1155 tokens pueden ser fungibles y no fungibles


– En un juego se ganan puntos y con ellos se compran items
• Puntos – tokens fungibles
• Items – tokens no fungibles

https://etherscan.io/tokens

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 57


Ethereum

• NFTs

https://www.bbva.com/es/cripto-gatitos-gente-compra-masivamente/

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 58


Ethereum

• https://www.ethernodes.org/network/1

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 59


Ethereum

• Red de nodos distribuidos que envían y verifican bloques y transacciones


• Una aplicación llamada cliente ejecuta un nodo en tu ordenador

Características de un cliente Ethereum


C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 60
Ethereum

• EVM
Ethereum Virtual Machine (EVM)
• Software que proporciona seguridad y ejecuta códigos no confiables en
computadoras de todo el mundo
• Software “Turing completo” que se ejecuta en la red de Ethereum

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 61


Ethereum

• Clientes
• Un cliente es una implementación de Ethereum que verifica datos según las reglas
del protocolo y mantiene la red segura
• Después del Merge, Ethereum tiene dos tipos de clientes:
– Cliente de ejecución: escucha transacciones, las ejecuta en la EVM y mantiene
actualizados los datos de Ethereum
• Execution Engine, EL client o Eth1 client
– Cliente de consenso: implementa PoS
• Beacon Node, CL client o Eth2 client

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 62


Ethereum

• Clientes de ejecución
Cliente Lenguaje S.O. Redes
Geth Go Linux, Windows, Mainnet, Sepolia,
macOS Goerli
Nethermind C#, .NET Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Besu Java Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Erigon Go Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Akula Rust Linux Mainnet, Sepolia,
Goerli

https://ethereum.org/en/developers/docs/nodes-and-clients/

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 63


Ethereum

• Clientes de consenso
Cliente Lenguaje S.O. Redes
Lighthouse Rust Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Lodestar Typescript Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Nimbus Nim Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Prysm Go Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc
Teku Java Linux, Windows, Mainnet, Sepolia,
macOS Goerli, etc

https://ethereum.org/en/developers/docs/nodes-and-clients/

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 64


Ethereum

• Accediendo a Ethereum

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 65


Ethereum
Cuentas
De propiedad externa (externally owned accounts, EOAs):
– Controladas por personas mediante claves privadas
– Permiten
• Recibir, almacenar y enviar ETH y tokens
• Interactuar con contratos inteligentes implementados

De contrato (contract accounts o CAs):


– Solo tiene una dirección pública (non private keys)
Claves especiales para validadores en PoS
– Necesarias después del Merge

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 66


Ethereum
Cuentas
• Externally Owned Accounts (EOAs):
– Dirección de 160bits
– No tiene coste
– Puede iniciar transacciones

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 67


Ethereum
Cuentas
• Contract accounts:
– Es un contrato inteligente implementado en la red
– Controlada por el código del contrato
– Tiene código que define su comportamiento
• Solidity y otros lenguajes (Vyper, Fe, Yul…)

C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 68


1ª Edición

Curso Universitario de Formación Avanzada en


Herramientas Digitales Aplicadas al Transporte y la
Logística
Tema 9.- Blockchain y smart contracts

Introducción a blockchain

B. Caminero y C. Carrión
carmen.carrion@uclm.es / UCLM

También podría gustarte