Peer to Peer Systems and Blockchains

Code 261AA
Credits 6

Learning outcomes

Introduction of the basic technologies for the development of highly distributed systems and some real scenarios exploiting them. Presentation of the disruptive technology of blockchains, and of its numerous applications to different fields.
Syllabus
• P2P Topologies (2 + 1/2 credits)
o Peer to Peer (P2P) systems: general concepts
o Unstructured Overlays: Flooding, Random Walks, Epidemic Diffusion
o Structured Overlays: Distributed Hash Tables (DHT), Routing on a DHT
o Case Studies: Bittorrent as a Content Distribution Network: KAD implementation of the Kademlia DHT, game-based cooperation
• Complex Network for the analysis of P2P systems (1/2 credits)
o Network models
o Random Graphs and Small Worlds
o Small World navigability: Watts Strogatz and Kleinberg.
o Complex networks navigability
• Cryptocurrencies and Blockchains (3 credits)
o Basic concepts:
o review of basic cryptographic tools (digital signatures, cryptographic hash, Merkle trees.,..), blockchains: definitions, distributed consensus: definitions,
o The Bitcoin blockchains
o Nakamoto consensus
o Bitcoin mining mechanism, fraudolent mining.
o pseudoanonymity: traceability and mixing
o The Bitcoin P2P Network
o Bitcoin ecosystem
o scalability issues
o applications and security
o Bitcoin Extensions/alternatives: altcoins, sidechains, the
o StellarConsensus Protocol
o Applications of blockchains
o Ethereum: programming smart contracts
o Blockchain 1.0: cryptocurrencies
o Blockchain 2.0: finantial instruments built on cryptocurrencies
o Blockchain 3.0: applications beyond cryptocurrencies (DNS, lotteries, voting, IoT...)