Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema9 s1
Tema9 s1
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
Evolución
• Web 1.0
Static (HTML/CSS)
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
• Concepto
• 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
• 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
• 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
Hash
Encriptación asimétrica
Simulador blockchain:
https://andersbrownworth.com/blockchain/blockchain
– 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
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
• Transacciones
• 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)
• 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
• 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
https://explorer.btc.com/btc/block/733472
6,25 BTC
2984 BTC
0,20428042 BTC
60774,00214704 BTC
https://explorer.btc.com/btc/block/733472
0,20428042 BTC
3.993.056 BTC
60774,00214704 BTC
6,45428042 BTC
◼ Consenso Proof-of-Work
• Consenso Proof-of-Work
• 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
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
• Nodos
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
https://ycharts.com/indicators/bitcoin_blockchain_size
341,20 MB
131,7 GB
+500 GB
• 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)
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
PoA
C.U.F.A. en herramientas Digitales Aplicadas al Transporte y la Logística Ed. I 45
Ethereum
1 ether = 1 ETH = Ξ1
= 1 * 1018 wei= 1,000,000,000,000,000,000 wei
• Etherscan
• Bloques
• Transacciones
• Recompensas
https://etherscan.io
• 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
• 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
• 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
• Tokens
• ERC20 tokens son “Fungible Tokens”
– Dinero (billete 50€ igual que otro de 50€, se consume)
https://etherscan.io/tokens
• NFTs
https://www.bbva.com/es/cripto-gatitos-gente-compra-masivamente/
• https://www.ethernodes.org/network/1
• 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
• 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
• 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/
• 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/
• Accediendo a Ethereum
Introducción a blockchain
B. Caminero y C. Carrión
carmen.carrion@uclm.es / UCLM