Student Projects

This page lists some potential projects in the DEDIS lab that may be available next semester.  Please first read the general guidelines for projects in the DEDIS lab, then use ONLY the following form to get in touch with us:

Get in touch:
 Google Form Link

For examples of reports, presentations, and code resulting from past projects please see these pages: 2022 2021 2020 2019 2018 2017 2016

List of projects updated May 27th 2022.


(unavailable )Proof-of-Personhood Groups for Sybil-protected Online Communities

For up to 4 bachelor/master students

Abstract

Popular communication tools today use either require semi-strong but privacy-invasive identities such as phone numbers to achieve some level of accountability and Sybil attack protection (e.g., WhatsApp or Signal), while other tools use weak identities such as E-mail addresses or pseudonymous public keys (e.g., Bitcoin) but lose any fair, “person-centric” form of accountability or Sybil attack protection. The DEDIS lab is developing a new, human-centric “proof-of-personhood” (PoP) solution to this problem leveraging physical presence at real-world events to provide privacy-preserving but accountable, Sybil-protected identities.
This project will build upon existing PoP software to use PoP tokens in lieu of CAPTCHA checks and enhance Sybil attack protection in existing software platforms, such as bulletin boards. You will build the CAPTCHA-like software infrastructure (backend, frontend, communication), interfacing with the PoP software as needed, and you will run usability tests to evaluate the software.

Required skills: solid programming experience, basic cryptography, web and/or mobile app development

Contact: Pierluca Borsò

(unavailable) Optimizing Front-Running Protection

For 1-2 students (bachelor/master)

Front-running attacks, which benefit from advanced knowledge of pending transactions, have proliferated in the cryptocurrency space since the emergence of Decentralized Finance(DeFi). Front-running causes devastating losses to honest participants—estimated at $280M each month—and endangers the fairness of the ecosystem. Thus, there is an urgent need to develop tools that can be deployed with reasonable overhead in the real world to mitigate the attack.

The DEDIS lab is developing a general architecture named Flash Freezing Flash Boys (F3B) that systematically mitigates front-running attacks for all smart contracts at once at the blockchain architecture level. This project aims to implement different advanced crypto primitives on the DEDIS blockchain for F3B to reduce the latency overhead and increase throughput performance.

You will need to know the basic knowledge of cryptography.

Contact: Haoqian Zhang

Making the Inter-Planetary File System (IPFS) more reliable

For 1-2 students (master)

Abstract

The InterPlanetary File System (IPFS) is a peer-to-peer distributed file system that seeks to decentralize the Internet infrastructure. IPFS put together many previous ideas from academic research and open source projects, including Git, S/Kademlia, BitTorrent, etc. IPFS proposes the Bitswap protocol to mitigate free riding and implements an self-certyfing namespace for protection against Sybils. 

The content stored in IPFS forms a generalized Merkle Direct Acyclic Graph (Merkle DAG), a data structure similar to the Merkle tree where non-leaf nodes contain data and the tree does not need to be balanced. IPFS network is composed by many computing devices and nodes do not need to trust each other. Unfortunately if nodes are down, data availability will suffer. Another problem in IPFS is the bandwidth required to communicate with local nodes. 

Previous work proposed the use of entangled Merkle trees, combining Merkle trees and alpha entanglement codes, to improve file availability and storage utilization in the Ethereum Swarm network. 

Your job is to study IPFS protocols and data structures to design and implement a similar solution for IPFS.

Contact: Vero Estrada

Robust Shared Memory Consensus

For 1-2 students (master)

Abstract

Shared Memory Consensus is a branch of consensus where a set of processes, who have access to the state of the shared memory, try to agree on a single value; the value can be a set of transactions, or a command that should be agreed upon before execution. Existing shared memory consensus algorithms have a tradeoff between high performance vs robustness [1]. On the high performance end, the algorithms assume a partially synchronous model, and optimize for the common synchronous network case, while losing the liveness under asynchrony or any other failure condition. On the robustness end, the consensus algorithms are designed for asynchronous networks such that eventual liveness is always guaranteed with probability 1, but sacrifice the common synchronous case performance due to quadratic message complexity. In this project, we aim at achieving the best of both worlds; (1) high performance under synchrony, and (2) robust under asynchrony and failures.

