Lecture Materials and Related Content
Intro to P2P - Stacco Troncoso
When speaking about peer-to-peer or P2P, we usually refer to network topologies or technical infrastructures. But what about the people behind those nodes in the network and their affective and physical needs? Beyond techo-centric perspectives, P2P can also mean "person to person" and describes a social process to scale up small-group dynamics into resilient, transnational networks. How can Peer to Peer systems help us reimagine our economics and politics? As a commons-advocate and project lead for the Commons Transition project, Stacco discusses the wider implications of P2P.
Mechanism Design - Ele Diakomichalis
This lecture provides an introduction to auction and mechanism design as well as a survey of the most relevant topics at the intersection of computer science and economics. This lecture uses real case studies from web search auctions, cryptocurrencies, and security applications
Network Address Translation - Ram Muthukrishnan
The web was originally designed to be decentralized so every participating computer (often referred to as an endpoint or a node), each assigned an IP address, could participate meaningfully in the network. However, as the usage of the web expanded beyond academia, the IPv4 addresses ran out. Among many ad hoc solutions to address the lack of IPv4 addresses was a system called Network Address Translation (NAT), which is a system where computers in a private network behind one internet facing router are assigned reusable private IP addresses. Even though IPv6 has been introduced, it has not taken off as anticipated by its supporters and the IPv4 + NAT solution still dominates today. Now, the inherent assumptions in the NAT makes it hard to run P2P applications, which act as both clients and servers of data. In this session, we will explore what NAT is, the different types of NAT, what the network topology for various NATs are and the challenges of discovering peers who are behind the NAT.
Social P2P - Sarah Friend
How would you host a static website on a P2P network? How would you run a blog? What about the best P2P application for sharing photos or messages with your friends? And moreso, once you have your P2P social network in place, what are the unique challenges of social networks in a distributed context? Social networks are built off of trust, but how can we use something like "trust" in computing? This lecture compares some of the most popular emerging protocols (IPFS, Dat, Scuttlebutt) and discusses their strengths and weakness, borrowing from the early history of the web (Usenet, Bittorrent) to see what lessons have already been learned.
Lecture material: slides and additional resources
Consensus Mechanisms - Alexis Sellier
In this lecture, we explore the problem of consensus in peer-to-peer systems - or how networked peers come to agree on a single order of events. From early attempts at solving the problem, to the breakthrough discovered by the anonymous creator of the first cryptocurrency, we discuss why consensus is interesting, where it is used today, and how it can be broken.
Lecture material: slides
Smart Contracts - François Guezengar
In this lecture, you’ll learn how to build and deploy a smart-contract on an Ethereum network. We first take a look at what smart-contracts are, then you’ll write and deploy your own smart-contract in Solidity with the online IDE Remix.
Find the finished smart contract with notes and explanation here
Internet Health - Solana Larsen & Kasia Odrozek
You can find Mozilla’s 2019 Internet Health Report here and the 2018 report here. Check out Mozilla Foundation's funding resources as well as their latest Grant for the Web.
T: @solanasaurus & @kaodro
Lecture material: slides
Security - Liz Steininger
The topic of security encompasses many elements of our technology functioning in a way that keeps us safe from threats. In this lecture, we go through the exercise of threat modeling and talk about the common attacks on P2P networks. We also explore how to reduce the risk of these threats to build and maintain P2P systems that meet their goals of confidentiality, integrity and reliability of the data they provide.
Lecture material: slides as well as referenced resources from theirZKSnarks Workshop (by Mirco Richter) and example auditing work (by Least Authority)
Primitives - Lucas Vogelsang
P2P software often relies on cryptography to validate the behavior of other nodes, keep networks in sync, and provide consensus. This lecture gives a broad overview starting with the very basic primitives such as hash functions and signature schemes before going into more complex constructions such as zero knowledge proofs.
Decentralized Governance - Kei Kreutler & Pat Rawson
From its first use, the phrase Decentralized Autonomous Organization conjured an array of potentialities, including legal representation and management for natural systems to imaginaries of independent Skynet-like entities. Kei’s lecture includes a brief working definition of a Decentralized Autonomous Organization (DAO), a history of their implementations to date in relation to decentralized organizing, and an overview of the dxDAO, a project initialized by Gnosis in early 2019 for community governance of software protocols. Some speculations on the future of DAOs will, of course, be interspersed throughout. Pat`s lecture discusses the emergence of collaborative networks and new institutional design patterns. In addition, Pat will present the DAOstackproject, a blockchain governance platform that aims to facilitate the creation of superscalable cooperative structures.
Lecture material: Kei's slides (on decentralized governance) & Pat's slides (on DAOs)
📚 Blockchain 101
Part 2 - Public / Private Keys and Signing