Lecture Materials and Related Content

Throughout the duration of the program, we will post the lecture material and other resources provided to our student cohort. This page will be updated frequently.

Lecture Descriptions

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 will discuss the wider implications of P2P.

M: Hello@guerrillamedia.coop, Stacco@stacco.works
T: @staccoP2P

Lecture material: slides and summary

Additional resources here

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 hasn't 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.

M: ram@leastauthority.com
W: https://mastodon.radio/@vu3rdd

Lecture material: slides and summary

Additional resources:

Mechanism Design - Ele Diakomichalis

In this lecture we will provide 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. We will use real case studies from web search auctions, cryptocurrencies & security applications.

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 app 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 will compare some of the most popular emerging protocols (ipfs, dat, ssb) and discuss their strengths and weakness, borrowing from the early history of the web (usenet, bittorrent) to see what lessons have already been learned.

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 crypto-currency, we'll learn about why consensus is interesting, where it is used today, and how it can be broken.

Smart Contracts - François Guezengar

You’ll understand how to build and deploy a smart-contract on an Ethereum network. We’ll first take a look at what are smart-contracts, then you’ll write and deploy your own smart-contract in Solidity with the online IDE Remix.

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 will go through the exercise of threat modeling and talk about the common attacks to P2P networks. We will 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.

Primitives - Lucas Vogelsang

P2P software often relies on cryptography to validate behavior of other nodes, keep networks in sync and provide consensus. This session gives a broad overview starting with the very basic primitives such as hash functions, signature schemes but also more complex constructions such as zero knowledge proofs.

Decentralized Governance - Kei Kreutler and 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 will include 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 will discuss the emergence of collaborative networks and new institutional design patterns. In addition, Pat will present the DAOstack project, a blockchain governance platform that aims to facilitate the creation of superscalable cooperative structures.