Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 eventsTotal order broadcast may be required for some applicationssuch as smart contractsbut the simpler and easy to parallelize reliable broadcast suffices for paymentsThe 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.chfor more information.+  * **Evaluating Distributed Systems**: By nature, distributed systems are hard to evaluateDeploying real world systems and orchestrating large scale experiments require dedicated software and expensive infrastructure. As a resultmany widespread distributed systems are not properly evaluatedtested on uncomparable or irreproductible setupsProjects ​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.