If you’d like to do a project with our lab but you didn’t find a suitable project in the list below (or your desired project is already taken), please contact Cristina Basescu
Hide the network location of blockchain committees (Master Thesis/PhD Semester)
Abstract
A promising scaling solution for blockchains is based on electing committees that run consensus. A serious drawback however in these solutions is that the committee members’ network position is easily identifiable which can lead to DDoS attacks on them.
In this project we want to look into anonymity networks in order to design and implement a “hidden committee” protocol that hides the network location of the committee members within the larger peer-to-peer gossip network.
Contact: Eleftherios Kokoris Kogias, Ludovic Barman
Web content certification with the aid of a decentralised, proof-of-consensus, and blockchain-based ledger (Semester project)
This project isn’t available anymore.
Abstract
The web can be a great but unfortunately not stable source of content. One might read a controversial blog post, make a case against it to finally see its original content updated or removed with no way to certificate what has been originally posted. And this is only one of the many cases where attesting online content would be of a great help for users.
This project then aims to provide a way for internet users to prove the existence of some content on a webpage at some specific time t. With the aid of a cothority (collective authority) running a distributed blockchain-based ledger, the work consists of implementing both a smart contract and a browser plugin. The smart contract should be able to produce the hash of some online content, while the browser plugin should be able to communicate with the cothority, execute the smart contract, and give back to the user an attestation of content.
Contact: Noémien Kocher, Kiril Nikitin
Partition Recovery in Locality-Preserving Blockchains (Semester Master / Master Thesis)
This project isn’t available anymore.
Abstract
Why?
In a scenario where you’re paying for your daily coffee with a cryptocurrency, does the merchant really require world-wide consensus to accept your payment? We believe the merchant should be able to choose: If he already knows you, then he probably trusts you and is ready to accept the transaction with a local consensus, for example within Switzerland. The global consensus on payment confirmation will arrive later, with a higher latency, and would still expose any double-spending to the merchant. When selling more expensive goods (e.g., a car), however, the merchant will most probably wait for global consensus.
Our system, called Nyle, has three advantages: it survives WW3 scenarios where the global network is partitioned and cannot reach global consensus, speeds up local transactions and capitalizes on existing trust relationships between the transaction parties.
How?
We build several blockchains, each spanning overlapping regions of different sizes, e.g, Switzerland, Western Europe, World. Within a region, the region’s validators check and reach consensus on the validity of each transaction. Cross-region transactions, e.g., between Switzerland and Spain, require transaction validation in a larger region, for example Western Europe, that covers both source and destination regions.
Goal
One risk of our “trust-but-verify” architecture is state divergence of blockchains.
Say the World region is partitioned and Bob double spends in two regions. When the partition recovers , what state does it adopt and how does it “rollback” the malicious transactions? We could think of investigating the concept “credit” and a maximum credit allowance, but perhaps there are better ways.
For a semester project, the goal is to implementation in Go the malicious behavior described above and the partition recovery. The student will build upon our lab’s Cothority framework, written in Go. Experience in Go is a plus, though not necessary.
For a Master thesis, an additional goal is contributing to the design and the security analysis of partition recovery.
Contact: Cristina Basescu
Speeding Up the InterPlanetary File System (Semester Bachelor / Semester Master)
This project isn’t available anymore.
Abstract
The InterPlanetary File System (IPFS) is the Web, but distributed! It is a protocol running over a peer-to-peer network that enables the storage and distribution of hypermedia. One nice feature of IPFS is its interplanetary network goals. It aims to work even when the Internet backbone is offline: think of natural disasters, slow network in the developing world, intermittent connections.
Goal
Can we make IPFS faster by making it location aware? We believe so. Especially when thinking about distribution on such a wide scale, it matters if your web content is replicated on Earth or on Mars.
The goal is to use our locality-aware networking framework as an overlay for IPFS. The project is ideal if you love building systems. Experience in Go is a plus, though not necessary.
Contact: Cristina Basescu