---
# System prepended metadata

title: Decentralising the Internet with IPFS and Filecoin (DI2F) workshop
tags: [research&projects, ' p2p', ' ipfs']

---

---
title: Decentralising the Internet with IPFS and Filecoin (DI2F) workshop
tags: research&projects, ipfs, p2p
---

# Decentralising the Internet with IPFS and Filecoin (DI2F) workshop

[DI2F workshop](https://research.protocol.ai/blog/2021/decentralising-the-internet-with-ipfs-and-filecoin-di2f-workshop-at-ifip-networking-2021-call-for-contributions/)

## Ideas 

- [ ] Privacy preserving routing protocol for IPFS (and other DHTs);
    - [ ] p3lib (plug-in library implementing privacy preserving mechanisms for requesting and serving content on DHTs and P2P networks)
    - [ ] Privacy preserving XOR distance calculation (e.g. PIR or ZK peer routing table)
    - [ ] Delegate DHT request using onion routing

- [ ] Encrypted data model in IPFS and IPNS
    - [ ] IPFS as a broadcast encryption system
    - [ ] [2021 Theme Proposal] Security mode https://github.com/ipfs/roadmap/issues/65 
        - Solve key questions around IPFS’s security model for personal data, including read/write privacy of nodes and reliance on encryption.
        - How to model the encrypted data stored in IPFS with capabilties (e.g. model IPFS as a broadcast encryption channel; leverage identity encryption);

- [ ] P2P authentication and authorization protocol for accessing IPFS content
    - [ ] PAKE-like protocol to give/revoke access to content on IPFS;

- [ ] Implement a decentralized and privacy preserving datastore on IPFS (IT/cPIR)
    - [ ] https://github.com/gpestana/notes/issues/27

---

## 1. IPFS as a practical Secure Broadcast Channel

*draft version*

**Abstract:** We model, study and implement a secure broadcast channel (SBC) on IPFS. A SBC is a cryptographic scheme that allows a participant (the publisher) to encrypt messages with capabilities that only a set of readers can decrypt. The encrypted message is published on a public channel where a set of participants (the subscribers) try to recover the plaintext of the encrypted message. The decryption is successful depending on the capabilities set by the publisher of the message. In this paper, we show that IPFS is a practical message bus to implement a secure broadcast channel due to its properties regarding data integrity, content-addressing, decentralization and pub-sub semantics.

### Introduction

Note: link work with https://github.com/ipfs/roadmap/issues/65

### Advantages of using IPFS as broadcast channel

- Tamper proof
- Availablilty and incentive layer
- Censorship resistance
- Decentralization
- Scalable decentralized PubSub semantics
- Lower upload bandwidth for channel owner

### Contributions

Our contributions are:
- First, we formalize a secure broadcast channel scheme, with focus on how to leverage the properties provided by IPFS, IPLD and pub-sub semantics to construct a practical, secure and decentralized broadcast channel.
- Then we define the IPLD schema to implement a secure broadcast channel on IPFS; 
- We implement `beam-rs` [1], a cryptographic scheme based on [2] in Rust and `libp2p-sbc` [3], a client library for libp2p nodes to participate in a SBC defined in this paper.
- Finally, we measure the client and network-level overhead and latency of running a high throughput (100 messages/second) SBC on IPFS.

### References

1. [beam-rs: A pure Rust implementation of a collusion resistant broadcast encryption scheme](https://github.com/gpestana/beam-rs/)
2. [Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys](https://eprint.iacr.org/2005/018.pdf). Dan Boneh, Craig Gentry, Brent Waters
3. Asymmetric pairings paper
4. [libp2p-sbc: a client SBC library for libp2p nodes]()

#### --- Notes

Standard model setup and assumptions:
- Authenticated P2P links between all participants
- Synchronous communication (why?)
- Adversarial unbounded computational power


---

## 2. Sinkhole - A practical privacy-preserving routing protocol for IPFS

**Abstract:**

#### --- Notes
