Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
education [2023/05/09 15:05] fablpd |
education [2024/05/16 16:36] (current) fablpd |
||
---|---|---|---|
Line 8: | Line 8: | ||
\\ | \\ | ||
- | * [[education/ca_2021|Concurrent Algorithms]] (theory & practice) | + | * [[education/ca_2023|Concurrent Algorithms]] (theory & practice) |
- | * [[education/da|Distributed Algorithms]] (theory & practice) | + | * [[education/da_2023|Distributed Algorithms]] (theory & practice) |
\\ | \\ | ||
The lab taught in the past the following courses: | The lab taught in the past the following courses: | ||
Line 33: | Line 33: | ||
- | * **Proof systems for Byzantine systems**: Cryptographic proof systems enable the rapid verification of computation between mutually distrustful parties. Recent advances in proof systems include (1) recursive proofs, transition proofs and accumulators which are of prime interest to shrink long chains of computation and/or their associated storage, and (2) zero-knowledge scalable proofs useful for privacy-preserving systems. Motivated by cryptocurrencies, the goal of this project is to devise and implement Byzantine-resilient systems that incorporate new cryptographic proof systems for efficiency and/or privacy. Contact Pierre-Louis Roman <pierre-louis.roman@epfl.ch> for more information. | ||
- | * **Hybrid ordering for cryptocurrencies**: Most cryptocurrencies nowadays rely on total order broadcast to maintain a blockchain that represents an agreed-upon log of events. Total order broadcast may be required for some applications, such as smart contracts, but the simpler and easy to parallelize reliable broadcast suffices for payments. The goal of this project is to devise and implement Byzantine-resilient broadcast algorithms with hybrid ordering guarantees that only order events when required. Contact Pierre-Louis Roman <pierre-louis.roman@epfl.ch> for more information. | + | * **Evaluating Distributed Systems**: By nature, distributed systems are hard to evaluate. Deploying real world systems and orchestrating large scale experiments require dedicated software and expensive infrastructure. As a result, many widespread distributed systems are not properly evaluated, tested on uncomparable or irreproductible setups. Projects of this category aim to build efficient and scalable evaluation tools for distributed systems. [[https://dl.acm.org/doi/10.1145/3552326.3567482|Diablo]]-related projects involve building a test harness for evaluating blockchains (skills required: network programming, blockchain, Go, C++). Another set of projects focus on creating **large networks simulators** able to emulate hundreds of powerful machines from a single physical server (skills required: system programming, virtualization, C, C++). Contact [[https://people.epfl.ch/gauthier.voron/?lang=en|Gauthier Voron]] for more information. |
+ | * **Smart Contracts and Decentralized Software**: Smart contracts are one of the key innovations brought by blockchains, enabling users to deploy codes that get executed transparently, autonomously and in a decentralized fashion. However, the applicability of smart contracts is hampered by their limited performance. Projects of this category aim to build runtime environments for fast and efficient execution of smart contracts. The first set of projects address the challenge of **deterministic parallelism**, or how to use several threads to execute a smart contract while guaranteeing a deterministic result (skills required: compiler principles, Rust). The second set of projects explores the concept of non-transactional smart contracts, a way to remove the notion of gas in smart contracts (skills required: system programming, C, Rust). The last set of projects focus on high-throughput cryptographic primitives: how to use hardware acceleration to speed up transaction authentication (skills required: cryptography principles, GPU programming, C, Assembly). Contact [[https://people.epfl.ch/gauthier.voron/?lang=en|Gauthier Voron]] for more information. | ||
+ | |||
+ | * **Safe and Scalable Consensus**: Decentralized systems like cryptocurrencies rely on the concept of consensus. This component is critical as it dictates how performant, safe and scalable a distributed system is. Over the last years, the DCL has pushed the performance of consensus algorithms to [[https://arxiv.org/pdf/2304.07081|unprecedented levels]] but the practical safety and scalability are yet to be addressed. Projects of this category focus on designing and implementing distributed consensus algorithms which are safer against cyberattacks or adverse environments and work with higher number of participants. On one side, some projects explore new **consensus designs** with good theoretical guarantees and practical behaviors (skills required: distributed algorithms, network programming, Go). On the other side, some projects focus on ensuring the correctness of existing consensus algorithms through **model checking** at various levels (skills required: distributed algorithms, Rust, TLA+). Contact [[https://people.epfl.ch/gauthier.voron/?lang=en|Gauthier Voron]] for more information. | ||
+ | |||
+ | * **Certified Machine Learning**: Machine learning techniques have developed rapidly in recent years, with impressive results and widespread adoption. However, many models are closed and executed on remote servers belonging to private companies. Moreover, the training process of these models remain obscure, pushing public institutions to look forward auditable and certified machine learning in the hope of better regulation of this industry. Projects on this category aim to build systems that make possible to create and use **certified machine learning** models (skills required: principles of machine learning, PyTorch, Go). Contact [[https://people.epfl.ch/gauthier.voron/?lang=en|Gauthier Voron]] or [[https://people.epfl.ch/Geovani.Rizk/?lang=en|Geovani Rizk]] for more information. | ||
- | * **Topology-aware mempool for cryptocurrencies**: The mempool is a core component of cryptocurrency systems. It disseminates user transactions to the miner nodes before they reach consensus.Current mempools assume an homogeneous network topology where all machines have the same bandwidth and latency.This unrealitic assumption forces the system to progress at the same speed as the slowest node in the system. This project aims at implementing a mempool which exploits the heterogeneity of the network to speed up data dissemination for cryptocurrency systems. This is a practical project which requires good knowledge in network programming, either Go or C++, distributed algorithms. Contact Gauthier Voron <gauthier.voron@epfl.ch> for more information. | ||
* **Robust mean estimation**: In recent years, many algorithms have been proposed to perform robust mean estimation, which has been shown to be equivalent to robust gradient-based machine learning. A new concept has been proposed to define the performance of a robust mean estimator, called the [[https://arxiv.org/abs/2008.00742|averaging constant]] (along with the Byzantine resilience). This research project consists of computing the theoretical averaging constant of different proposed robust mean estimators, and to study their empirical performances on randomly generated vectors. Contact [[https://people.epfl.ch/sadegh.farhadkhani?lang=en|Sadegh Farhadkhani]] for more information. | * **Robust mean estimation**: In recent years, many algorithms have been proposed to perform robust mean estimation, which has been shown to be equivalent to robust gradient-based machine learning. A new concept has been proposed to define the performance of a robust mean estimator, called the [[https://arxiv.org/abs/2008.00742|averaging constant]] (along with the Byzantine resilience). This research project consists of computing the theoretical averaging constant of different proposed robust mean estimators, and to study their empirical performances on randomly generated vectors. Contact [[https://people.epfl.ch/sadegh.farhadkhani?lang=en|Sadegh Farhadkhani]] for more information. |