Spring 2017

Past Projects

This is the list of projects available in the DEDIS lab for the spring semester 2017. If you are interested in any of the projects, please get in contact with the person of the project or directly with Bryan Ford.

Comparison of Blockchain Consensus Algorithms (Semester/Bachelor)

Abstract

The steady-rising popularity of cryptocurrencies over the past years has also lead to an increased interest in efficient and scalable consensus mechanisms, which are a core component in every blockchain-based system. The goal of this semester project is to evaluate different consensus mechanisms, such as ByzCoinHoneyBadger-BFTBitcoin-NG, and Elastico, with respect to performance and security to identify their strengths and weaknesses. All implementations will be done with Google’s Go programming language using the cothority framework of EPFL’s DEDIS lab.

Contact: Eleftherios Kokoris Kogias

 

Re-Decentralizing the Internet: Deterministic Hashing of Websites (Semester/Bachelor/Master)

Abstract

The Internet relies on many centralized services, e.g., for name resolution, authentication, and content provisioning which provides authorities an easy way to monitor users or even censor unwanted content. Even though the negative consequences are well-known, the centralization of the Internet has steadily increased even more over the last years. To counter this centralization-trend, multiple projects have emerged recently aiming to “re-decentralized” the web, including IPFSBlockstack, and ZeroNet. One of the problems that all these approaches share is that consensus on the content of a website is hard, due to the dynamic nature of today’s Internet. The goal of this project is to develop an algorithm that filters and succinctly summarizes the useful content (e.g. without advertisements) of a website such that other users can efficiently find the content and verify the correctness of the obtained information. All implementations will be done with Google’s Go programming language using the cothority framework of EPFL’s DEDIS lab.

Contact: Eleftherios Kokoris Kogias

 

Transparency Enforcing Cothority using Blockchains (Semester/Bachelor/Master)

Abstract

The Internet relies on many centralized services, e.g., for name resolution, authentication, and content provisioning which provides authorities an easy way to monitor users or even censor unwanted content. Even though the negative consequences are well-known, the centralization of the Internet has steadily increased even more over the last years. One approach to mitigate these threats is to establish transparency mechanisms for authoritative records (such as DNS entries or TLS certificates) and expose them to public scrutiny. Various systems, like Google’s Certificate Transparency project or CONIKS provide transparency guarantees but only in a retroactive manner provided a victim has access to an honest monitor. The goal of this project is to develop a proactive validation mechanism for record consistency to detect misbehavior before a client is deceived using blockchain technology and cothorities. All implementations will be done with Google’s Go programming language using the cothority framework of EPFL’s DEDIS lab.

Contact: Eleftherios Kokoris Kogias

 

 

Android Application for PoPCoins (Semester/Bachelor)

Abstract

The Proof-of-Personhood (PoP) scheme of the DEDIS lab enables to create anonymous tokens, so called PoPCoins, that allow users to prove online that they are a real / physical person. The goal of this project is to implement an Android/iPhone application to help with the creation of those tokens.

Contact: Maria Fernanda

 

Web Interface for Secure Decentralized Collaboration Platform (Semester/Bachelor)

Abstract

Online real-time collaborative services, such as Google Docs and Etherpad, rise in popularity thanks to their global accessibility and convenience of use. However, the users of such systems have to fully trust service providers for data protection and preserving privacy. Potential server’s compromise or pressure from state agencies can result into data leakage and fail in this trust. A decentralized peer-to-peer collaboration can be a solution to these concerns.

The goal of this project is to design and create a web interface for real-time peer-to-peer collaboration, a text editor to start with. The challenges include alleviating the impact of potentially higher communication latency on the user interface, adapting to the serverless architecture and incroporating functionality for distributed access control. The successful project will include undertaking user studies and taking into account the received feedback.

Contact: Kirill Nikitin

 

Implementation of an Algorithm for Peer-to-Peer Collaborative Editing (Semester/Master)

Abstract

Online real-time collaborative services, such as Google Docs and Etherpad, rise in popularity thanks to their global accessibility and convenience of use. However, the users of such systems have to fully trust service providers for data protection and preserving privacy. Potential server’s compromise or pressure from state agencies can result into data leakage and fail in this trust.

The goal of this project is to make a step towards a secure real-time peer-to-peer collaboration platform. The high-level task is to study, implement and deploy the state-of-the-art algorithm for decentralized collaborative editing called Admissibility-Based Operational Transformation (ABT). The algorithm extends Operational Transformation (OT) model that is a core building block for most of the collaborative editors. Several open-source implementations of OT in Javascript already exist and can be used as a starting point.

Pleliminary work plan:

1. Study OT, ABT and its optmized versions

2. Compare available OT implementations

3. Implement and deploy the optimized ABT

4. (If ma.thesis == 1) Design an improvement to ABT based on related research

5. Evaluate the performance of the implementation

Contact: Kirill Nikitin

 

Improving the Cothority Web-Frontend (Semester/Bachelor/Master)

Abstract

In DEDIS we built a decentralized cryptography framework called cothority, that we use for testing as well as for deployment of our distributed, decentralized cryptographic algorithms. A first web-frontend that displays the state of the cothority was built in autumn 2016. This project will add the following features to the web-frontend:

  • Timestamping of documents
  • Participating in a private blockchain for managing ssh-keys and displaying web-pages

The language of choice here is javascript, and you have to learn some basic cryptographic principles to create keypairs, sign and verify cryptographic signatures. Furthermore interaction over websockets with the cothorities is necessary.

ContactLinus Gasser

 

Improving the Cothority Android Application (Semester/Bachelor/Master)

Abstract

We have a running Android application for interacting with our cothority-framework. The cothority is a set of servers programmed to perform decentralized, distributed cryptographic algorithms. Your job is to extend our application and add the following functionality (pick 2 out of 3):

  • Add an iOS-version (or rewrite in a cross-platform language)
  • Surf on the blockchain – add a browser for the blockchain-data
  • Add a password-manager that is kept on the private blockchain

ContactLinus Gasser

 

Collective Certificate Management (Semester/Bachelor/Master)

Abstract

The current certificate authority (CA) model suffers from many shortcomings due to the centralized and non-transparent way CAs can issue certificates. The goal of this semester project is to explore the distribution of the certificate issuance responsibility among a set of collaborating CAs. Similar to Let’s Encrypt, a certificate management agent shall be prototyped, yet for the new collective CA architecture. All implementations will be done in Google’s Go programming language using already existing constructions of the cothority project, such as scalable blockchain structures.

ContactGeorgia Fragkouli

 

Pairing-Based Elliptic Curve Cryptography (Semester/Master)

Abstract

Elliptic curve cryptography with a pairing operation allows to realise many advanced cryptographic constructions. The goal of this project is to integrate the RELIC crypto library into the cothority framework and utilize it to implement a variant of the collective signing (CoSi) protocol that uses pairing-based elliptic curve cryptography.

ContactPhilipp Jovanovic

 

Efficient Verifiable Shuffles for Anonymous Communication Systems (Semester/Master)

Abstract

Cryptographic protocols to verifiably shuffle integer sequences are an important primitive, e.g., to build secure e-voting or mix-net-based anonymous communication systems. A commonly used instance are so called Neff shuffles which provide linear-sized correctness proofs for the output sequence. In this project we focus on the implementation and evaluation of shuffle mechanisms that are more efficient than Neff shuffles in terms of computation and communication complexity. We will furthermore explore the application of the developed techniques in the context of anonymous communication systems.

ContactPhilipp Jovanovic