Déploiement et comparaison de protocoles de blockchains sur AWS

Encadrants

  • Matthieu Rambaud
  • Emails: matthieu.rambaud@telecom-paris.fr
  • Bureaux: 4D31

Nombre d'étudiant par instance du projet:

  • Minimum: 4
  • Maximum: 5

Nombre d'instances du projet :

3

Sigles des UE couvertes et/ou Mots-clés :

algorithmes distribués, cloud, cryptographie

Description du projet :

J'ai (votre encadrant) la chance d'avoir cassé un protocole de consensus de blockchains proposé par l'équipe Diem de Facebook en 2021 (appelé 2-phase VABA). Ils l'ont rétracté en Avril 2024: https://arxiv.org/pdf/2106.10362 et ils conseillent publiquement d'utiliser le mien à la place: https://eprint.iacr.org/2024/1108 (appelé "2PAC", une variante est appelée "BIG").

Depuis, un étudiant de l'université de Huazhong (Chaozheng Ding) a implémenté 2PAC et BIG https://github.com/ac-dcz/s2PAC/blob/master/readme.md et ses simulations sur une machine locale montrent leur supériorité par rapport à un algorithme proche de l'état de l'art (appelé "GradedDAG").

Le ou les projets ont des objectifs indépendants qui peuvent être faits en parallèle, suivant le nombre d'élèves et leurs intérêts.

1) Apprendre à utiliser la librarie https://github.com/ac-dcz/s2PAC/blob/master/readme.md à bas niveau pour réaliser des actions élémentaires entre machines à distance:
- envoi/réception de message
- signature digitale
- hashs et recherche dans une base de donnée indexée par des hashs.
S'en servir pour faire un protocole de blockchains très simplifié (du type de IPFS https://ipfs.tech/ ), le déployer sur plusieurs machines (par exemple des Rasberrys fournis).

2) utiliser cette même librairie https://github.com/ac-dcz/s2PAC/blob/master/readme.md à plus haut niveau pour modifier "BIG" en l'algorithme de l'état de l'art: "LightDAG", voire Wahoo (déjà implémenté ici https://github.com/CGCL-codes/Wahoo par le même Chaozheng Ding).

3) déployer 2PAC / Wahoo sur plusieurs machines fournies par AWS réparties dans le monde et faire les comparaisons de latence et de throughput (=débit"). Une documentation sera fournie par C. Ding pour le réaliser.

Objectifs du projet :

cf ci dessus

Logiciels requis:

cf ci dessus

Références bibliographiques:

cf ci dessus