El paradigma dominante para ofrecer servicios a través de Internet es el modelo Cliente/Servidor. A pesar de ser muy efectivo, presenta algunos problemas, entre los cuales se incluyen un único punto de falla, la falta de resistencia a la censura y la dependencia de terceros de confianza. El modelo P2P (Peer-to-Peer) ha surgido en el pasado como una alternativa para abordar estos problemas. En octubre de 2008, Satoshi Nakamoto escribió el whitepaper sobre Bitcoin, la primera criptomoneda descentralizada. Los nodos en la red P2P de Bitcoin verifican las transacciones mediante criptografía y las registran en un libro mayor público y distribuido, llamado blockchain, sin supervisión central. El consenso entre los nodos se logra mediante un proceso computacionalmente intensivo basado en la prueba de trabajo, conocido como minería, que asegura la blockchain de Bitcoin.
Desde entonces, la tecnología Blockchain ha evolucionado para soportar cómputo general más allá de las criptomonedas (es decir, contratos inteligentes) y actualmente está surgiendo el concepto de Web3.0, es decir, una Web descentralizada. A pesar de la impresionante tecnología y la promesa de impactar muchos aspectos de nuestra vida, las Tecnologías de Registros Distribuidos aún deben demostrar su impacto más allá de las criptomonedas.
El curso se basa en la experiencia adquirida durante varios años de enseñanza de Tecnologías Blockchain en la Universidad Sapienza de Roma.
Introducción a las Tecnologías de Registros Distribuidos (DLT). Redes distribuidas fomentando una gobernanza descentralizada. La evolución de DLT desde las transacciones, pasando por los contratos inteligentes, hasta llegar a las aplicaciones descentralizadas (dApps). Tipos de Blockchain.
Ingredientes técnicos de la Blockchain: Fundamentos de los elementos criptográficos. Funciones hash y árboles de Merkle. Redes distribuidas. Estructura de datos de Blockchain. Consenso.
La evolución del Consenso: El problema de los generales bizantinos. Prueba de trabajo (Proof of Work). Prueba de participación (Proof of Stake). Prueba de participación pura (Pure Proof of Stake). El Trilema de la Blockchain: seguridad, escalabilidad y descentralización.
Contratos inteligentes: De las transacciones a las máquinas de estado. Contratos inteligentes. Ethereum. Fundamentos de programación en Solidity.
Aplicaciones descentralizadas (dApps): De la Web 2.0 a la Web 3.0. La estructura básica de una dApp y su integración con los contratos inteligentes.
No se requiere ningún conocimiento específico, aun cuando algún conocimiento básico acerca de redes informáticas y criptografía podría ser útil.
Mastering Bitcoin. Programming the Open Blockchain By Andreas M. Antonopoulos, David A. Harding 2023 https://github.com/bitcoinbook/bitcoinbook
Mastering Ethereum: Building Smart Contracts and DApps. by Andreas Antonopoulos, Gavin Wood Ph.D. https://github.com/ethereumbook/ethereumbook
Hussein, Z., Salama, M.A. & El-Rahman, S.A. Evolution of blockchain consensus algorithms: a review on the latest milestones of blockchain consensus algorithms. Cybersecurity 6, 30 (2023). https://doi.org/10.1186/s42400-023-00163-y
Foundations of Distributed Consensus and Blockchains by Elaine Shi http://elaineshi.com/docs/blockchain-book.pdf
Bitcoin: A Peer-to-Peer Electronic Cash System https://bitcoin.org/bitcoin.pdf