Bachelor Thesis

AtomChat

Popular messaging apps like WhatsApp, Signal, and Telegram do not guarantee total order of messages. Total order means that all participants receive the same messages in the same order. Without it, network delays and device synchronization issues can cause participants to see different versions of the same conversation. These apps do not enforce total order because it can negatively impact performance and scalability.

The table below shows a simple group chat example where lack of total order causes different participants to interpret the conversation differently:

Intended Order Alice’s View Bob’s View Charlie’s View
1. Alice: Pizza or burgers? 1. Alice: Pizza or burgers? 1. Alice: Pizza or burgers? 1. Alice: Pizza or burgers?
2. Bob: Pizza! 2. Bob: Pizza! 2. Bob: Pizza! 2. Charlie: Burgers for me.
3. Charlie: Burgers for me. 3. Charlie: Burgers for me. 3. Alice: Pizza then! 3. Alice: Pizza then!
4. Alice: Pizza then! 4. Alice: Pizza then! 4. Charlie: Wait, I meant pizza too. 4. Charlie: Wait, I meant pizza too.
5. Charlie: Wait, I meant pizza too. 5. Charlie: Wait, I meant pizza too. 5. Charlie: Burgers for me. 5. Bob: Pizza!

Project Overview

In this project, we will develop a distributed messaging application that guarantees total ordering of messages. We will use a simple, leaderless, DAG-based protocol [1] to achieve this.

You will learn about

References

[1] All You Need is DAG

[2] Mysticeti: Reaching the Limits of Latency with Uncertified DAGs

[3] Bullshark: DAG BFT Protocols Made Practical

[4] Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus

[5] DAG it off: Latency Prefers No Common Coins

[6] DAG-based Consensus with Asymmetric Trust

[7] libp2p

Contact Juan Villacis for more information.

Nature of the project: Theory 25%, Systems 75%.