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

  1. Introdução às tecnologias de registo distribuído (Distributed Ledger Technologies - DLTs) e Blockchain: O que são, história e evolução.
  2. Principais propriedades das DLTs e análise comparativa com sistemas centralizados.
  3. Conceitos fundamentais de criptografia: hashing, assinaturas digitais, criptografia de curva elíptica, criptografia de chave pública.
  4. Protocolos criptográficos para DLTs: Merkle Trees, Directed Acyclic Graphs, e Zero Knowledge Proofs.
  5. Consenso em ledgers distribuídos: motivação, propriedades e algoritmos.
  6. Arquiteturas DLT/Blockchain: propriedades, desempenho e compromissos.
  7. Exploração de plataformas Blockchain/DLT e de ferramentas de desenvolvimento.
  8. Tokenização de ativos: tipos de tokens, processo de tokenização, padrões da indústria.
  9. Introdução aos contratos inteligentes e sua importância em aplicações de blockchain.
  10. Linguagens de programação para contratos inteligentes: sintaxe, tipos de dados, funções e modificadores.
  11. Interação com contratos inteligentes numa Blockchain e práticas de segurança para o seu desenvolvimento.
  12. 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