In this project, you will have the opportunity to work both on the theoretical and implementation aspects of the project. You will be involved in algorithm construction and proving, implementing and evaluating in a distributed network. The project consists of multiple phases; (1) algorithm construction and proving, (2) Go Lang based implementation and (3) RDMA extension.

Contact: Pasindu Tennage

Dissecting IPFS and Swarm to demystify distributed decentralized storage networks

For 1-2 students (master)

Abstract

The InterPlanetary File System (IPFS) is a peer-to-peer distributed file system that seeks to decentralize the Internet infrastructure. IPFS put together many previous ideas from academic research and open source projects, including Git, S/Kademlia, BitTorrent, etc. IPFS proposes the Bitswap protocol to mitigate free riding and implements an self-certyfing namespace for protection against Sybils. 

The content stored in IPFS forms a generalized Merkle Direct Acyclic Graph (Merkle DAG), a data structure similar to the Merkle Tree where non-leaf nodes contain data and the tree does not need to be balanced. IPFS network is composed by many computing devices and nodes do not need to trust each other. 

Swarm is a p2p network of nodes that collectively provide a decentralized storage and communication service. Its aim is to serve as the storage backbone and virtual server for a wide array of decentralized applications and content while maintaining censorship resistance and privacy for the users of the network. Swarm uses forwarding Kademlia to exchange messages. The network proposes bandwidth and storage incentives.

Your job is to investigate the IPFS and Swarm network and evaluate the experience of installing and running a general-purpose storage node, particularly you will measure and/or evaluate availability, performance, usability, etc.

Contact: Vero Estrada

Reproducible AI systems

For 1 student (bachelor)

Abstract

Artificial intelligence (AI) applications have become popular in various domains, such as autonomous driving, biometric identification, healthcare and finance. As the use of AI on decision making increases in our daily lives, it becomes crucial that these algorithms are transparent and accountable so that they can be trusted. To this end, one of the main challenges is to ensure that AI algorithms are reproducible: given the same set of inputs and code, the algorithm generates the same output across different runs and machines.

At the DEDIS lab, we are working on a deterministic sandbox environment based on the Java Virtual Machine (JVM) that can support floating-point arithmetic. As part of this project, you are going to explore the reproducibility requirements of different AI algorithms/systems, implement/port them on/to our JVM-based sandbox, and evaluate their performance.

This project is implementation-heavy and might require hacking large libraries. Must have: fluent in Java. Good to have: knowledge of AI systems and libraries, floating-point arithmetic.

Contact: Cey Alp

(unavailable) D-Voting – Engineering a Production-Ready System for an e-voting platform

For 1-2 students (bachelor/master)

Abstract

The DEDIS lab is developing its next-generation e-voting platform based on the Dela blockchain. The actual system is currently used for some election processes at EPFL and the new system (d-voting), started one year ago, should eventually replace the actual one.

The goal of this project is to improve the system’s maturity and bring it close to production-readiness. As you will discover, there is a huge gap between a system that can run on the developper’s machine and one that can be ultimately deployed in production. To support you in this endeavour, you will be closely supervised by an engineer experienced in the development of testing frameworks and one or more short workshops may be organized to provide you with some foundations in software quality assurance.

Keywords: e-voting, blockchain, golang, production system

Contact: Noémien Kocher

(unavailable) D-Voting – Front-end development for an e-voting platform

For 1-2 students (bachelor/master)

Abstract

The DEDIS lab is developing its next-generation e-voting platform based on the Dela blockchain. The actual system is currently used for some election processes at EPFL and the new system (d-voting), started one year ago, should eventually replace the actual one. D-voting has two main parts: The backend part, which includes the blockchain nodes and the election logic, and a front-end, which is used by voters and administrators to interact with the system: manage elections, cast votes, get voting results, etc…

The goal of this project is to work on the front-end part to improve the actual functionalities and implement new features. To be successful, you must be familiar with common web technologies such as typescript, react, html, and CSS. Aside from the required technology skills, you should have a good sense of aesthetic and design (indicate your relevant experience and results in those domains when you apply).

You will be using the following tool stack: react, typescript, tailwind, node, express.js.

Contact: Noémien Kocher