Introduction of the basic technologies for the development of highly distributed systems and of some real scenarios exploiting them. Presentation of the disruptive technology of blockchains, and its numerous applications to different fields.

Syllabus

  • P2P Topologies
    • Peer to Peer (P2P) systems: general concepts
    • Unstructured Overlays: Flooding, Random Walks, Epidemic Diffusion
    • Structured Overlays: Distributed Hash Tables (DHT), Routing on a DHT
      •  Chord
      • Kademlia
    • Case Studies: BitTorrent   as a Content Distribution Network: KAD implementation of the Kademlia DHT, game-based cooperation
  • Cryptocurrencies and Blockchains 
    • basic concepts: a review  of basic cryptographic tools (digital signatures, cryptographic hash, Merkle trees,..)
    • blockchains: definitions
    • distributed consensus: 
  • Bitcoin
    • Nakamoto consensus: Bitcoin mining mechanism,
    • the Bitcoin blockchain: block and transaction definition
    • pseudonymity: traceability and mixing
    • the Bitcoin P2P Network
    • Bitcoin ecosystem
    • scalability issues
    • Bitcoin Extensions/alternatives: altcoins, sidechains, the StellarConsensus Protocol
  • Ethereum
    • accounts, transaction, messages
    • the Ethereum blockchain
    • programming smart contracts
  • Further blockchain: Iota
  • Applications:
    • Blockchain 1.0: cryptocurrencies
    • Blockchain 2.0: nancial instruments built on cryptocurrencies
    • Blockchain 3.0: applications beyond cryptocurrencies (DNS, lotteries, voting, IoT...)

  • Complex Network for the analysis of P2P systems 
    • Network models:
      • Random Graphs and Small Worlds
      • Small World navigability: Watts Strogatz and Kleinberg.
      • Complex networks navigability