Tecnologias de Ledger Distribuído
Informação
Corpo docente: Paulo Bartolomeu
Duração: Semestral
Horas de trabalho: 162
Horas de contacto: 45
ECTS: 6
Área científica: Informática
Objetivos
Introdução dos conceitos fundamentais associados às Distributed Ledger Technologies (DLTs), familiarização dos alunos com diferentes tecnologias estado da arte e discução crítica face a aplicações reais. Promoção da aquisição de experiência prática através da realização de trabalhos em contexto de aula e de projetos agregadores.
Resultados de Aprendizagem
Compreenção dos princípios e conceitos que suportam as tecnologias DLT e o seu impacto em diferentes indústrias. Aplicação dos fundamentos de criptografia, incluindo primitivas, algoritmos e protocolos, necessários ao desenvolvimento de aplicações seguras com tecnologias DLT. Análise dos protocolos de rede e os mecanismos de consenso usados em DLTs. Exploração das características e tecnologias das principais plataformas de DLT, discutindo as respetivas arquiteturas, funcionalidades e opções de desenho. Conceção e desenvolvimento de contratos inteligentes para diferentes aplicações, analisando criticamente as opções tecnológicas em função das suas funcionalidades e limitações. Desenvolvimento de aplicações descentralizadas (dApps) e controlo do seu ciclo de vida numa rede Blockchain.
Avaliação
Inclui duas componentes: teórico-prática, avaliada em teste individual, e prática-laboratorial, avaliada através de dois projetos suportados em tecnologia DLT e desenvolvidos em grupo. A avaliação do projeto inclui a análise do relatório facultado pelos estudantes e o software desenvolvido, sendo também aplicada uma dinâmica de avaliação individual que contempla a auto e hétero avaliação no grupo.
A avaliação da aprendizagem dos estudantes irá contemplar os seguintes momentos (M) e elementos (E), incluindo a respetiva ponderação por componente (TP, PL) da UC (avaliação discreta):
- M1 / E1: Teste individual escrito (50% TP) – durante o período de aulas
- M2 / E2: Projeto de grupo 1 (50% PL) – durante o período de aulas
- M3 / E3: Projeto de grupo 2 (50% PL) – durante o período de aulas
- M4 / E4: Teste individual escrito (50% TP) – época de exames
Metodologia
As aulas serão organizadas em sessões híbridas de 3 horas, integrando um período de índole teórica e outro de desenvolvimento de trabalho experimental. A componente teórica fornecerá os conceitos fundamentais do tema da aula, recorrendo a exemplos ilustrativos. Esta componente, além da interação síncrona em sala de aula, incluirá o estudo assíncrono prévio de conteúdos multimédia para familiarização com o contexto e conceitos fundamentais.
A componente prática suporta-se na resolução de guiões de trabalho que fornecem informação relevante e descrevem os programas a desenvolver utilizando tecnologias DLT. A componente prática é desenvolvida adicionalmente através da realização de projetos em grupo de índole integradora que estimulam a consolidação de conhecimentos.
Conteúdos
- Introdução às tecnologias de registo distribuído (Distributed Ledger Technologies - DLTs) e Blockchain: O que são, história e evolução.
- Principais propriedades das DLTs e análise comparativa com sistemas centralizados.
- Conceitos fundamentais de criptografia: hashing, assinaturas digitais, criptografia de curva elíptica, criptografia de chave pública.
- Protocolos criptográficos para DLTs: Merkle Trees, Directed Acyclic Graphs, e Zero Knowledge Proofs.
- Consenso em ledgers distribuídos: motivação, propriedades e algoritmos.
- Arquiteturas DLT/Blockchain: propriedades, desempenho e compromissos.
- Exploração de plataformas Blockchain/DLT e de ferramentas de desenvolvimento.
- Tokenização de ativos: tipos de tokens, processo de tokenização, padrões da indústria.
- Introdução aos contratos inteligentes e sua importância em aplicações de blockchain.
- Linguagens de programação para contratos inteligentes: sintaxe, tipos de dados, funções e modificadores.
- Interação com contratos inteligentes numa Blockchain e práticas de segurança para o seu desenvolvimento.
- Arquitetura, implementação e implantação de aplicações descentralizadas (DApps) numa Blockchain.
Bibliografia recomendada
- I. Bashir, “Mastering Blockchain: Inner workings of blockchain, from cryptography and decentralized identities, to DeFi, NFTs and Web3”, ISBN: 1803241063, 4th ed., 2023
- S. O’Toole, “Solidity for beginners”, ISBN: 979-8874444273, 2024
- D. Tapscott, A. Tapscott, “Blockchain Revolution: How the Technology Behind Bitcoin and Other Cryptocurrencies Is Changing the World”, ISBN: 1101980141, 2018
- Imran Bashir, “Mastering Blockchain: Inner workings of blockchain, from cryptography and decentralized identities, to DeFi, NFTs and Web3”, ISBN-10: 1803241063, Packt Publishing; 4th ed., 31st March 2023.
- Samuel O’Toole, “Solidity for beginners”, ISBN-13: 979-8874444273, 8th January 2024.
- Don Tapscott, Alex Tapscott, “Blockchain Revolution: How the Technology Behind Bitcoin and Other Cryptocurrencies Is Changing the World”, ISBN-10: 1101980141, Penguin Publishing Group,12th June 2018.
- Singh, R. K., Mishra, R., Gupta, S., & Mukherjee, A. A.(2023). Blockchain applications for secured and resilient supply chains: A systematic literature review and future research agenda. Computers & Industrial Engineering, 108854. doi:10.1016/j.cie.2022.108854
- Ivanov, N., Li, C., Yan, Q., Sun, Z., Cao, Z., & Luo, X. (2023). Security Threat Mitigation for Smart Contracts: A Comprehensive Survey. ACM Computing Surveys, 55(14s). doi:10.1145/3593293