Academic year2022/23
CourseCOMPUTER SCIENCE
Code261AA
Credits6
PeriodSemester 2
LanguageEnglish
Modules | Area | Type | Hours | Teacher(s) |
SISTEMI PEER TO PEER | INF/01 | LEZIONI | 48 | LAURA EMILIA MARIA RICCI unimap |
|
Obiettivi di apprendimento
Conoscenze
Al termine del corso, lo studente acquisirà conoscenze in merito alla progettazione di sistemi peer to peer e di sistemi basati su blockchain.
Knowledge
The student will acquire knowledge relative to the development of distributed systems, in particular of blockchain-based systems.
Modalità di verifica delle conoscenze
Per l'accertamento delle conoscenze saranno svolte delle due prove in itinere, un midterm ed un final term. Infine sarà svolto un progetto finale.
Assessment criteria of knowledge
At the end of the course, the student must submit the final project.
Capacità
Al termine del corso:
- lo studente saprà sviluppare una applicazione distribuita
- lo studente saprà sviluppare smart contract
- lo studente conioscerà diversi meccanismi di consenso
Skills
At the end of the course, the student
- will be able to develop a distributed application
- will be able to develop a smart contract
- will be able to understand consensus mechanisms
Modalità di verifica delle capacità
Sarà svolto un pogetto finale per la verifica della acquisizione delle capacità
Assessment criteria of skills
- final project will assess the acquisition of the skills.
Comportamenti
- Lo studente potrà acquisire e/o sviluppare sensibilità alle problematiche relative all'uso di criptomonete
Behaviors
Acquisition of sensibility relative to the use of cryptocurrencies.
Modalità di verifica dei comportamenti
- Il mid term e final term dovranno essere accompagnati da brevi relazioni
Assessment criteria of behaviors
- Student is required to submit a report for the mid and for the final term
Prerequisiti (conoscenze iniziali)
- Reti di Calcolatori
- Algoritmica
- Conoscenza di almeno un linguaggio di programmazione
Prerequisites
- Computer Networks
- Algorithms
- Programming skills
Indicazioni metodologiche
- sito di e-learning contenente materiale didattico
- progetto didattico
- il corso è tenuto in lingua inglese
Teaching methods
- online lessons
- web site including didactic material
- intermediate proofs
- language: English
- e-learning site reporting didactic material
Programma (contenuti dell'insegnamento)
Introduction to the course
Peer to Peer
- Peer to Peer (P2P) systems: general concepts
- Unstructured Overlays: Flooding, Random Walks, Epidemic Diffusion
- Structured Overlays: Distributed Hash Tables (DHT), Routing on a DHT, IPFS
Case Studies:
- BitTorrent as a Content Distribution Network
- KAD implementation of the Kademlia DHT
Cryptocurrencies and Blockchains
- basic concepts: basic cryptographic tools (digital signatures, cryptographic hash, Merkle trees.,..)
- blockchains: definition
- distributed consensus: definition
the Bitcoin blockchain
- Bitcoin mining mechanism: Nakamoto consensus
- pseudoanonymity: traceability and mixing
- the Bitcoin P2P Network
Ethereum
- structure of the blockchain and consensus mechanism
- programming smart contracts with Solidity
Applications of blockchains:
- NFT
- supply chain
- Self Sovereign Identity
Improving Scalability
- Bitcoin Lightning Network
- Interledger Protocols
Further Consensus mechanisms
- Proof of Stake
- Proof of Space
- Byzantine consensus
Syllabus
ntroduction to the course
Peer to Peer
- Peer to Peer (P2P) systems: general concepts
- Unstructured Overlays: Flooding, Random Walks, Epidemic Diffusion
- Structured Overlays: Distributed Hash Tables (DHT), Routing on a DHT, IPFS
Case Studies:
- BitTorrent as a Content Distribution Network
- KAD implementation of the Kademlia DHT
Cryptocurrencies and Blockchains
- basic concepts: basic cryptographic tools (digital signatures, cryptographic hash, Merkle trees.,..)
- blockchains: definition
- distributed consensus: definition
the Bitcoin blockchain
- Bitcoin mining mechanism: Nakamoto consensus
- pseudoanonymity: traceability and mixing
- the Bitcoin P2P Network
Ethereum
- structure of the blockchain and consensus mechanism
- programming smart contracts with Solidity
Applications of blockchains:
- NFT
- supply chain
- Self Sovereign Identity
Improving Scalability
- Bitcoin Lightning Network
- Interledger Protocols
Further Consensus mechanisms
- Proof of Stake
- Proof of Space
- Byzantine consensus
Bibliografia e materiale didattico
Materiale fornito dal docente e presente sul sito di e-learning
Bibliography
Slides and didactic content published on the web site of the course
Indicazioni per non frequentanti
Le slide presentate durante le lezioni sono pubblicate su web, sul sito del corso.
https://elearning.di.unipi.it/course/view.php?id=218
Non-attending students info
All the slides presented during the course will be published on the web site of the course.
Modalità d'esame
Progetto + Orale.
Assessment methods
Final project + oral exam.
Additional web pages
No one.
Updated: 06/01/2023 23:54