Peer-to-Peer Systems and Blockchain
Year:
1st year
Semester:
S2
Programme main editor:
I2CAT
Onsite in:
UBB
Remote:
CNAM
ECTS range:
5-7 ECTS
Professors
Prerequisites:
Computer Networks.
At least one programming language.
Algorithmics.
Pedagogical objectives:
The student will acquire knowledge relative to the development of distributed systems, in particular of blockchain-based systems.
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.
Evaluation modalities:
At the end of the course, the student must submit the final project to be evaluated.
Description:
The course covers the following topics:
- Peer-to-peer Systems: general concepts, unstructured overlays: Flooding, Random Walks, Epidemic Diffusion, structured overlays: Distributed Hash Tables (DHT), Routing on a DHT, IPFS.
- Blockchains: basic concepts, basic cryptographic tools (digital signatures, cryptographic hash, Zero-Knowledge,..), data structures: Merkle trees, Merkle Patricia tries.
- Bitcoin: transaction and block structure. Mining : Proof of Work, rewards. Bitcoin: attacks, 51%, double spending. Bitcoin: tracciabilità e mixing. Structure of the P2P network.
- Bizantine Fault-Tolerance (BFT) Consensus and BFT-based blockchains.
- Ethereum: smart contract, gas. Consensus: from PoW to PoS. Ethereum: Solidity, smart contracts programming. Smart contract security and attacks.
- Distributed Ledgers Applications: tokens (fungible and non-fungible), Self Sovereign Identity, Supply-chains.
- Scalability enhancement: Zero Knowledge rollup e optimistic roll-up, side chain, inter-chain protocols, channel networks (Lightning network).
complementary content:
- Peer to peer system: applications BitTorrent, a Content Distribution Network, implementation of the Kademlia DHT.
Required teaching material
Slides and didactic content published on the web site of the course.
Teaching volume:
lessons:
18-48 hours
Exercices:
Supervised lab:
0-14 hours
Project:
0-2 hours
Devices:
- Laboratory-Based Course Structure
- Open-Source Software Requirements